Kubernetes などのクラウドネイティブ テクノロジーにより、企業はソフトウェアを迅速に構築し、簡単に拡張できるようになります。ただし、サービス指向アーキテクチャ (マイクロサービス) の構築と基盤となる Kubernetes インフラストラクチャの実行が複雑になるため、これらの Kubernetes ベースのアプリケーションのデバッグは非常に困難になる可能性があります。 エラーは避けられず、通常はソフトウェア開発プロセス中の間違いや見落としによって発生します。したがって、企業がアプリケーションの配信ペースに遅れずについていき、エンドユーザーの満足度を維持するために、開発者は効率的かつ効果的なデバッグ方法を必要としています。これには、これらのエラーを見つけて、分析し、修正することが含まれます。 この記事では、Kubernetes デバッグの 5 つの課題とその解決方法について説明します。 1. コンテナの構築と再デプロイによる開発サイクルの遅延開発チームが Kubernetes などのクラウドネイティブ テクノロジーを採用すると、内部開発ループで追加の手順を実行する必要があるため、開発者エクスペリエンスは大幅に変わります。以前のモノリシック環境のようにコードを記述してコード変更の結果をすぐに確認するのではなく、外部依存関係を管理し、コンテナを構築し、オーケストレーション構成 (Kubernetes YAML など) を実装してから、影響を受けるコード変更を確認する必要があります。 この Kubernetes デバッグの課題を解決するには、いくつかの方法があります。
2. 分散アプリケーションのエンドツーエンドのプロセスに対する可視性の欠如Kubernetes を使用する場合のもう 1 つのデバッグの課題は、通常はサービスが多すぎるため、アプリケーションのエンドツーエンドのフローを包括的に理解することです。完全な可視性がなければ、エラーを特定して修正することは困難です。 理想的には、サービス全体の可視性を得て、何が何を呼び出しているのか、何がタイムアウトしているのかなどを把握できる必要があります。これに対処するには、観測性とトレースをよりシームレスにするツールを活用する必要があります。たとえば、OpenTelemetry、Jaeger、Grafana Tempo などのツールを使用すると、エラーを再現するために必要な情報を取得できます。ここでの目標は、できるだけ多くの情報を取得することです。そうすることで、バグをリアルタイムで修正し、最終的にアプリケーションの全体的なパフォーマンスを向上させることができます。 3. コードにデバッガをアタッチできない開発者にとって最も重要なことの 1 つは、コードにデバッガーをアタッチできることですが、Kubernetes を使用してもこれは容易ではありません。はい、print/log ステートメントなどは機能しますが、特にユーザーが慣れていない新しいコード ベースの場合は、デバッガーを配置してコードをステップ実行できるほど優れたものではありません。 この Kubernetes デバッグの問題を解決するには、次の 2 つの方法があります。
4. ローカル変更による統合テストを実行するための複雑なセットアップクラウドネイティブ アプリケーションは通常、さまざまなマイクロサービスで構成されます。通常、これらのマイクロサービスは相互に依存して動作し、相互に通信して、より大きなビジネス リクエストを処理します。 たとえば、ソーシャル メディア アプリケーションのタイムライン サービスでは、ユーザーのフォロワーを判断するためにユーザー プロファイル サービスと通信する必要がある場合があり、ユーザーの認証ステータスを判断するために認証サービスと通信する必要がある場合があります。マイクロサービス間では多方向のサービス間通信が発生するため、ユニット テストだけではターゲット環境でのアプリケーションの動作を常に保証できるとは限らないため、変更を展開する前にマイクロサービスで統合テストを実行することが重要です。 このコンテキストで統合テストを実行するには、当然、複数のサービスを実行し、(場合によってはリモートの) ミドルウェアおよびデータ ストアに接続する必要があります。これには、さまざまな課題を伴う技術とツールが必要です。これらの課題には、リソースの制限や、本番環境と非本番環境間のデータの不整合などが含まれます。さまざまな環境に合わせてさまざまな構成を管理する。サービスのバージョン管理、リリース、展開サイクルの管理に関連する困難。 5. 本番環境/ステージング環境でのみ発生する問題を再現する場合によっては、ローカルの本番環境またはステージング環境で発生したバグを再現することが非常に複雑になることがあります。この時点では、シミュレーションまたは既存の値は不十分です。 実際にこの問題を再現するにはどうしたらよいのか、と疑問に思うかもしれません。どうすれば問題の根本に早くたどり着けるでしょうか?そうですね、K8s のデバッグの課題に関しては、Telepresence というオープンソース ツールをいつも使っています。このツールを使用すると、リモート依存関係にローカルで実行されているかのようにアクセスし、リモート サービスからローカル サービスにトラフィックを再ルーティングできます。 つまり、リアルタイムでデバッグし、問題を再現して、優先バージョン管理および CI/CD パイプラインに修正をより速くプッシュできるということです。 結論はほとんどの組織では、重要なソフトウェア配信は複数回の反復を通じてテストする必要があると主張していますが、エラーは避けられないことを覚えておくことが重要です。アプリケーションを効果的にデバッグできることは、バグを特定、理解、修正するための最良の手法の 1 つです。 Kubernetes などのコンテナ テクノロジーはソフトウェア開発者に多くのメリットをもたらしますが、アプリケーションのデバッグの課題ももたらします。幸いなことに、これらの課題に簡単に対処する方法があります。 |
<<: クラウド コンピューティング仮想化三部作の第 1 部: CPU とメモリの仮想化
>>: Inspur データクラウド事業戦略が正式に発表: データ価値を最大限に引き出し、信頼できるデータの自由な流れを促進
北京時間7月1日、海外メディアの報道によると、2012年6月はテクノロジー業界にとって新しい時代の始...
検索エンジンのスナップショットが停滞しているということは、検索エンジンがそのウェブサイトを信頼してい...
ある種の悲しみがあります。私にはお金があるのに、あなたはそれを欲しくないのですか?バカ!次のような状...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますキーワード...
ほとんどの場合、 IT の運用と保守作業はリモートで実行できます。管理対象システムにネットワーク経由...
オープンソース ソリューションの世界的な大手プロバイダーである Red Hat は本日、ベアメタル ...
9月9日、2020年度アリババDAMOアカデミーヤングオレンジ賞の受賞者が発表され、梁文華氏と他の1...
適切なポジショニングを見つけることは、よく言われるようになったようです。実際、それについて話す頻度が...
tmhhostは現在、ロサンゼルスデータセンター、cn2 gia、cuii(as9929)、日本ソフ...
この記事は主にKOLの背後にある美容市場を分析しています。この買い物狂いの背後にある謎は何でしょうか...
ますます成熟するディープラーニング技術は、魅力的なインテリジェンスの時代を先導しています。 8月31...
9月13日、北京国際ホテルでEngage 2018 SalesEasyユーザーカンファレンスが開催さ...
現在、友好的なリンクを交換する際に、リンクの品質を審査するための新しい基準が全員一致で追加されたよう...
9月21日、2018年杭州雲奇大会において、「アリババクラウドテクノロジー貧困緩和連盟」が正式に設立...
著者: Yu Leichun、PaaS 製品部門、中国モバイル クラウド機能センター前回の記事では、...