Azure Kubernetes 構築シナリオ アプリケーションに関するワンストップ ディスカッション

Azure Kubernetes 構築シナリオ アプリケーションに関するワンストップ ディスカッション

私たちの業界は、Docker、Docker Compose、Kubernetes などのテクノロジーのおかげで、過去 10 年間で驚異的な進歩を遂げてきました。しかし、私たちは、自分たちが置かれている多様な環境の中でどのように発展していくかをまだ模索しているところです。

コンテナ化は開発と運用に大きな混乱をもたらしました。これまで、展開はテクノロジーに大きく依存しており、プロジェクトごとに大量の繰り返し不可能なエンジニアリング作業が必要になることが多かったです。

VPS にデプロイしていますか? VM イメージを配布していますか?静的実行可能ファイル?特定のインタープリターを必要とするスクリプトですか?これらの質問への回答に応じて、Capistrano、Puppet、シェル スクリプト、Ansible、deb または rpm パッケージ、cloud-init スクリプト、独自のクラウド テクノロジー、upstart、systemd、init、その他多くのテクノロジーを使用した可能性があります。

展開フェーズでは、システム管理と開発の境界が曖昧になり、DevOps の原則が生まれました。 DevOps が成熟し始めると、業界では 12 要素アプリケーション方法論などのアプリケーション開発のベスト プラクティスが開発されましたが、実装の詳細の多くは依然としてテクノロジに依存しています。

課題分析

この現象の本質を振り返ると、ビジネスの複雑さが増すにつれて、単一のアプリケーションがますます大きくなり、リソースに大きな課題が生じています。

課題1: リソース利用率が低い

煙突システムは、相互接続された要素の集合であり、非常に緊密に結び付けられているため、個々の要素を区別したり、アップグレードしたり、再構成したりすることはできません。

多くの企業ではストーブパイプ型の IT システムを採用していますが、これには次のような多くの欠点があります。

  • 重複した建設とメンテナンス
  • 高いインタラクションコスト
  • 事業の継続が困難
  • ビジネスの柔軟性が低い

課題2: アプリケーションアーキテクチャのスケーラビリティが低い

モノリシック アーキテクチャは、規模が比較的小さい場合に適しています。システムの規模が大きくなるにつれて、主に次のような問題がますます多く発生します。

  • 複雑さの増大;
  • 技術革新が妨げられる。
  • 需要に応じて拡張することが難しくなります。
  • 展開効率が低下します。

課題3: 開発サイクルが長い

コード ベースラインは巨大で、コンポーネントは密接に結合されており、責任が不明確であるため、小さな変更でもシステム全体に波及効果をもたらす可能性があります。

展開と拡張が遅い: 展開プロセスは繰り返し実行できず、エラー率が高くなります。自動エラスティックスケーリングはサポートされていません。

アップグレードが困難:時間枠が固定され、集中化された大規模な人的資源の中断によるサービス アップグレード。

アジャイル開発では、ソフトウェア プロジェクトの構築を複数のサブプロジェクトに分割し、各サブプロジェクトの結果をテストして統合された運用特性を持たせます。

つまり、大規模なプロジェクトを、相互に関連していながらも独立して実行できる複数の小さなプロジェクトに分割し、個別に完了させることです。このプロセス中、ソフトウェアは常に使用可能な状態になります。

ITアーキテクチャの進化

従来のアプリケーションのアップグレードが遅い、アーキテクチャが肥大化している、迅速に反復できない、障害を迅速に特定できない、問題を迅速に解決できないなどの問題を解決するために、クラウド ネイティブの概念が生まれました。

クラウド ネイティブは、アプリケーション開発の効率を向上させ、企業の組織構造を変更し、さらには文化レベルで企業の意思決定に直接影響を与えることさえあります。さらに、クラウド ネイティブは、クラウド上で実行されるアプリケーションが、俊敏性、信頼性、弾力性、スケーラビリティ、障害回復など、どのようなアーキテクチャ特性を持つべきかについてもわかりやすく説明しています。

