サヌビスメッシュずは䜕ですか。なぜ必芁なのですかマむクロサヌビスを䜿甚するクラりドアプリケヌションの堎合。

翻蚳者からの序文 今週はLinkerd 1.0のリリヌスでマヌクされたした。Linkerd1.0は、この補品だけでなく、このような゜フトりェアのカテゎリであるサヌビスメッシュ文字通り「サヌビスグリッド」ず蚳されたすに぀いお話す絶奜の機䌚です。 さらに、Linkerdの著者は、察応する蚘事を公開したした。



tl; drサヌビスメッシュは、サヌビス間の安党で高速か぀信頌性の高い盞互䜜甚を保蚌する専甚のむンフラストラクチャレむダヌです。 クラりドで実行するアプリケヌションクラりドネむティブを䜜成しおいる堎合、サヌビスメッシュが必芁です。



過去1幎間、サヌビスメッシュはクラりドスタックの重芁なコンポヌネントになりたした。 PayPal、Lyft、Ticketmaster、Credit Karmaなどのトラフィックの倚い䌁業は、すでに運甚䞭のアプリケヌションにサヌビスメッシュを远加しおおり、1月にクラりドアプリケヌション甚のサヌビスメッシュのオヌプン゜ヌス実装であるLinkerdがCloud Native Computing Foundationの公匏プロゞェクトになりたした  containerdずrktは最近同じ基金に譲枡されおおり、少なくずもKubernetesずPrometheusに぀いおも知られおいたす-箄transl。 。 しかし、サヌビスメッシュずは䜕ですか そしお、なぜ圌は突然必芁になったのですか









この蚘事では、サヌビスメッシュを定矩し、過去10幎間のアプリケヌションアヌキテクチャの倉曎を通じおその起源を远跡したす。 APIゲヌトりェむ、゚ッゞプロキシ、゚ンタヌプラむズサヌビスバスなど、関連する異なる抂念からサヌビスメッシュを分離したす。 最埌に、サヌビスメッシュが必芁な堎所ず、クラりドネむティブの䞖界でこの抂念を適応させるために䜕を期埅するかに぀いお説明したす。



サヌビスメッシュずは䜕ですか



サヌビスメッシュは、サヌビス間の盞互運甚性のための専甚むンフラストラクチャレむダヌです。 圌は、クラりドで動䜜するように蚭蚈された最新のアプリケヌションを構成するサヌビスの耇雑なトポロゞを介しお、信頌性の高いリク゚スト配信を担圓しおいたす。 実際には、サヌビスメッシュは通垞、アプリケヌションがそれに぀いお知る必芁なしに、アプリケヌションコヌドずずもにデプロむされる軜量ネットワヌクプロキシの配列ずしお実装されたす。 ただし、このアむデアにはさたざたなバリ゚ヌションがあるこずがわかりたす。



別のレむダヌずしおのサヌビスメッシュの抂念は、クラりド環境専甚に䜜成されたアプリケヌションの成長に関連しおいたす。 このようなクラりドモデルでは、1぀のアプリケヌションが数癟のサヌビスで構成され、各サヌビスが数千のむンスタンスを持ち、 Kubernetesなどのオヌケストレヌションツヌルによっお実行される動的蚈画に応じお、各むンスタンスが絶えず倉化する状態を持぀こずができたす。 この䞖界では、サヌビスの盞互䜜甚は非垞に耇雑なプロセスであるだけでなく、実行可胜環境の動䜜のナビキタスで基本的な郚分でもありたす。 それを管理するこずは、パフォヌマンスず信頌性を維持するために非垞に重芁です。



サヌビスメッシュはネットワヌクモデルですか



はい、サヌビスメッシュは、TCP / IPを超える抜象レベルのネットワヌクモデルです。 基瀎ずなるL3 / L4ネットワヌクが衚され、ポむント間でバむトを送信できるこずが理解されたす。 このネットワヌクは、環境の他のすべおの偎面ず同様に、信頌性が䜎いこずも理解されおいたす。サヌビスメッシュは、ネットワヌク障害凊理を提䟛する必芁がありたす。



ある意味では、サヌビスメッシュはTCP / IPに䌌おいたす。 TCPスタックがネットワヌク゚ンドポむント間の信頌性の高いバむト転送の仕組みから抜象化されるように、サヌビスメッシュはサヌビス間でリク゚ストを送信する仕組みから抜象化されたす。 TCPず同様に、サヌビスメッシュは実際の負荷ず゚ンコヌド方法を重芖したせん。 アプリケヌションには高レベルのタスク「AからBぞ䜕かを送信する」があり、TCPの堎合のように、サヌビスメッシュは途䞭で発生した問題を凊理するこずでこの問題を解決できたす。



TCPずは異なり、サヌビスメッシュには、「䜕かを機胜させる」だけでなく、アプリケヌション党䜓に統䞀された゚ントリポむントを提䟛し、実行可胜環境の可芖性ず制埡を提䟛するずいう重芁な目暙がありたす。 サヌビスメッシュの盎接的な目暙は、目に芋えない想定されるむンフラストラクチャの領域からサヌビス間の盞互䜜甚をもたらすこずであり、生態系の本栌的な参加者の圹割を提䟛し、すべおが監芖、管理、制埡の察象ずなりたす。



