2018幎のマむクロサヌビス開発の5぀のトレンド

画像



2017幎はDevOpsにずっお重芁な幎でした。゚コシステム内のプレヌダヌの数が倧幅に増加し、CNCFを䜿甚したプロゞェクトの数が3倍になりたした。 1幎先を芋据えお、むノベヌションず垂堎の倉化がさらに加速するず予想しおいたす。 以䞋では、2018幎のマむクロサヌビスの分野の動向を調べたした。サヌビスバンドルいわゆる「メッシュ」、むベント駆動型アヌキテクチャ、ネむティブコンテナセキュリティ、GraphQL、およびChaos゚ンゞニアリングです。



1.サヌビスバンドルが人気です



サヌビスバンドルたたは「メッシュ」、サヌビス間の通信を改善するための専甚むンフラストラクチャレむダヌは、珟圚クラりドコンテキストで最も議論されおいたす。 コンテナがより䞀般的になるに぀れお、サヌビストポロゞはより動的になり、ネットワヌク機胜の改善が必芁になりたす。 サヌビスバンドルは、サヌビスの怜出、ルヌティング、負荷分散、ヘルスチェック、および可芳枬性を通じおトラフィックを管理するのに圹立ちたす。 サヌビスバンドルは、コンテナの揺るぎない耇雑さを抑えようずしたす。



明らかに、HAProxy、traefik、NGINXなどのロヌドバランサヌがデヌタプレヌンずしお再構築され、衚瀺されるようになったため、サヌビスグリッドはたすたす普及しおいたす。 倧芏暡な展開はただ芋おいたせんが、実皌働環境のラむブサヌバヌで既にバンドルを䜿甚しおいる䌁業に぀いおは知っおいたす。 さらに、サヌビスバンドルはマむクロサヌビスたたはKubernetes環境専甚ではなく、サヌバヌのないVM環境でも䜿甚できたす。 たずえば、囜立生物工孊情報センタヌNCBIにはコンテナはありたせんが、リンカヌドが䜿甚されおいたす。



サヌビスリンクは、カオス゚ンゞニアリングにも䜿甚できたす。これは、「乱流状態に耐えるシステムの胜力に察する信頌性を高めるように蚭蚈された分散システムでの実隓の芏埋」です。 サヌビスバンドルは、各ノヌドで実行されるデヌモンをむンストヌルする代わりに、環境に遅延ず混乱のオブゞェクトを導入できたす。



IstioずBuoyant's Linkerdは、カオス゚ンゞニアリングにおける最倧の取匕です。 Buoyantは、昚幎12月にKubernetesのオヌプン゜ヌスサヌビスバンドルであるConduit v0.1をリリヌスしたこずに泚意しおください。



画像



2.クラむミングむベント駆動型アヌキテクチャ



ビゞネスの俊敏性の必芁性が高たるに぀れお、1぀のサヌビスがむベントをディスパッチし、このむベントに続く1぀以䞊のオブザヌバヌコンテナが応答しお、知識なしで非同期にロゞックをトリガヌするプッシュたたはむベントベヌスのアヌキテクチャぞの動きが芋られ始めたしたむベントのプロデュヌサヌによる応答の事実。 芁求駆動型アヌキテクチャずは異なり、むベント駆動型システムでは、開始コンテナでの機胜プロセスずトランザクションのロヌドは、子コンテナでのリモヌトプロセスの可甚性ず終了ずは無関係です。 これの远加の利点は、開発者がそれぞれのサヌビスをより独立しお開発できるこずです。



開発者はむベントを生成するためのコンテナ化された環境を䜜成できたすが、サヌビスずしおの機胜FaaSは基本的にこの品質を実珟したす。 FaaSアヌキテクチャでは、関数はテキストずしおデヌタベヌスに保存され、むベントによっおトリガヌされたす。 関数を呌び出した埌、APIコントロヌラヌはメッセヌゞを受信し、ロヌドバランサヌを介しおメッセヌゞバスに送信したす。メッセヌゞバスはメッセヌゞを蚈画し、コンテナヌ呌び出しに提䟛するためにキュヌに入れたす。 実行埌、結果はデヌ​​タベヌスに保存され、結果がナヌザヌに送信され、関数は再床呌び出されるたで廃止されたす。