業界シナリオ

あなたが新エネルギー車両会社のソリューション アーキテクトであり、あなたの会社が世界中の顧客に車両追跡ソリューションを提供しているとします。コンテナ化されたインスタンスを使用すると、新しい顧客リージョンに迅速に展開し、顧客のニーズに合わせてリソースをオンデマンドで拡張できます。コンテナ オーケストレーション プラットフォームを使用して、コンテナ化されたアプリケーションを簡単に開発、展開、管理したいと考えています。

大手衣料品ブランド小売業者の CIO が、すべてのサービスを Azure Kubernetes Service に移行することを決定したとします。毎月の Azure の請求額に影響するコンポーネントは何ですか?クラスターで使用される仮想マシンインスタンス、ストレージ、およびネットワーク リソースに対して料金を支払うことを検討してください。

あなたが大規模な多国籍研究開発および製造会社の CTO であると仮定すると、スマート製造業界での大量の呼び出しには永続的なストレージが必要であることは誰もが知っています。 AKS のどの機能を使用しますか?永続的なストレージを必要とするコンテナーの場合、AKS は静的および動的ストレージ ボリュームをサポートします。

道路状況を監視する輸送会社の R&D アーキテクトとして働いており、開発チームが AKS クラスター内の他のコンポーネントを使用してエンドツーエンドのテストを実行する必要があるとします。チームは依存関係を複製したりモックしたりせずにテストしたいと考えていました。どのサービスを選択すべきでしょうか? Azure Dev Spaces を使用すると、依存関係を複製したりモックしたりすることなく、コードを分離して開発し、他のコンポーネントとエンドツーエンドでテストできます。

需要開発

上記の新エネルギー車のビジネスシナリオを取り上げ、詳しく説明しましょう。ビジネス シナリオ ソリューションには、次の 3 つの主要なアプリケーションが含まれていると仮定します。

  • 追跡対象となる車両の地図と情報を含むメイン プログラム Web サイト。
  • 追跡車両から送信された情報を収集および処理するデータ処理サービス。
  • ウェブサイトから取得した追跡情報とユーザー情報を保存するために使用される MSSQL データベース。

伝統的な考え方

スケールアウト ソリューションで顧客のニーズを満たします。アプリケーションごとに新しい仮想マシン (VM) をデプロイし、その VM にアプリケーションをデプロイします。

ただし、その際には、各アプリケーションに適切なオペレーティング システム (OS) のバージョンと依存関係がインストールされ、構成されていることを確認する必要があります。

また、アプリケーションの適切なバージョンをインストールおよびアップグレードしていることを確認する必要があります。間違いがあった場合、影響を最小限に抑えてロールバックできることを確認する必要があります。

AKSアイデア

利点:

  • AKS 環境では、自動更新、自己修復、簡単なスケーリングなどの機能が有効になっています。
  • Kubernetes クラスター ホストは Azure によって無料で管理されます。
  • クラスター内のエージェント ノードを管理し、ノードが実行される VM に対してのみ料金を支払います。
  • クラスターは、Azure ポータルまたは Azure CLI を使用して作成できます。
  • クラスターを作成するときに、Resource Manager テンプレートを使用してクラスターを自動的に作成できます。
  • これらのテンプレートを使用すると、高度なネットワーク、Azure Active Directory (AD) 統合、監視などの機能を指定できます。
  • AKS を使用すると、カスタム Kubernetes クラスターに比べて複雑さや運用上のオーバーヘッドがなく、オープン ソース Kubernetes のメリットを享受できます。

ステップ 1: AKS クラスターを作成する

AKS クラスターを作成するときは、2 つのオプションから選択できます。

Azure ポータルまたは Azure CLI を使用できます。

どちらのオプションでも、クラスターに関する基本情報の設定が必要です。

例えば:

  • Kubernetes クラスター名。
  • インストールする Kubernetes のバージョン。
  • マスター ノードをパブリックにアクセス可能にするために使用される DNS プレフィックス。
  • 初期ノードプールのサイズ。
  • 初期のノード プールのサイズはデフォルトで 2 つのノードに設定されますが、実稼働環境では少なくとも 3 つのノードを使用することをお勧めします。