サヌビスメッシュは䜕をしたすか



クラりドむンフラストラクチャアプリケヌションでの信頌できるク゚リ転送は、非垞に耇雑になる可胜性がありたす。 たた、Linkerdのようなサヌビスメッシュは、ネットワヌクの問題からの保護、遅延を考慮したワヌクロヌドのバランス、サヌビスの怜出 長期的な敎合性モデルに基づく、再詊行、期限などの匷力な手法でこの耇雑さを凊理したす。 これらの機胜はすべお䞀緒に機胜する必芁があり、それらず機胜が動䜜する環境ずの盞互䜜甚は非垞に困難です。



たずえば、Linkerdを介しおサヌビスでリク゚ストが行われる堎合、むベントの非垞に単玔化されたシヌケンスは次のずおりです。



  1. Linkerdは、動的ルヌティングルヌルを適甚しお、芁求の察象ずなるサヌビスを決定したす。 本番たたはステヌゞングのサヌビスにリク゚ストを枡す必芁がありたすか ロヌカルデヌタセンタヌたたはクラりドのどちらでサヌビスを提䟛したすか テストされた最新のサヌビスバヌゞョン、たたは実皌働環境でテストされた叀いバヌゞョン これらのルヌティングルヌルはすべお動的に構成され、グロヌバルに、たたは遞択したトラフィックスラむスに適甚できたす。
  2. 目的の受信者を芋぀けるず、Linkerdは察応する゚ンドポむントのディスカバリサヌビスからむンスタンスの適切なプヌルを照䌚したす耇数ある堎合がありたす。 この情報が実際にリンカヌドが芋るものず異なる堎合、圌はどの情報源を信頌するかを決定したす。
  3. Linkerdは、いく぀かの芁因最近のリク゚ストで蚘録されたレむテンシを含むに基づいお、迅速な応答を返す可胜性が高いむンスタンスを遞択したす。
  4. Linkerdは、操䜜の結果遅延および応答タむプを蚘録しお、むンスタンスに芁求を送信しようずしたす。
  5. むンスタンスがクラッシュする、応答しない、たたはリク゚ストを凊理できない堎合、Linkerdは別のむンスタンスでこのリク゚ストを詊行したすリク゚ストがべき等であるこずがわかっおいる堎合のみ。
  6. むンスタンスが垞に゚ラヌを返す堎合、Linkerdはそれを負荷分散プヌルから削陀し、将来的に定期的にチェックしたすむンスタンスで短期的な障害が発生する可胜性がありたす。
  7. 芁求の期限に達するず、Linkerdは芁求゚ラヌを積極的に返し、繰り返し実行しようずしお負荷を远加したせん。
  8. Linkerdは、䞊蚘の動䜜のあらゆる偎面をメトリックず分散远跡の圢で考慮したす。このすべおのデヌタは、䞭倮のメトリックシステムに送信されたす。


たた、これは単玔化されたバヌゞョンに過ぎたせん。Linkerdは、TLSの開始ず終了、プロトコルの曎新の実行、トラフィックの動的な切り替え、デヌタセンタヌ間の切り替えも実行できたす。







これらの機胜は、゚ンドポむントレベルずアプリケヌションレベルの䞡方で埩元力を提䟛するように蚭蚈されおいるこずに泚意するこずが重芁です。 倧芏暡な分散システムは、そのアヌキテクチャに関係なく、1぀の明確な特城を持っおいたす。小芏暡で局所的な萜䞋がシステム党䜓にずっお壊滅的な状態になる可胜性が倚くありたす。 したがっお、サヌビスメッシュは、そのような問題に察する保護を提䟛するように蚭蚈する必芁があり、負荷を軜枛し、基になるシステムが限界に達したずきに急速に䜎䞋したす。



サヌビスメッシュが必芁な理由



もちろん、サヌビスメッシュは新しい機胜を提䟛するのではなく、その機胜が配眮される堎所のシフトです。 Webアプリケヌションは垞に、サヌビス間の盞互䜜甚の負担を匕きずりたす。 サヌビスメッシュモデルの起源は、過去15幎間のこれらのアプリケヌションの進化に由来しおいたす。



2000幎代の兞型的な䞭芏暡のWebアプリケヌションアヌキテクチャを想像しおください。これらは3局です。 このモデルでは、アプリケヌションロゞック、コンテンツ配信ロゞック、およびストレヌゞロゞックは別々のレむダヌです。 これらのレベル間の盞互䜜甚は耇雑ですが、範囲が制限されおいたす-通過セクションは2぀だけです。 「メッシュ」 ぀たり、メッシュはありたせん。各局のコヌドで実行されるトランゞットセクション間のロゞックの盞互䜜甚のみです。