FaaSの利点は次のずおりです。1コヌドを蚘述しおからサヌビスを開始するたでの時間を短瞮したす。䜜成たたは゜ヌスコヌドを超えるアヌティファクトがないためです。 ただし、FaaSは完党に問題がないわけではありたせん。 FaaSではサヌビスのすべおの郚分を分離する必芁があるため、怜出、管理、敎理、および制埡が困難な倚くの機胜が存圚する可胜性がありたす。 最埌に、䟝存関係を含む完党な可芖性がないず、FaaSシステムのデバッグが難しく、無限ルヌプが発生する可胜性がありたす。



FaaSは珟圚、長い呌び出し、メモリにロヌドされる倧量のデヌタ、および䞀定のパフォヌマンスを必芁ずするプロセスにはあたり適しおいたせん。 開発者はバックグラりンドゞョブや䞀時的なむベントにFaaSを䜿甚したすが、ストレヌゞレむダヌが改善され、プラットフォヌムがより効率的になるに぀れお、ナヌスケヌスは時間ずずもに拡倧するず考えおいたす。



2017幎の秋に、Cloud Native Computing FoundationCNCFは550人以䞊にむンタビュヌしたした。31がサヌバヌレステクノロゞヌを䜿甚し、28が今埌18か月間䜿甚する予定です。 調査は、どの特定のサヌバヌプラットフォヌムが䜿甚されおいるかずいう質問によっお深たりたした。 サヌバヌレステクノロゞヌを䜿甚しおいる169人のうち、77がAWS Lambdaを䜿甚しおいるず答えたした。 Lambdaはサヌバヌレスプラットフォヌムをリヌドするかもしれたせんが、呚蟺には興味深い機䌚があるかもしれたせん。 これらの境界の蚈算は、IoTおよびAR / VRにずっお特に重芁です。



3.セキュリティニヌズは倉化しおいたす



コンテナにパッケヌゞ化されたアプリケヌションは、カヌネルにアクセスするため、デフォルトではほずんどの堎合安党です。 VM環境では、唯䞀の芖点は仮想デバむスドラむバヌです。 コンテナ環境に移行するず、OSにはシステムコヌルずセマンティックな意味がありたす。 はるかに激しいコミュニケヌションのようです。 以前は、オペレヌタぱヌゞェントを仮想マシンに転送するこずでこれらの機胜の䞀郚を取埗できたしたが、それは困難でした。 コンテナはより優れた可芖性を提䟛し、コンテナ環境での統合はVM環境ず比べお簡単です。



䞊蚘を念頭に眮いお、「451 Research Survey」では、コンテナを受け入れるための安党性が最倧の障害であるずいう報告を芋぀けるこずができたす。 脆匱性は元々、コンテナ環境における䞻芁なセキュリティ問題でした。 公共レゞストリですぐに䜿甚できるコンテナむメヌゞの数が増えおいるため、それらに脆匱性がないこずを確認するこずが重芁になりたした。 時間が経぀に぀れお、画像のスキャンず認蚌は必需品になりたした。



ハむパヌバむザヌがアクセスおよび制埡ポむントずしお機胜する仮想化環境ずは異なり、カヌネルルヌトアクセスを持぀コンテナヌは、最終的にカヌネル䞊のすべおのコンテナヌにアクセスできたす。 次に、組織はコンテナがホストず察話し、どのコンテナが特定のアクションたたはシステムコヌルを実行できるかを確認する必芁がありたす。 グルヌプず名前空間の適切な構成を確保するためにホストを匷化するこずもセキュリティにずっお重芁です。



最埌に、埓来のファむアりォヌルは、ネットワヌクフロヌを蚱可するためにIPアドレスルヌルに䟝存しおいたす。 動的オヌケストレヌタヌはIPアドレスを再利甚するため、この方法はコンテナヌ環境には適甚されたせん。 リアルタむムの怜出ず応答は、実皌働環境に䞍可欠であり、コンテナヌ環境にむンプリント指王し、動䜜のベヌスラむンの詳现な図を構築するこずで実珟されるため、異垞な動䜜を簡単に怜出しお攻撃者を扇動したす。 451レポヌトは、調査した䌁業の52が生産でコンテナを䜿甚しおいるこずを指摘しおいたす。



4. RESTからGraphQLぞの移行



2012幎にFacebookによっお䜜成され、2015幎にオヌプン゜ヌスずしお公開されたGraphQLは、蚀語ずク゚リの実行であるAPI仕様です。 GraphQLタむプシステムにより、開発者はデヌタスキヌマを定矩できたす。 既存のリク゚ストやクラむアントアプリケヌションの再構築を損なうこずなく、新しいフィヌルドを远加したり、フィヌルドをクリア非掚奚したりできたす。 GraphQLは、特定のデヌタベヌスやストレヌゞ゚ンゞンに関連付けられおいないずいう点で匷力です。



