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、サーバーレス、機械学習、メインフレームの移行...

推薦する

クラウドの弾力性:それが何であるか、なぜそれが重要なのか

クラウドの回復力とは、企業のテクノロジー サービスに発生する可能性のある中断を予測するプロセスです。...

ヤフー、メキシコで27億ドルの訴訟後、低価格で和解

網易科技ニュース、12月6日、ロイター通信によると、メキシコでヤフーに対し27億ドルの損害賠償を求め...

ビジネスに効果的なクラウド移行戦略の 6 つのメリット

今日のデータ主導のビジネス環境において、企業は激しい市場競争に直面しています。企業がビジネスを展開す...

フォーラム セキュリティの 5 つの側面 (php フォーラム)

今日は次に人気の高いアプリケーション BBS についてお話しします。これはみんながフォーラムと呼んで...

メインサイトが含まれる前にセカンダリドメイン名を拡張することは、自ら墓穴を掘ることです

インターネット上のドメイン名の価格は非常に安定しています。一般的に、.comドメイン名の登録価格は5...

ソフト記事の書き方のヒント:初心者でも一発で習得できる

最適化技術やウェブサイトの構築方法などについて話す友人は、間違いなく延々と話してくれるでしょうが、ソ...

launchvps: 米国東海岸のペンシルバニア州にある信頼性の高い KVM 仮想 VPS。大幅な割引あり

Launchvps は 2003 年の運営開始以来、全体的に非常に控えめな運営をしており、製品ライン...

Robots.txt が 15 日間インデックスをブロックした後のさまざまな検索エンジンのパフォーマンス

昨年10月に婦人服のサイトを作ったのですが、収益が芳しくなかったので、サイトを放棄してブログや日記を...

Baidu が Web ページをインデックスしたいのはなぜですか?

Baidu への組み込みは、すべての SEO 担当者とウェブマスターが懸念しているトピックです。特に...

ダブルイレブンに備える: 最高のイベントを企画するのに役立つ 4 つのケーススタディ

月収10万元の起業の夢を実現するミニプログラム起業支援プラン活動は一般的ですが、良い活動はまれです。...

ウェブマスターはブラックハットSEOをどう捉えるべきか

ブラックハットSEOといえば、誰もが知っているでしょう。ブラックハットSEOについて話しているのをよ...

cloudcone: 米国の安価な VPS、年間 49 ドル、3G メモリ/3 コア/190G ハードディスク/6T トラフィック/1Gbps 帯域幅

安価なVPS、特に米国の安価なVPSを購入したい場合は、Cloudconeが発売した新しいHDDハー...

racknerd: 米国製ハイエンドサーバー割引、高クロック速度 (4.4G)、マルチスレッド (96T)、大容量ハードディスク (7.6T NVMe\240T HDD)

racknerdは現在、AMD高周波シリーズ、AMD超マルチスレッドシリーズ、Intel超大型ハード...

#吃先锋# fortvps-超高構成 VPS/$6/6g メモリ/8 コア/200g ハードディスク/100T トラフィック

fortvps.com は今年設立された新しいホスティング会社です。公式ウェブサイトには会社の住所と...

Kubernetes 1.28 スケジューラ OOM の根本原因を探る

1. 問題の説明数年前、同僚が K8s スケジューラを 1.28.3 にアップグレードしたところ、メ...