クラウドネイティブを語る上で「コンテナ化」は避けて通れない

クラウドネイティブを語る上で「コンテナ化」は避けて通れない

[[381346]]

この記事はWeChatの公開アカウント「Full-Stack Coder Portrait」から転載したもので、著者はXiaomajiaです。この記事を転載する場合は、Full-Stack Coder Portrait の公開アカウントにご連絡ください。

コンテナ

クラウドネイティブについて語るとき、「コンテナ」を避けることはできません。

『Cloud Native Patterns』という本の中で、著者の Cornelia Davis は次のように指摘しています。「コンテナーはクラウド ネイティブ アプリケーションの基礎です。」

Cloud Native Foundation は、クラウド ネイティブへの第一歩としてマイクロサービスのコンテナ化を推進しています。

マイクロサービスをコンテナ化することは考えやすく、プロセスもシンプルです。

コード、依存関係、ランタイムは、コンテナ イメージと呼ばれる単一のバイナリ ファイルにパッケージ化されます。画像はイメージリポジトリに保存されます。 Docker は Docker Hub イメージ リポジトリを公式に管理しています。

必要に応じて、イメージを、コンテナ ランタイム エンジンがインストールされている任意のコンピューターで実行できる実行可能なコンテナ インスタンスに変換し、オンデマンドで任意の数のコンテナ インスタンスをデプロイできます。

次の図は、単一のホスト上のコンテナで実行されている 3 つのマイクロサービスを示しています。

各コンテナは独自の依存関係とランタイムを維持しますが、それらは異なる場合があります。上の図では、同じホスト上で実行されている Product マイクロサービスの異なるバージョンがわかります。各コンテナは、基盤となるホスト オペレーティング システム、メモリ、プロセッサの一部を共有しますが、互いに分離されています。

コンテナ モデルは、「12 要素アプリ」の依存関係の原則に準拠しています。

要素 2 では、「各マイクロサービスは独自の依存関係を分離してパッケージ化し、それらを変更する (システム全体に影響を与えずに)」と規定されています。

コンテナーは Linux と Windows の両方のワークロードをサポートします。

コンテナベンダーは複数存在しますが、Dockerはクラウドネイティブアプリケーションのパッケージ化、展開、実行における事実上の標準となり、最大の市場シェアを誇り、ソフトウェアコンテナの開発を推進してきました。

コンテナの理由

  • コンテナは移植性を提供し、環境間で一貫した出力を保証します。すべてを 1 つのパッケージにカプセル化することで、マイクロサービスと依存関係をインフラストラクチャから分離できます。
  • Docker ランタイム エンジンがインストールされている任意の環境に同じコンテナーをデプロイできます。コンテナ化により、環境 (フレームワーク、ライブラリ ファイル、ランタイム) を事前に構成するための時間のオーバーヘッドが排除されます。
  • 基盤となるオペレーティング システムとホスト リソースを共有することにより、コンテナーは完全な仮想マシンよりもはるかに少ないスペースを占め、サイズが小さく高密度になり、単一のホスト上で複数のマイクロサービスを実行できます。

コンテナオーケストレーション

Docker API/ツールはイメージとコンテナを作成しますが、コンテナを管理するためのツールも必要です。

コンテナを管理するソフトウェアは「コンテナ オーケストレーター」と呼ばれ、大規模にコンテナを使用する場合に重要です。

コンテナ オーケストレーターは何をするのですか?

タスク説明する
スケジュールコンテナインスタンスを自動的に構成およびスケジュールする
親和性/反親和性コンテナを近くまたは遠くの場所にデプロイして可用性とパフォーマンスを向上させる
健康モニタリング障害を自動的に検出して修復する
フェイルオーバー障害が発生したインスタンスを正常なマシンに自動的に転送する
スケーリング予想される状態に合わせてコンテナを自動的に増減します
ネットワーキングコンテナにオーバーレイネットワークを提供する
サービス検出コンテナはお互いを発見する
ローリングアップグレードゼロダウンタイムの増分アップグレードとゼロダウンタイムの自動ロールバック

コンテナ オーケストレーターは、Twelve-Factor App の破棄可能性と同時実行性の原則に従います。