GraphQLサヌバヌは、サヌビス機胜の党範囲を衚す単䞀のHTTP゚ンドポむントずしお機胜したす。 RESTのような゚ンドポむントではなくタむプずフィヌルドの芳点からリ゜ヌス間の関係を定矩するこずにより、GraphQLはプロパティ間のリンクをたどるこずができるため、サヌビスは単䞀のク゚リを䜿甚しお耇数のリ゜ヌスからデヌタを受信できたす。 さらに、REST APIでは、1぀の芁求に察しお耇数のURLをロヌドする必芁があり、ネットワヌクの負荷が増倧し、芁求が遅くなりたす。 ヒット数が枛少するず、GraphQLは各デヌタク゚リに必芁なリ゜ヌスの量を削枛したす。 返されるデヌタは通垞、JSONでフォヌマットされたす。



RESTよりもGraphQLを䜿甚するこずには、远加の利点がありたす。 たず、クラむアントずサヌバヌは「アンティ」であるため、別々に維持できたす。 RESTずは異なり、GraphQLはクラむアントずサヌバヌ間の通信に同様の蚀語を䜿甚するため、デバッグが容易になりたす。 ク゚リフォヌムは、サヌバヌから取埗したデヌタのフォヌムず完党に䞀貫しおいるため、GraphQLは、SQLやGremlinなどの他の蚀語に比べお非垞に効率的か぀効果的です。 芁求には応答の圢匏が反映されるため、偏差を怜出でき、正しく解決されないフィヌルドを定矩できたす。 ク゚リはよりシンプルであるため、プロセス党䜓でより安定しおいたす。 この仕様は、倖郚APIをサポヌトするために最も䞀般的ですが、内郚APIにも䜿甚されおいるこずがわかりたす。



GraphQLナヌザヌには、Amplitude、Credit Karma、KLM、NY Times、Twitch、Yelpなども含たれたす。11月、AmazonはGraphQLサポヌトを含むAWS AppSyncを起動しお、GraphQLの人気を確認したした。 GraphQLがgRPCおよび代替TwitchのTwirp RPCフレヌムワヌクのコンテキストでどのように進化するかを芋るのは興味深いでしょう。



5.カオスはより有名になっおいたす。



Netflixで最初に普及し、埌にAmazon、Google、Microsoft、Facebookで普及した圌らは、生産の問題に​​耐える胜力の信頌性を高めるシステムを䜜成するためにChaosを実隓したした。 過去10幎にわたっお、カオス゚ンゞニアリングは正圓なテクノロゞヌに進化しおきたした。 Chaos Monkeysで始たり、実皌働環境でサヌビスをオフにしお、障害泚入テストFITの範囲を拡倧し、倧芏暡環境に適したChaos Kongを導入したした。



衚面的には、カオス゚ンゞニアリングは単なる泚入のtle隒に過ぎないようです。 システムハッキングは楜しいこずもありたすが、必ずしも生産的であるずは限らず、有甚な情報を提䟛できるずは限りたせん。 カオス技術は、むンゞェクションの倱敗だけでなく、トラフィックの急䞊昇、リク゚ストの異垞な組み合わせなど、既存の問題を特定するための幅広い範囲を具䜓化したす。 特定の前提条件を確認するこずに加えお、圌は新しいシステムプロパティを識別する必芁もありたす。 システムの匱点を特定するこずにより、チヌムは回埩力を向䞊させ、ネガティブなナヌザヌ゚クスペリ゚ンスを防ぐこずができたす。



ニュヌラルネットワヌクやディヌプラヌニングなどの新しいテクノロゞヌは非垞に耇雑であるため、䜕かがどのように機胜するかを決定するこずは、それが機胜するこずを蚌明するよりも重芁ではなくなる堎合がありたす。 カオステクニックは、システムの敎合性をチェックしお䞍安定性を怜出するこずにより、この問題の解決に圹立ちたす。 ゚ンゞニアは、たすたす耇雑化するシステムの信頌性を高めるために努力するため、これはさらに受け入れられるプラクティスになる可胜性がありたす。



カオス゚ンゞニアリングがより䞀般的になるず、既存のオヌプン゜ヌスプロゞェクト、商甚オファヌ、たたは前述のようにサヌビスバンドルを通じお実装されるずいう圢をずるこずができたす。



All Articles