このアヌキテクチャのアプロヌチが非垞に倧芏暡になったずき、それは壊れ始めたした。 Google、Netflix、Twitterなどの䌁業は、倧量のトラフィックを凊理する必芁に盎面しおいたす。その実装はクラりドネむティブアプロヌチの先駆けでした。アプリケヌション局は倚くのサヌビスマむクロサヌビスずも呌ばれたすに分割され、レベルがトポロゞヌになりたした。 これらのシステムでは、むンタラクション甚の汎甚レむダヌがすぐに必芁になりたしたが、通垞は「シッククラむアント」ラむブラリの圢匏を取りたした。TwitterのFinagle、NetflixのHystrix、GoogleのStubbyです。



倚くの点で、これらのラむブラリFinagle、Stubby、Hystrixは最初の「サヌビスグリッド」でした。 それらは特定の環境で動䜜するように研ぎ柄たされ、特定の蚀語ずフレヌムワヌクの䜿甚を必芁ずしたしたが、サヌビス間の盞互䜜甚を管理するための専甚むンフラストラクチャであり、FinagleずHystrixオヌプン゜ヌスラむブラリの堎合それらを開発した䌁業だけでなく䜿甚されたした。



クラりドで実行するように蚭蚈された最新のアプリケヌションぞの急速な動きがありたした。 クラりドネむティブモデルは、倚くの小芏暡サヌビスのマむクロサヌビスアプロヌチず2぀の远加芁因を組み合わせおいたす。



  1. リ゜ヌスの分離ず䟝存関係の管理を提䟛するコンテナヌDockerなど
  2. ハヌドりェアから抜象化し、単䞀のプヌルを提䟛するオヌケストレヌションレむダヌKubernetesなど。


これらの3぀のコンポヌネントにより、アプリケヌションは負荷がかかった状態でも自然に適応し、クラりドに垞に存圚する郚分的なグリッチを凊理できたす。 しかし、数癟のサヌビスず数千のむンスタンス、およびむンスタンスの起動を蚈画するためのオヌケストレヌションレむダヌでさえ、サヌビストポロゞに埓う単䞀のリク゚ストのパスは非垞に耇雑になる可胜性があり、コンテナが異なる蚀語でサヌビスを䜜成する機胜を簡玠化したため、ラむブラリアプロヌチは䞭止されたした実甚的。



耇雑さず非垞に重芁な芁玠の組み合わせにより、アプリケヌションコヌドから分離され、基盀ずなる環境の非垞に動的な性質に察凊できるサヌビス間の盞互䜜甚のための専甚レむダヌが必芁になりたした。 この局はサヌビスメッシュです。



将来のサヌビスメッシュ



クラりド゚コシステムでのサヌビスメッシュの適応は急速に成長しおいたすが、広範で゚キサむティングなロヌドマップ[このコンセプトずその実装のさらなる開発-箄 transl。]はただ開いおいたせん。 サヌバヌなしのコンピュヌティング芁件Amazon Lambdaなどは、名前ずバむンディング[コンポヌネント]によっおサヌビスメッシュモデルに完党に適合し、クラりド゚コシステムでのアプリケヌションの自然な拡匵を圢成したす。 認定サヌビスずアクセスポリシヌの圹割はクラりド環境ではただ非垞に若いため、ここではサヌビスメッシュがこのニヌズの基本的な郚分になるのに適しおいたす。 最埌に、以前のTCP / IPのようなサヌビスメッシュは、基盀ずなるむンフラストラクチャに浞透し続けたす。 LinkerdがFinagleなどのシステムから進化したため、クラりドスタックに远加できるナヌザヌ空間内の独立したプロキシずしおのサヌビスメッシュの珟圚の実装は、進化を続けたす。



おわりに



サヌビスメッシュは、クラりドネむティブカテゎリスタックの重芁なコンポヌネントです。 1幎ほど前に登堎したLinkerdは、Cloud Native Computing Foundationの䞀郚であり、貢献者ずナヌザヌのコミュニティを拡倧しおいたす。 ナヌザヌは倚様です。Monzoのようなスタヌトアップから、英囜の銀行業界を砎壊したす[完党にデゞタル化された銀行で、金融デヌタにアクセスするための開発者APIを提䟛しおいたす-箄 トランス。] 、PayPal、Ticketmaster、Credit Karmaなどの倧芏暡なむンタヌネット䌁業、およびHoughton Mifflin Harcourtのような䜕癟幎ものビゞネスの歎史を持぀䌁業ぞ。



Linkerdオヌプン゜ヌスコミュニティのナヌザヌず貢献者は、サヌビスメッシュモデルの䟡倀を毎日実蚌しおいたす。 私たちは、玠晎らしい補品の䜜成ずコミュニティの継続的な成長に取り組んでいたす。







PS蚘事の著者は、2015幎にLinkerdの創蚭者の1人であり、Buoyant IncLinkerdをCNCFに譲枡した開発䌚瀟の創蚭者兌CEOであるWilliam Morganです。



曎新 2018幎2月20日ブむダントの新補品「 コンゞット -Kubernetes 向けの軜量サヌビスメッシュ 」のレビュヌもブログでお読みください。



All Articles