要因 9: 「サービス インスタンスは使い捨てである必要があり、これにより、高速起動 (スケーラビリティの提供) と正常なシャットダウンが可能になり、システムを正しい状態に保つことができる」ことを強調します。

要素 8: 「サービスは、利用可能な最も強力なマシン上の単一の大きなインスタンスをスケーリングするのではなく、多数の小さな同一プロセス (レプリカ) にわたってスケーリングされる」ことを強調します。

市場には複数のコンテナ オーケストレーターがありますが、Kubernetes は、コンテナを管理するためのポータブルでスケーラブルなオープン ソース プラットフォームであり、クラウド ネイティブの世界では事実上の標準となっています。

独自の k8s クラスターを構築し、k8s リソースを自分でプロビジョニングおよび管理することもできますが、これは複雑になる可能性があります。

Azure クラウドは、K8s をマネージド サービス (AKS) として提供します。 K8s クラスターをメンテナンスせずに、K8s 関数のみを使用する必要があります。

Azure Kubernetes Services については、第 2 章「クラウドネイティブ アプリケーションのスケーリング」で詳しく説明します。

参照

https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/定義

<<:  開始から1年で、健康コードの表示累計数は240億を超え、健康コードは日常の移動に重要な電子証明書となっている。

>>:  サンフォーインダストリー大学の公式ウェブサイトが正式に開設されました

推薦する

hostsolutions: 37ユーロ、ハイエンドサーバー、100%著作権フリー+苦情防止サーバー

ルーマニアのホスティング プロバイダーである hostsolutions (自社運営の 5,000 ...

H5 マルチチャネル アプリ プロモーションを選択するには?

現在、アプリプロモーションのチャネルはますます増えています。WAPサイトやサードパーティのアプリに加...

Fatcow - 40% オフ/年額 38 ドル/無料ドメイン名/無制限のウェブサイト構築/無制限のホスティング/ランプ環境

仮想ホスティング市場の常連として、fatcow は常に低価格プロモーションに注力してきました。他社が...

ソーシャル戦争:Weibo、Alibaba、Baiduが交代

ソーシャルマーケットの状況はますます濁り始めている。最近、一部のメディアは、Baiduが「Hands...

infinitevps-1g メモリ KVM/30g ハードディスク/1T トラフィック/ラスベガス/月額 9.74 ドル

2 月に設立された infinitevps は、ラスベガスとカンザスに 2 つのデータセンターを持つ...

最近のウェブサイトKのソリューションを分析する

みなさんこんにちは。私はハルビンバーチャルアンドリアルウェブサイトデザインです。最近、私のメインウェ...

ウェブサイトキーワードBaiduランキングの劇的な変動の分析

ウェブサイトや SEO に携わる友人は、Baidu が最近アルゴリズムを調整し、ウェブサイトのキーワ...

マルチクラウド環境のセキュリティを確保するには、まず問題があることを認識する必要がある

マルチクラウド環境は急速に変化しています。企業には、クラウド専用に構築され、デジタル変革戦略に沿った...

ramhost-5周年記念、50%オフ、3つのデータセンター

2009 年 1 月 19 日、一人の技術愛好家が独自にシステムを開発し、低価格の VPS サービス...

Baidu の新しい「新ホームページ」の 6 つの変更点の詳細

2011 年 9 月に Baidu が新しいホームページをリリースして以来、私は新しい Baidu ...

「斉魯地」で成長企業のビジネスイノベーションが開花

GDPは8兆円を超えており、間違いなく経済大国です。新旧の成長原動力の転換の過程において、彼らは活力...

インターネット マーケティング: アイボール効果とアイボール経済

本文に入る前に、私自身の執筆習慣に従って、無意識のうちにある出来事を紹介します。それは最近北京展覧セ...

Kubernetes オンライン学習: Cilium と eBPF

始める前に、少し話がそれますが。 Flannel CNI の最後のリリースから約 1 か月が経ちまし...

テンセントの内部文書が暴露される:WeChatは左へ、QQは右へ

この記事「WeChatは左へ、QQは右へ」は、かつてワイヤレス部門で働き、現在はモバイル電子商取引の...