マイクロサービスにおけるバージョンの組み合わせ爆発

Pavel Shukhman    
DevOps管理プラットフォーム「RELIZA」の創業者
この記事は、著者の許可を得て配信しています。
https://worklifenotes.com/2020/03/04/microservices-combinatorial-explosion-of-versions/

ITの世界がマイクロサービスに移行し、Kubernetesのようなツールが人気を博している中、長引く問題が存在します。 それは、さまざまなマイクロサービスのバージョンの組み合わせ爆発という問題です。コミュニティからは、以前の依存性地獄よりもはるかに利点が多い可能性があると期待されているということです。しかし、それにもかかわらず、マイクロサービス上に構築された製品のバージョン管理は大変難しいです。そのことが正しいことを証明するために、「Give Me Back My Monolith」という記事が頭に浮かびました。


コンポーネントバージョンの組み合わせ爆発

これが一体何なのか疑問に思っている方もいると思うので、説明します。製品が10個のマイクロサービスで構成されているとします。そして、これらのマイクロサービスのそれぞれが1つの新しいバージョンを取得するとします。 たった1つのバージョンです。次に、製品に立ち返ります。各コンポーネントの新しいバージョンが1つだけで、2 ^ 10になりました。つまり、製品を構成する方法の1024の順列です。

この説明で分かりにくいのであれば、数字で説明させてください。10個のマイクロサービスがあり、それぞれに1つのアップデートがあります。したがって、マイクロサービスごとに2つのバージョン(古いバージョンまたはアップデートされたバージョン)があります。コンポーネントごとに、これら2つのバージョンのいずれかを使用できます。これは、10桁の2進数を持つことに相当します。たとえば、1が新しいバージョンで、0が古いバージョンであるため、1つ目と4つ目のコンポーネントがアップデートされ、他のすべてのコンポーネントがアップデートされない場合、1つの置換は1001000000となります。こうやって計算をすると、10桁の2進数には2 ^ 10または1024のバリエーションがあることがわかります。これがまさにここで扱っている数字です。

さて、引き続き説明を続けます。100個のマイクロサービスとそれぞれ10個のバージョンがある場合はどうなりますか? 全体がかなり醜くなりました-現在は10 ^ 100の順列です-これは膨大な数です。私にとっては、「kubernetes」などの言葉の後ろに隠れているのではなく、困難な問題に直面しているため、このように述べているのです。

なぜ私はこの問題にばかり執着しているのでしょうか。NLP / AIの分野出身ということもありますが、5~6年前にその分野での組み合わせ爆発の問題について積極的に話していました。バージョンの代わりに別の単語があり、製品の代わりに文と段落があります。現在、NLPとAIの問題のほとんどが解決されていませんが、実際のところ、最近ではかなり進歩しました。(機械学習だけではなく、もっと他の手法に少しばかり関心を持つ人が増えれば、その進歩はより速くなる可能性があると私は思っていますが、それは今回のトピックからは内容がずれますね)。

コンテナとマイクロサービスのDevOpsの話に戻りましょう。 私たちは、例えれば部屋に巨大な象を飼っているような問題をかかえていて、頻繁に耳にするのが「kubernetesとHelmがあれば大丈夫だ」という言葉です。でも、それだけではうまくいきません。さらに、そのような問題に対しての閉形式解は実行不可能です。 NLPの場合と同様に、最初に検索スペースを制限することでこの問題に対処しなければいけません。つまり、古い順列を削除するということです。

ためになることを1つお教えしましょう。昨年、このブログで、本番環境でバージョンの最小スパンを維持する必要性について言及しました。 また、優れたCI / CDプロセスは、バリエーションのプルーニングに大いに役立ちます。ただし、CI / CDの現在の状態は、コンポーネントの実際の順列を処理する適切なアカウンティング、追跡、ツールなしでは十分ではありません。

コンポーネントごとにリスクファクターを設定し、さまざまなコンポーネントをアップグレードする自動プロセスを持ち、何が機能して何が機能していないかを確認するテストを行うより大規模な統合段階の実験が大切なのです。

そのシステムは次のようになります。

1.開発者はテストを作成します(これは非常に重要です。このテストがないと参照ポイントがないため、MLでデータにラベルを付けるようなものになります。)

2.すべてのコンポーネント(プロジェクト)には、明確に定義された独自のCIパイプラインがあります。このプロセスは今では十分に確立されており、コンポーネントごとのCI問題はほぼ解決されています。

3. 「Smart Integration Engine」は、さまざまなCIパイプラインの一番上の存在で、コンポーネントプロジェクトを最終製品に組み立て、テストを実行し、現在のコンポーネントが与えられた目的の機能の完成までの最短経路を見つけ、リスク要因を計算します。アップグレードができない場合、そのようなエンジンは開発者に可能な限りベストな候補者と、問題が発生していると思われる場所について警告します。 繰り返しますが、テストは非常に重要です。統合エンジンはテストを参照ポイントとして使用します。

