コンテナ、特に Kubernetes を扱っている場合は、おそらく Istio について聞いたことがあるでしょう。初心者のために説明すると、Istio は Kubernetes 用のサービス メッシュです。いわゆるサービス メッシュは、サービス トラフィックを動的に管理し、安全に管理できるネットワーク層です。 Istio を最大限に活用する方法は、1 つのブログ投稿の範囲を超えています。したがって、この記事ではその機能のいくつかを紹介し、さらに重要なことに、この記事を通じていくつかの実用的な問題の解決を自動化する方法をいくつか学ぶことができます。 Istio を使用すると、一連のカスタム Kubernetes リソースを使用してネットワーク トラフィックを管理でき、サービス間およびクラスター内外のネットワーク トラフィックを保護および暗号化できます。 Kubernetes API と完全に統合されているため、Istio 設定は他の Kubernetes 構成とまったく同じ方法で定義および管理できます。 長所と短所を比較検討して選択してください Istio を使い始める場合は、まずその理由を自問する必要があります。 Istio は、カナリア リリースなどの非常に価値のある機能を提供しますが、複雑さを増さずに使用することはできません。それを学ぶには、ある程度の時間を投資する必要もあります。とはいえ、状況に応じて、Istio の機能を独自のクラスターに慎重かつ段階的に導入することができます (また、そうすべきです)。 新しい環境をゼロから構築し、長所と短所を比較検討した上で Istio の導入を決定した場合は、必ず最初から厳密な相互 TLS を設定して、その強力な機能を活用してください。具体的な操作については、 これらすべてを価値あるものにし、コスト効率を高めるには、実際のアプリケーションのコンテキストで Istio について考える必要がありますが、簡単な免責事項なしにそれを行わない方がよいでしょう。少数のサービスのみを管理する必要があり、それらが単一のクラスター内に配置されている場合、Istio を導入するコスト効率は比較的低くなります。 この記事のコード例は、問題を完全に解決するのに役立つとは限りませんが、すべてのコードと使用方法の詳細な手順が必要な場合は、GitLabで見つけることができます。 以下では、クラウド ネイティブの導入時に遭遇する可能性のある 2 つの一般的な問題と、Istio を使用してそれらの問題を解決する方法について説明します。 問題1: テストを信頼できない テスト範囲がアプリケーションに加えた変更を完全にカバーしていない場合、すぐに新しいテスト ラウンドに移行できますが、アプリケーションが正しく機能しない可能性があります。 理想的には、すべてのコードが徹底的にテストされていることを確認する必要があります。そうしないと、アプリケーションに機能が追加されません。しかし現実は常に厳しいものです。 DDLに追われることが多いです。テストを作成または更新する前に、関数をプロジェクトにアップロードする必要がある場合があります。 解決策: 速度を落とす では、コードに潜むバグによって大多数のユーザーが影響を受けないようにしながら、変更を加えて新しい機能を展開するにはどうすればよいでしょうか?答えは、まず最小限のユーザーに新しいバージョンを展開することで、これらの小さな問題の影響を最小限に抑えることです。 変更が期待どおりに機能した場合は、新しいバージョンを使用するユーザーの割合を徐々に増やすことができます。メトリックに問題が発生した場合、変更を簡単にロールバックして再試行できます。 Istio なしで Kubernetes 上でカナリアデプロイメントを実行することは可能ですか?もちろんですが、プロセスを自動化したい場合は、Web サーバー コードとカスタム自動化スクリプトに完全に集中する必要があります。この動作モードは費用対効果が高くありません。 Istio には非常に優れたトラフィック分散ソリューションが備わっており、これを使用して適切なクライアントに適切なバージョンを適切なタイミングで提供することができ、調整する必要があるのは 1 つまたは 2 つのパラメータだけです。 これを実現するには、Ingress ゲートウェイ、仮想サービス、および宛先ルールを設定する必要があります。これは通常のデプロイメントとサービスの上に配置され、トラフィックを分散します。
仮想サービスの Weight フィールドからわかるように、Istio は指定された値に基づいてアプリケーションの 2 つのバージョン間でトラフィックを分散します。これらの値の合計は 100% である必要があります。そうでない場合、API は定義の適用を拒否します。 その後、あなた (または理想的には、継続的インテグレーション/継続的デリバリー パイプラインの 1 つ以上の手動ステップ) は、すべてのリクエストが新しいバージョンで満たされ、以前のバージョンをメンテナンスから削除できるようになるまで、重みを調整して新しいバージョンをより多くのユーザーに宣伝します。 また、Istio の障害注入機能を使用して実際のトラフィックのネットワーク停止やパフォーマンス低下をシミュレートすることで、Istio を統合テスト戦略に統合することもできます。 本番環境でテストを行うことに不安を感じるなら、それは間違ったやり方です。たとえば、仮想サービス仕様に次のスニペットを追加して混乱を招き、Istio を使用してそのような混乱を解決する方法に関する記事を探してみてください。
問題2: マーケティング戦略ではリリースバージョンを決定できない 多くの場合、企業では実際のユーザーに対してアプリケーションの複数のバージョンをテストする必要があります。しかし、どのマーケティング戦略が最高のコンバージョン率につながるのか、またはどのデザイン選択が最高の顧客維持率につながるのかを判断するのは不可能な場合があります。 Kubernetes を使用すると、トラフィックを 2 つのバージョンに分割できますが、この演習から貴重な洞察を得るには、関連する情報を取得し、技術に詳しくない同僚が理解できる方法で処理するための一連のカスタム コードが再度必要になります。 ソリューション: Istio を使用した A/B テスト Istio のトラフィック分散ルールはこの問題を再び解決でき、Prometheus および Grafana との緊密な統合により直感的な A/B テスト結果を得ることができます。一般に、受信パケットの内容の一部に基づいて、どのユーザーがアプリケーションのバージョンを取得するかを決定する方法はほぼ無限にあります。 この例では、User-Agent フィールドを使用して、異なるブラウザに異なるバージョンを提供します。
上記のコードからわかるように、Firefox を使用するユーザーはアプリケーションのバージョン 1 を取得し、Chrome ユーザーはバージョン 2 を取得します。ブラウザの「User-Agent」フィールドに「mozilla」または「chrome」が含まれていない場合、どちらのバージョンも取得されません。 他のクライアントにサービスを提供するには、デフォルト ルートを追加する必要がありますが、これは演習として残しておきます。 (ヘイヘイ) 別のブラウザをインストールせずに試してみたいだけの場合は、ヘッダー フラグを指定した curl を使用して、任意のブラウザを装うことができます。次に例を示します。
user-agent の値を変更することで、コマンドラインからさまざまなルートをすべてテストできます。 要約する 上記の 2 つの状況から、Istio の強力な機能を垣間見ることができるでしょう。前述のように、Istio がなくてもカナリア デプロイメントと A/B テストを実行することはできますが、トラフィック分散を自分で実装する必要があります。ただし、これにより開発と展開の複雑さが大幅に増し、コスト効率の悪いオプションになります。 この投稿で Istio の実際の動作について十分に理解していただけたと思います。ぜひご自身で試してみるのが待ちきれません。 Istio について詳しく知りたい場合は、役立つ情報が多数掲載されている公式 Web サイトをご覧ください。 Rancher 2.3 Preview2 バージョンが Istio のサポートを開始したことは注目に値します。ユーザーは UI インターフェースで直接 Istio を起動し、各名前空間に自動サイドカーを挿入できます。さらに、Rancher は Istio のインストールと構成を簡素化し、トラフィックとテレメトリの視覚化のための Kiali サポートを備えた組み込みダッシュボードを備え、トレースには Jaeger を使用し、独自の Prometheus と Grafana (高度な監視用のインスタンスとは別) も備えています。これらすべてにより、Istio の導入と管理が簡単かつ迅速になります。 リリースノートとインストール手順は GitHub で入手できます。 |
<<: ディプテクノロジーは、デジタル技術とビジネスの統合を全面的に推進するためにシリーズAで3,500万ドルの資金調達を実施
>>: ハイブリッド クラウドが「新しい IT 標準」である 5 つの理由
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています6月26日...
この記事を書いているときに、最初に頭に浮かんだのは、以下の文章をどう書くかではなく、「隋唐英雄伝」の...
近年、ローカル ウェブサイトが徐々に登場し、その多くは非常に人気があり成功しています。しかし、価値の...
クラウド管理プラットフォームを評価する際、IT 意思決定者は、プラットフォームが便利な主要機能を備え...
1. 分析によると、従来のウェブサイトの成長は停滞しており、モバイルインターネットが成長している。フ...
インターネットには、ウェブサイト最適化業界に携わる人々のグループがあります。彼らは、大変な仕事に加え...
コンテナ革命の始まりから、2 つのことが明らかになりました。まず、テクノロジー スタックのレイヤーの...
最近、上都路と十里埔街の交差点にある汴良大湯餃子店の店長の何六柱さんは心配していることがある。×紅偉...
あらゆる大規模なサイバー攻撃や、あまり知られていない障害の背後では、IT セキュリティ専門家、アプリ...
多くの人がクラウド コンピューティング テクノロジーの利点を理解しています。今後の展開について言えば...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス今日、多くのウェブマスタ...
ジャック・マー氏はダブル11を中国版ブラックフライデーにしたいと語った。この2つをどう比較すればいい...
bluehost の仮想ホストについてはあまり語りません。アメリカの仮想ホストの安定性、速度、リソー...
「失敗の理由は何千もあるが、成功の理由は似ている」ということわざがあります。したがって、成功事例を分...
クラウド コンピューティング サービスの選択は、IT スタッフにとっても非常に混乱を招く可能性があり...