特に指定がない限り、作成ワークフローでは、スケーリング、認証、ネットワーク、および監視のデフォルト構成を持つ Kubernetes クラスターが作成されます。

AKS クラスターの作成には通常数分かかります。完了したら、AKS クラスターの既定のプロパティを変更できます。

クラスターには、Azure ポータルまたはコマンド ラインからアクセスして管理できます。

ステップ 2: ワークロードを開発して AKS にデプロイする

AKS は Docker イメージ形式をサポートしており、任意の開発環境を使用してワークロードを作成し、ワークロードをコンテナーとしてパッケージ化し、コンテナーを Kubernetes Pod としてデプロイします。

ここでは、標準の Kubernetes コマンドライン ツールまたは Azure CLI を使用してデプロイを管理します。

標準の Kubernetes ツールのサポートにより、現在のワークフローを変更することなく、既存の Kubernetes を AKS に移行できます。

AKS は、Helm、Draft、Visual Studio Code および Visual Studio Kubernetes ツールの Kubernetes 拡張機能など、一般的な開発および管理ツールもすべてサポートしています。

リソース監視 - Azure Monitor

Azure Monitor は、クラウドおよびオンプレミス環境からテレメトリ データを収集、分析し、応答するためのサービスです。

IT 運用、DevOps、開発チームは、Azure Monitor を使用して、アプリケーションとサービスの可用性とパフォーマンスを最大化します。

Azure Monitor の主な機能は次のとおりです。

Azure Monitor は、アプリケーション、インフラストラクチャ、Azure プラットフォーム、および統合するカスタム ソースから、スタック内のすべてのレイヤーにわたってパフォーマンスと可用性のテレメトリを収集できます。

  • 数値の時系列値用の Azure Monitor メトリックと、ログ データを保存するための Azure Monitor ログ。
  • Azure リソースの Azure Monitor メトリックは自動的に収集され、保存されます。
  • Azure リソースを監視およびトラブルシューティングします。利用可能なインサイトには、VM インサイト、アプリケーション インサイト、コンテナ インサイトが含まれます。
  • ワークブックとダッシュボードを通じてデータを視覚化し、カスタム チャートと分析を使用してデータを分析します。
  • Azure Monitor には監視データを視覚化する機能が備わっており、他の Azure サービスを使用してこのデータをさまざまな対象者に公開できます。 Azure ポータルでさまざまな種類のデータを 1 つのペインにまとめることができます。

監視オプション

メトリック - 特定の時点におけるシステムの側面を表す数値。

ログ - 分析のためにログ データを収集します。

視覚化 - さまざまな種類のデータを Azure ポータルの 1 つのペインに統合します。ポータルでのデータ分析と豊富なビジュアルレポートの作成に使用されます。

  • メトリック - 特定の時点におけるシステムの側面を説明するために使用されます。軽量なデータであり、ほぼリアルタイムのシナリオをサポートできます。
  • ログ - クエリを使用して Azure Monitor によって収集されたログ データを分析し、収集されたデータをすばやく取得、結合、分析します。
  • 視覚化 - Azure ダッシュボードとワークブックの形式で利用できる主な視覚化は 2 つあります。これら 2 つの機能を使用すると、管理者やその他の関係者に視覚的なレポートを提供できるため、監視対象データを簡単に使用できるようになります。

Azure Dev Spaces について

価値ポイント:

  • 各チームメンバーのローカル開発コンピューターのセットアップを最小限に抑えます。
  • Visual Studio または Visual Studio Code を使用して、コードをすばやく直接反復およびデバッグします。
  • 開発から本番まで使用できる Docker および Kubernetes の構成コード アセットを生成します。
  • コードを独立して開発し、依存関係を複製またはモック化することなく、他のコンポーネントとの統合テストを実行します。

展開センター:

この構成された DevOps パイプラインを使用して、AKS Kubernetes クラスターの (CI) パイプラインと (CD) パイプラインを設定できます。