4. CDパイプラインがSmart Integration Engineからデータを取得し、実際のロールアウトを実行します。 これでサイクルが完了します。

要約すると、私にとって現時点での最大の問題点の1つは、さまざまなコンポーネントを製品に混ぜて、製品全体で物事が実際にどのように機能するかを適切に追跡できる統合エンジンがないことです。 これについて読者のみなさまも色々と考えていただければ幸いです(ネタバレ注意:現在、私はRelizaがその「スマート統合エンジン」として機能できるようにする仕事に携わっています)

最後に、私にとってモノリスは、かなり規模のプロジェクトに対する答えではないということを主張したいと思います。モノリスに立ち戻って、実際に納期と配送品質を改善しようとする試みには非常に懐疑的に感じます。 まず、モノリスにはさまざまなライブラリー間のディペンデンシー管理と同様の問題がありますが、開発時間の影に隠れて分かりにくくなっています。その結果、人々はモノリスに実際に変更を加えることができないため、プロセス全体が遅くなります。

マイクロサービスのおかげで状況を改善することができますが、統合の段階でバージョン管理が爆発的に増加します。 そうです。基本的に、開発段階から統合段階に同じ問題を移しました。しかし、私の見解では、それは優れており、チームはマイクロサービスを使用して実際に高速に実行します(おそらく、バッチサイズが小さいためです)。 それでも、モノリスをマイクロサービスに分解したところで、十分な改善にはなっていません。コンポーネントのバージョン爆発は、色々なことを改善できる可能性を秘めた大きな問題です。


コメントを読む

新着ピック  




















山本 聡山本 聡14時間前フリーランスWebフロントエンドエンジニア


新着ニュース

カイコがコロナの救世主?食べるワクチン開発へ

ワイン用ブドウをAI栽培、調和技研が北海道で実証

ついにPixel 4a発表!! …え?でも最後まで読んでから決めて

ついにPixel 4a発表!! …え?でも最後まで読ん...

ギズモード・ジャパン / 4時間前


AWS、独自開発したARMプロセッサ「Graviton 2」ベースのAmazon RDS MySQL/PostgreSQLをプレビュー開始。ARMはXeonを上回れるのか?

「AWS Toolkit for Visual Studio Code」がAmazon S3をサポート。VSCodeからS3バケットの作成やデータのアップロード、ダウロードなど可能に

「AWS Toolkit for Visual Stu...

Publickey / 3時間前


Google、5Gスマホ「Pixel 4a 5G」「Pixel 5」の年内発売を予告 - Engadget 日本版

Google、5Gスマホ「Pixel 4a 5G」「P...

Engadget 日本版 / 3時間前


Googleの完全無線イヤホン「Pixel Buds」日本上陸、税込2万800円 - Engadget 日本版

速報:Google Pixel 4a正式発表、Pixel 4の半額以下でカメラは同等レベル(石野純也) - Engadget 日本版

速報:Google Pixel 4a正式発表、Pixe...

Engadget 日本版 / 4時間前


新型「Google Pixel Buds」も上陸! Googleテクノロジー満載のイヤホン

新型「Google Pixel Buds」も上陸! G...

ギズモード・ジャパン / 3時間前


ついにPixel 4a発表!! …え?でも最後まで読んでから決めて

ついにPixel 4a発表!! …え?でも最後まで読ん...

ギズモード・ジャパン / 4時間前


Google、同時通訳もする無線イヤフォン「Pixel Buds」を日本で8月20日発売

Google、「Pixel 4a」発表 6GB/128GBでiPhone SEより安い4万2900円

後出しの「Pixel 4a」は「iPhone SE」を超えられたか

「Pixel 4a」発表、4万2900円で8月20日発売へ--星空撮影、おサイフにも対応

「Pixel Buds」日本上陸--グーグルの完全ワイヤレスイヤホン、税込2万800円

グーグル、5Gスマホを2020年秋に投入へ--「Pixel 5」と「Pixel 4a 5G」の2モデル

Google Pixel 4a 新登場

Google Pixel 4a 新登場

Google Japan Blog / 4時間前


グーグル、「Pixel 4a 5G」「Pixel 5」を予告

「Google Pixel 4a」クイックレビュー

「Google Pixel 4a」クイックレビュー

ケータイ Watch / 4時間前


グーグル、リアルタイム翻訳できる「Pixel Buds」20日発売、2万800円

記事をPICKする
appstore
googleplay
会員登録
Register
記事をPICKする

会員登録すると、もっと便利に利用できます。