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

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

[[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億を超え、健康コードは日常の移動に重要な電子証明書となっている。

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

推薦する

SEO には本当に解決策はないのでしょうか?

数年前に SEO をやっていた頃を振り返ってみると、そのギャップは非常に明白です。数年前は、ウェブサ...

IDC:中国の産業用クラウド市場規模は2020年上半期に16億ドルに達した

International Data Corporation (IDC) は最近、「中国産業クラウド...

ワンダ電子商取引が明らかに:O2Oモデルの採用はリソース統合の課題に直面

テンセントテクノロジーの王克新が1月5日に報じた。万達グループはかつて、電子商取引業界に参入するため...

Kubernetes (K8S) 管理、グラフィカル インターフェース、Web UI

1. k8s管理インターフェース主なものを3つ挙げます。公式 kubernetes-dashboar...

Google 再審査リクエストを送信する

Google の検索結果に自分のウェブサイトが表示されなくなったり、以前と比べてウェブサイトのランキ...

Dangdang.comが正式にTmallに進出:トラフィック増加へ

「永遠の敵など存在しない。あるのは永遠の利益だけだ。」おそらく、Dangdang.com CEO の...

サイトカラーマッチングがオンラインマーケティングに与える影響の解釈

ウェブサイトのカラーマッチングの重要性を無視するウェブマスターはほとんどいないと思います。ウェブサイ...

パブリック クラウドのパフォーマンス: 誰がトップに立つのか?

今日では、パブリック クラウド プロバイダーはどこにでもあります。実際、世界トップ 3 のクラウド ...

「2億6000万元の罰金」は通知書に過ぎず、執行文書ではないと報じられている。Qvodは控訴を検討するかもしれない。

Qvodがポルノであるかどうかについては結論が出ておらず、控訴を検討する可能性があると報じられている...

bluehost - ドメインの新規登録または移管に 5.99 ドル

Bluehost は EIG に買収されて以来大きな動きはなく、データセンターも以前ほど良くないよう...

テンセントクラウド小威「AIアシスタント」は複数のアプリケーションを備え、業界のアップグレードのための新しいAIドライバーです

9月9日から11日まで、「未来経済、デジタルファースト」をテーマにしたテンセントグローバルデジタルエ...

SEO 最適化: 価値の高い推奨外部リンクはどこから来るのでしょうか?

周知のとおり、検索エンジン最適化のプロセスにおいて、外部リンクがウェブサイトの重みに与える影響は明ら...

クラウド コンピューティングの大手企業が機密コンピューティングを計画しているのはなぜでしょうか?

ご存知のとおり、データ セキュリティの 3 つの柱は、保存中のデータ、転送中のデータ、使用中のデータ...

Baidu SEO ガイド - ユーザー エクスペリエンス分析

ウェブマスターは「Baidu Search Engine Optimization Guide」をよ...