Azure DevOps プロジェクトを使用すると、次のことが可能になります。

  • AKS クラスターなどの Azure リソースを自動的に作成します。
  • AKS クラスターを監視するための Azure Application Insights リソースを作成します。
  • Azure Monitor for containers を有効にして、AKS クラスター上のコンテナー ワークロードのパフォーマンスを監視します。
  • より豊富な DevOps 機能を追加します。たとえば、デプロイ前に承認を追加したり、追加の Azure リソースをプロビジョニングしたり、スクリプトを実行したり、ワークロードをアップグレードしたりできます。

追加: Azure Kubernetes Service を使用する場合

上記の機能はすべて、クラスターの作成後、または次のデプロイメント後に構成できます。

<<:  Kafka のアーキテクチャと動作原理の図解

>>:  Amazon Invent 2021 クラウド テクノロジーの新たな成果: チップ、5G、サーバーレス、機械学習、メインフレームの移行...

推薦する

Hosteons Salt Lake City の「高性能」 VPS サービス「Ryzen 7950X ベースの HYBRID 専用サーバー」のレビュー

Hosteonsは米国ソルトレイクシティに多数の筐体を設置しています。その中でも、HYBRID De...

hosthink-格安トルコ VPS/KVM/$6.95/512M メモリ/20g ハードディスク/1T トラフィック

トルコの VPS やサーバーは比較的珍しいですよね?少なくとも珍しいですね! 2010 年に設立され...

価値が高さを決める - エッジコンピューティングの応用と価値

モノのインターネットは業界で活発に議論されているトピックです。多くの企業が、スマートデバイスやセンサ...

売り手のクイックルック: SEO をうまく行うための 5 つのヒント

流行中、世界中でインターネットの利用が大幅に増加しました。モバイルトラフィックは、2019年第3四半...

ブランドプロモーションと SEO: どちらが優れているのでしょうか?

「あなたの靴はとても素敵ですね。ナイキですか、それともアディダスですか?どこで買ったのですか?iPh...

yalo-$5/1g メモリ/200g ハードディスク/10T トラフィック/ノースカロライナ

yaloがホストキャットに登場するのは2回目。昨年設立され、openvz仮想化をベースにしている。最...

物理マシン上でカオス実験を実行するにはどうすればよいでしょうか?

[[426176]] [51CTO.com クイック翻訳] Chaos Mesh® は、Kubern...

Baidu の Web ページ品質に関するホワイト ペーパーのサブテキストを解釈する

少し前に、Baidu のトラフィックのシェアが大幅に減少し、360 のトラフィックのシェアが大幅に増...

elkupi - 苦情防止: ドメイン名 + VPS + サーバー、無制限のコンテンツ

elkupi は、長年存在している特別なホスティング プロバイダーであり、欧米諸国では法律で許可され...

ドメイン名にキーワードが含まれていることは、ウェブサイトのランキングに関係があるのでしょうか?

ドメイン名にキーワードが含まれていると、ウェブサイトのランキングに有利になります。ドメイン名にキーワ...

おすすめ検索と知識検索、どちらを選びますか?

インターネット上の紛争は、ウェブサイト間だけでなく、ウェブサイト自体の製品間でも発生します。検索エン...

クラウド コンピューティングの基礎: CPU 仮想化

仮想化技術の分類には、主にサーバー仮想化、ストレージ仮想化、ネットワーク仮想化、アプリケーション仮想...

困難な時代におけるオンラインストア運営に欠けているものは何でしょうか?

ますます多くの人々が電子商取引やオンラインストアに投資したいと考えていますが、成熟した電子商取引業者...

この記事を読んだ後でも、JVM を理解していると言えるでしょうか?

導入[[256737]]物理メモリが 8G あり、主に Java サービスを実行している一部のサーバ...

クラウドネイティブなビジネス変革に向けた9つのステップ

クラウド コンピューティングは IT フレームワークの不可欠な部分になりました。平均して、企業のワー...