コンテナ技術の実装とクラウドネイティブの概念

Alibaba CloudのシニアテクニカルエキスパートであるYiliが、Alibaba Cloud Container Serviceによるコンテナ技術導入のベストプラクティスを紹介します。

![スクリーンショット 2021-05-18 11.23.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/044a143a-904f-6876-2a44-d218170ce100.png)


はじめに：コンテナテクノロジーの急速な発展と広範な応用により、クラウドネイティブテクノロジーはIT開発の未来像となりつつあります。コンテナテクノロジーを導入した最初の中国企業として、Alibaba Cloudはテクノロジーと製品の両面で大きな成果を上げています。Alibaba CloudのシニアテクニカルエキスパートであるYili氏が、[Alibaba Cloud Container Service](https://www.alibabacloud.com/product/kubernetes?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)によるコンテナテクノロジー導入のベストプラクティスを紹介します。この記事は、コンテナ技術やクラウドネイティブの概念をより深く理解し、クラウドアーキテクチャを適切に設計し、クラウドを最大限に活用するためのものです。

>エコノミスト誌に掲載された引用文には、「コンテナがなければ、グローバリゼーションは存在しない」とあります。

#コンテナサービスとは？
経済のグローバル化は、現代の輸送システムの上に成り立っており、その中核をなすのがコンテナです。コンテナの出現により、物流の標準化・自動化が可能となり、輸送コストが大幅に削減され、グローバルなサプライチェーンの統合が可能となりました。したがって、コンテナなくしてグローバリゼーションはあり得ないのです。

コンテナの標準化・モジュール化の概念は、建設業界のサプライチェーン改革を推進しています。コロナウイルス（COVID-19）のパンデミックの後、中国の武漢に数千のベッドを収容できる専門病院である胡泉山病院が10日間で建設されました。この病院はパンデミックとの戦いにおいて、特に初期に重要な役割を果たしました。病院は、プレハブのコンテナハウスで組み立てられ、モジュール化された部屋には、エアコン、消毒ステーション、給水、排水などがあらかじめ装備されており、病院の建設スピードを大幅に向上させることが出来ました。

###コンテナの一般的な定義

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/11390ed1-967d-2e9c-5236-1487d336b404.png)



ソフトウェアコンテナ技術は、ソフトウェアのサプライチェーン全体をも再構築します。OSの軽量仮想化技術であるコンテナは、従来の物理マシンや仮想化技術とは異なります。このように考えてみてください。

従来の物理マシンは、一戸建ての家のようなものです。

- 家族は他人に邪魔されることなく、快適に暮らしています。
- アプリケーションは物理マシンに専用にインストールされ、優れた性能を発揮します。しかし、その分コストがかかり、納期も長く、リソースの利用率も低くなります。

仮想マシンはタウンハウスのようなものです。

- それぞれの家は独立しており、十分に隔離されています。すべての家は、水道、電気、基礎を共有しています。コストは下がりますが、容積率と配送速度は上がります。
-仮想化技術では、仮想マシン内のアプリケーションを分離し、リソースの利用率を効果的に向上させることができます。仮想マシン内のアプリケーションは、仮想マシンを納品した後に設定・インストールする必要があります。そのため、配信速度は十分ではありません。


コンテナは、コンテナハウスのようなものです。

- コンテナハウスはデコレーションでモジュール化されています。すぐに作れて、必要なときにいつでも移動できます。2022年にカタールで開催されるFIFAワールドカップのスタジアムは、この方法で設計されます。このスタジアムは、プレハブのコンテナハウスを組み立て、4万人を収容する予定です。各コンテナハウスは中国で製造され、観客席や洗面所、バーなどがあらかじめ装備されています。そして、そのコンテナハウスをカタールで組み立てます。この方法により、建設期間が3年短縮され、イベント終了後は解体して別の場所に移すことができます。
- コンテナのリソースは、OSのcgroupsやnamespacesなどの技術を用いて隔離されています。コンテナはオペレーティングシステムのカーネルを共有しており、これは軽量でリソースを必要としないプロセスであり、数秒で起動することができます。これにより、OS上でのアプリケーションの展開密度と弾力性が大幅に向上します。コンテナイメージは、アプリケーションと、それに依存するシステムコンポーネントおよび構成を、標準化された自己完結型のフォーマットでパックしたものです。コンテナイメージを介してアプリケーションを配布・配信すると、アプリケーションはアウトオブボックス（OOTB）となり、異なる環境でも一貫して実行することができます。

###コンテナの価値
ここ数年、IT業界ではコンテナ技術が広く使われています。
その最も重要な価値は：

**アジリティ**

スピードは非常に重要です。デジタルトランスフォーメーションの時代において、各企業は新たなビジネスモードの影響や数々の不確実性に直面しています。企業が将来的に成功するかどうかは、現在の大規模な規模や過去の成功した戦略ではなく、継続的なイノベーション能力にかかっています。コンテナ技術は、企業のITアーキテクチャの俊敏性を向上させることで、企業のビジネスの俊敏性を高め、ビジネスイノベーションを加速させます。例えば、COVID-19のパンデミックの際には、教育、ビデオ、公衆衛生などのオンラインビジネスが爆発的に成長しました。コンテナ技術は、ビジネスの急成長のチャンスをつかむのに役立ちます。産業界の統計によると、コンテナ技術は配送効率を3〜10倍に高め、企業は迅速な反復と低コストの試行錯誤を行うことができます。



**Elasticity**

インターネット時代において、企業のITシステムは、eコマースのプロモーションや緊急事態など、予測可能なトラフィックの増加と予期せぬトラフィックの増加の両方に遭遇することがよくあります。コンテナ技術は、クラウドコンピューティングの弾力性を最大限に発揮し、導入密度と弾力性を高めることで、コンピューティングコストを削減することができます。例えば、COVID-19パンデミックの際にオンライントラフィックが急激に増加した後、コンテナ技術を使ってオンライン教育の拡大圧力を緩和し、何十万人もの教師のオンライン教育と何百万人もの学生のオンライン学習をサポートすることができます。

**Portability**

コンテナ技術は、クラウドコンピューティングの標準化を促進しました。コンテナは、アプリケーションの配布および配信の標準となっており、アプリケーションを基本的なランタイム環境から切り離すことができます。また、Kubernetesは、リソースのスケジューリングとオーケストレーションの標準となっています。また、Kubernetesは、基盤となるアーキテクチャの違いを遮蔽し、異なるインフラ上でアプリケーションをスムーズに実行することができます。CNCF（Cloud-Native Computing Foundation）は、異なるKubernetesの実装との互換性を確保するために、Certified Kubernetes Conformance Programを提供しています。コンテナ技術を利用することで、クラウド時代のアプリケーションインフラの構築が容易になります。

**Kubernetes:クラウドネイティブ時代のインフラ**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/7b83caee-47d1-2d89-45d9-49235d3b8ad0.png)


Kubernetesは、クラウドアプリケーションのOSとなっています。ステートレスWebアプリケーション、トランザクションアプリケーション（データベースやメッセージ指向ミドルウェア）、データベースのインテリジェントアプリケーションなど、Kubernetes上で動作するアプリケーションが増えています。アリババエコノミーでは、コンテナ技術をベースとしたクラウドへの包括的なクラウドネイティブな移行も実施しています。

#Alibaba Cloud Container Serviceの紹介

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/7ce4fba6-b9b0-63ad-6427-4ced22261d2d.png)


Alibaba Cloud Container Service製品は、Alibaba Cloud、エッジコンピューティング、およびApsara Stack環境におけるエンタープライズコンテナプラットフォームを提供します。[Alibaba Cloud Container Service製品の中核となるのは、Alibaba Cloud Container Service for Kubernetes（ACK)](https://www.alibabacloud.com/product/kubernetes?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)およびServerless Kubernetes（ASK）です。これらの製品は、コンピューティング、ストレージ、ネットワーク、セキュリティなど、一連のAlibaba Cloudインフラストラクチャ機能を基盤として構築されています。さらに、標準化されたAPI、最適化された機能、強化されたユーザーエクスペリエンスを提供しています。ACKは、Certified Kubernetes Conformance Programの認定を受けており、セキュリティガバナンス、エンドツーエンドの観測性、マルチクラウド、ハイブリッドクラウドなど、企業が必要とする一連のコア機能を提供します。

Alibaba Cloud [Container Registry](https://www.alibabacloud.com/product/container-registry?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)（ACR）は、企業のクラウドネイティブアプリケーションの資産管理の中核となるものです。DockerイメージやHelmチャートなどのアプリケーション資産を管理することができ、継続的インテグレーションおよび継続的デリバリ（CI/CD）ツールと統合して、完全なDevSecOpsプロセスを実現することができます。

[Alibaba Cloud Service Mesh](https://www.alibabacloud.com/blog/what-is-alibaba-cloud-service-mesh-asm_596277?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)（ASM）は、マイクロサービス指向のアプリケーションのトラフィックを完全に管理するためのプラットフォームです。Istioとの互換性があり、複数のKubernetesクラスターの統一的なトラフィック管理をサポートし、コンテナや仮想マシン内のアプリケーションサービスに一貫した通信、セキュリティ、観測性を提供します。

###Managed Kubernetes Clusters

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/78cedba1-aca3-af45-bfbc-011a61b7e125.png)



ここでは、管理するKubernetesクラスタのトポロジーについて説明します。ACKが管理するKubernetesクラスターは、Kubernetesアーキテクチャに基づいています。Kubernetesクラスタのマスターノードは、Virtual Private Cloud（VPC）ネットワークのコントロールプレーン（Kubernetesクラスタ）上で動作します。

ACKは、デフォルトの高可用性アーキテクチャ設計を採用しており、3つのetdレプリカがそれぞれ3つの異なるゾーンで実行されます。また、スケーラビリティのベストプラクティスに従って、2つのetdが用意されています。1つのetcdは設定情報を、もう1つはシステムイベントを保存します。これにより、etcdの可用性とスケーラビリティが向上します。API ServerやSchedulerなどのKubernetesクラスターのマスターノードは、複数のレプリカを配置し、2つの異なるゾーンで実行されます。マスターノードはワークロードに応じて弾力的に拡張することができ、ワーカーノードはサーバーロードバランサー（SLB）を介してAPIサーバーにアクセスします。この設計により、ゾーンに障害が発生した場合でも、Kubernetesクラスターが正常に動作することが保証されます。

ワーカーノードは、VPCネットワーク上で動作します。ノードを異なるゾーンで実行し、アプリケーションのゾーンベースのアンチアフィニティ機能を使用して、アプリケーションの高可用性を確保することができます。


#コンテナ技術導入のベストプラクティス
###柔軟で豊富な弾力性のある機能
弾力性は、クラウドの中核となる機能です。Double 11 Global Shopping FestivalやCOVID-19パンデミック後のオンライン教育や共同オフィスワークのためのトラフィックの急成長など、典型的なトラフィックパルスのシナリオをサポートできるのは、クラウドが提供する強固なエラスティックコンピューティングパワーだけです。Kubernetesは、クラウドの弾力性を最大限に引き出すことができます。

ACKは、リソース層とアプリケーション層で様々な弾力性ポリシーを提供します。リソース層では、クラスターオートスケーラー（CA）を用いてノードを増減させる方法が現在の主流となっています。CAは、リソース不足でポッドのスケジューリングに失敗した場合、アプリケーションのワークロードに応じて自動的にノードプールにノードを作成します。

[Elastic Container Instance（ECI）](https://www.alibabacloud.com/products/elastic-container-instance?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)は、軽量な仮想マシンをベースにしたサーバーレスのコンテナランタイム環境を提供します。ACKのインスタンスグループ上でアプリケーションをスケジュールして実行することができます。これは、オフラインのビッグデータタスク、CI/CDジョブ、およびバーストビジネスのスケーリングに適しています。Weiboアプリでは、500個のECIポッドを30秒でスケールアウトさせることができ、バーストイベントに容易に対応することができます。

アプリケーション層では、KubernetesはHorizontal Pod Autoscaler（HPA）とVertical Pod Autoscaler（VPA）を提供します。Alibaba Cloudは、より多くの弾力性メトリクスをサポートするメトリクス-アダプターを提供します。例えば、入口の1秒あたりのクエリ数（QPS）に基づいて、アプリケーションのポッド数を調整することができます。さらに、多くのアプリケーションのワークロードのリソースプロファイルは周期的です。例えば、証券業界のビジネスピークは、平日の株式市場の開場時間です。ピーク時に必要なリソースは、バレー時の20倍になります。この問題を解決するために、Alibaba Cloud Container Serviceはスケジュールスケーリングコンポーネントを提供しています。開発者はスケジュールスケーリングポリシーを定義して、事前にリソースをスケールアウトし、谷間で定期的にリソースを再利用することができます。これにより、システムの安定性とリソースコストのバランスをうまく取ることができます。

###Serverless Kubernetes
Kubernetesは強力な機能と柔軟性を備えていますが、Kubernetesの本番クラスタを運用・保守するのは非常に困難です。マネージドなKubernetesサービスを利用したとしても、ワーカーノードのリソースプールを保持し、OSのアップグレードやセキュリティパッチのインストールなど、ワーカーノードの日常的なメンテナンスを行う必要があります。また、リソースの使用状況に応じて、リソース層のキャパシティを計画する必要があります。

Kubernetesクラスターの複雑なO&Mに対応するために、Alibaba CloudはASKを発表しました。Kubernetesアプリケーションと互換性のあるASKは、KubernetesのO&Mをクラウド基盤上で行うことを可能にします。これにより、開発者はアプリケーションに集中することができます。

- ノードを予約、維持、管理する必要はありません。
- すべてのリソースはオンデマンドで作成され、インスタンスグループ上で実行されます。アプリケーションが消費するリソースに応じて料金を支払う必要があります。
- キャパシティプランニングは必要ありません。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/382e091b-a456-c648-5f77-2db07b29dbf7.png)



サーバーレス・コンテナについては、2つの技術的ソリューションを提供しています。「ECI上のACK」と「ASK」です。

###ECI上のACK
ACKクラスターは、大規模なインターネット企業や伝統的な企業の要求を満たす、機能的で柔軟なクラスターです。ACKクラスターでは、異なるアプリケーションやジョブを実行することができます。ACKクラスターは、企業のSRE（Site Reliability Engineering）チームを対象としており、Kubernetesのカスタマイズ開発や柔軟な制御を行うことができます。

ACKクラスターは、以下のコンテナランタイム技術をサポートしています。

- RunCコンテナ（Dockerコンテナとも呼ばれる）は、カーネルをホストのLinuxシステムと共有するため、シンプルで効率的だが、隔離性が弱い。カーネルの脆弱性を利用してマルウェアが脱出すると、ホスト上の他のアプリケーションが影響を受ける可能性があります。


- アイソレーション性能を向上させるために、Alibaba CloudチームはAnt Financialチームと協力してkangaroo sandboxed container技術を導入しました。アリババクラウドは、安全なRunVコンテナを提供する業界初のパブリッククラウドコンテナサービスプロバイダーです。RunCコンテナとは異なり、各RunVコンテナは独立したカーネルを持っています。あるコンテナのカーネルが攻撃されても、他のRunVコンテナは影響を受けません。この技術は、信頼されていないサードパーティのアプリケーションを実行したり、マルチテナンシーのシナリオで隔離性を高めるために使用できます。さらに、RunCとRunVの両コンテナは、リソースのオーバープロビジョニングをサポートしています。安定性とコストのバランスを考慮して、リソースを柔軟にコントロールすることができます。

- ACKは、インスタンスグループのスケジューリングをサポートします。ECIは、軽量な仮想マシンをベースにした安全で隔離されたコンテナランタイム環境を実装し、Alibaba Cloudのエラスティックコンピューティングリソースプールのコンピューティングパワーを最大限に活用することで、エラスティックコンピューティングのコスト、スケール、効率に対するユーザーの要求を満たします。ECIはコンテナシナリオに完全に最適化されています。オペレーティングシステムテーラーリング、ENI（Elastic Network Interface）パススルー、ストレージの直接マウントなどの技術により、インスタンスグループ上のアプリケーションは、仮想マシン上のコンテナランタイム環境と同等以上の実行効率を実現します。ECIはリソースのオーバープロビジョニングをサポートしていません。しかし、スポットインスタンスが提供されるため、コストとコンピューティング効率のバランスをとることができます。
ECIは、以下のシナリオのKubernetesクラスターに適用されます。

- オンラインビジネスのバーストトラフィック:日常的なトラフィックに対しては、静的なリソースプールを利用できます。インスタンスグループを使用してバーストトラフィックを処理することができます。
- Batch computing tasks:一時的または定期的な計算タスクでは、リソースの規模やリソースの予約を予測することは容易ではなく、無駄が生じる可能性があります。このような場合には、ECIを使用して大量のデータ処理タスクを処理することができます。
- Isolation: 一部のビジネスアプリケーションでは、サードパーティの信頼されないアプリケーションを実行する必要があります。例えば、アップロードされた人工知能（AI）のアルゴリズムモデルをECIのセキュリティサンドボックスで隔離し、モデルを安全に実行できるようにします。

###ASK
ASKは、独立系ソフトウェアベンダー（ISV）や大企業の部門、中小企業向けにカスタマイズされたコンテナです。Kubernetesの管理・O&M機能を使わずにKubernetesアプリケーションを作成・展開できるため、管理が大幅に簡素化され、アプリケーションホスティング、CI/CD、AI、データコンピューティングなどのシナリオに適しています。例えば、ASKやGPU（Graphics Processing Unit）のインスタンス群を利用して、O&MフリーのAIプラットフォームを構築することができます。また、オンデマンドで機械学習環境を構築することもできます。いずれの場合も、全体のアーキテクチャは非常にシンプルで効率的です。

###クラウドネイティブで弾力性のある、可用性の高いアーキテクチャ
クラウドネイティブな分散型アプリケーションアーキテクチャは、高可用性、オートスケーリング、フォールトトレランス、容易な管理、高い観測性、標準化、ポータビリティなどの特徴を備えています。Alibaba Cloudでは、以下のようなクラウドネイティブアプリケーションのリファレンスアーキテクチャを構築できます。

- クラウドネイティブなインフラストラクチャー: X-dragon HypervisorをベースにしたECS（Elastic Compute Service）エンタープライズインスタンス
- クラウドネイティブなアプリケーションプラットフォーム :ACK
- クラウドネイティブなデータベース: Apsara PolarDB

エンドツーエンドのElastic Application Architecture:フロントエンドアプリケーションやビジネスロジックをコンテナ化し、Kubernetesクラスタに展開し、アプリケーションの負荷に応じてHPAを構成することができます。

バックエンドのデータレイヤーでは、Apsara PolarDBなどのクラウドネイティブデータベースを使用できます。Apsara PolarDBは、ストレージとコンピューティングの分離アーキテクチャを採用し、スケールアウトに対応しています。同じ仕様であれば、Apsara PolarDBのパフォーマンスはMySQLデータベースの7倍、コストはMySQLデータベースの半分となっています。



体系的な高可用性設計:

- ゾーンベースのアンチアフィニティ機能を利用して、アプリケーションのレプリカインスタンスを異なるゾーンに配置することができます。
- SLBを通じて異なるゾーンのアプリケーションポータルにアクセスできます。
- Apsara PolarDBは、デフォルトでクロスゾーン高可用性機能を提供します。

これは、システム全体のゾーンベースの可用性を確保し、1つの故障したゾーンを許容することができます。

Application High Availability Service（AHAS）は、アーキテクチャ認識機能を提供し、システムのトポロジーを可視化することができます。さらに、AHASはアプリケーション検査機能を提供し、アプリケーションレプリカの数が可用性要件を満たしているかどうか、ApsaraDB for RDS（RDS）インスタンスでマルチゾーンディザスタリカバリが有効になっているかどうかなど、可用性に関する問題を検出します。

###多次元の観測性

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/64b6b015-ff23-bf8c-9ce4-871d02d02daa.png)


大規模な分散システムでは、インフラ（ネットワーク、計算ノード、OS）やアプリケーションに様々な安定性や性能の問題が発生する可能性があります。Observabilityは、分散システムの状態を把握し、それに応じた意思決定を行うのに役立ちます。また、オートスケーリングや自動化されたO&Mの基礎となります。

一般的に、オブザーバビリティはいくつかの重要な側面から構成されています。

**ロギング(イベントストリーム)**

Log Service（SLS）をベースにした完全なログソリューションを提供し、アプリケーションログの収集と処理、ActionTrailやKubernetesのイベントセンターなどの機能を提供します。

**モニタリング指標**

Observabilityは、ECS、ストレージ、ネットワーク、CloudMonitorなどのインフラストラクチャサービスを包括的に監視します。Javaアプリケーションのヒープメモリ使用量など、ビジネスアプリケーションのパフォーマンス指標については、Application Real-Time Monitoring Service（ARMS）により、ビジネスコードを変更することなく、JavaおよびPHPアプリケーションの包括的なパフォーマンス監視が可能です。また、Kubernetesアプリケーションやコンポーネントに対しては、ARMSがマネージドPrometheusサービス、様々なOOTBプリセットモニタリングダッシュボード、サードパーティとの統合を容易にするAPIを提供します。

**エンド・ツー・エンドのトレース**

Tracing Analysisは、分散アプリケーションのトレース統計とトポロジー解析のための包括的なツールを開発者に提供します。開発者は、分散アプリケーションのパフォーマンスのボトルネックを迅速に見つけてトラブルシューティングし、マイクロサービス指向のアプリケーションのパフォーマンスと安定性を向上させることができます。

**DevOpsからDevSecOpsへ**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/4b0a65b4-b5a6-abfe-3423-b9cc6bd9503b.png)


セキュリティは、コンテナ技術に関する企業の最大の関心事です。コンテナ・プラットフォームのセキュリティを体系的に改善するためには、包括的なセキュリティ保護を行う必要があります。まず、DevOpsをDevSecOpsにアップグレードする必要があります。セキュリティの概念をソフトウェアのライフサイクル全体に統合し、開発とデリバリーのフェーズでセキュリティ保護を実行する必要性を強調しています。

ACR Enterprise Editionは、完全なセキュリティソフトウェアデリバリーチェーンを提供します。画像をアップロードした後、ACRは自動的に画像をスキャンして共通の脆弱性と暴露（CVE）を検出します。ACKでは、自動化されたセキュリティポリシーを設定することができます。例えば、スキャンされ、本番環境での起動要件を満たしたイメージのみをリリースすることができます。このようにして、ソフトウェア配信プロセス全体が観察可能、追跡可能、そしてポリシーに基づいて行われます。これにより、セキュリティが確保され、配信効率が向上します。

ランタイム中のアプリケーションは、CVEやウイルス攻撃など多くのリスクに直面します。Alibaba Cloud Security Centerは、ランタイム中のアプリケーションのセキュリティ監視と保護を行います。

Alibaba Cloud Security Centerは、コンテナアプリケーションのプロセスやネットワークを監視し、アプリケーションの例外や脆弱性をリアルタイムで検出することができます。Alibaba Cloud Security Centerが問題を検出すると、EメールまたはSMSで通知し、自動的に問題を切り分けて修正します。例えば、マイニングワームウイルスは、お客様の設定ミスを悪用してコンテナクラスターに攻撃を仕掛けます。この場合、Alibaba Cloud Security Centerを使用すると、ウイルスの場所を簡単に特定して除去することができます。

###ASM

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/45bbd42d-e943-b8ee-09c1-60403edb4093.png)


2020年2月には、業界初のフルマネージドでIstioに対応したASMをリリースしました。ASMのコントロールプレーンコンポーネントはAlibaba Cloudによって管理され、データプレーン上のユーザークラスターから独立しています。ホスティングモードにより、Istioサービスメッシュの展開と管理が大幅に簡素化され、サービスメッシュのライフサイクルがKubernetesクラスターから切り離されます。これにより、アーキテクチャがよりシンプルかつ柔軟になり、システムの安定性と拡張性が向上します。ASMはAlibaba Cloud observability serviceとIstioベースのSLSを統合しており、サービスメッシュ内のアプリケーションをより効率的に管理することができます。

データプレーンでは、ASMは、ACK Kubernetesクラスター、ASKクラスター、ECS仮想マシンなど、さまざまなコンピューティング環境をサポートします。Cloud Enterprise Network（CEN）とASMは、複数のリージョンやVPCネットワークにまたがるKubernetesクラスター間のサービスメッシュを実装することができます。これにより、ASMは複数のリージョンにある大規模な分散アプリケーションのトラフィック管理と段階的なリリースを実装することができます。ASMは近々、マルチクラウドおよびハイブリッドクラウドをサポートする予定です。



###ハイブリッドクラウド:企業のクラウド移行の新常識
クラウドへの移行は避けられないものになっています。しかし、企業のデータ主権や一部の企業のセキュリティ・プライバシーの観点から、企業はハイブリッド・クラウド・アーキテクチャを利用することはできても、ビジネスを直接クラウドに移行することはできません。Gartner社は、81％の企業がマルチクラウドまたはハイブリッドクラウドを採用すると予測しています。ハイブリッドクラウドアーキテクチャは、企業のクラウド移行の新たな規範となっています。

従来のハイブリッドクラウドアーキテクチャは、クラウドのリソースを抽象化して管理するように設計されています。しかし、異なるクラウド環境間のインフラやセキュリティ・アーキテクチャの能力の違いにより、企業のITアーキテクチャとO&Mシステムが分離してしまうことがあります。これにより、ハイブリッド・クラウドの導入が複雑になり、O&Mコストが増大します。

クラウドネイティブ時代には、Kubernetesのようなテクノロジーがインフラの違いを遮蔽し、ハイブリッドクラウド環境におけるリソースのスケジューリングやアプリケーションのライフサイクル管理を集中的に行うことができます。アプリケーションセントリックなハイブリッドクラウドアーキテクチャ2.0の登場です。

以下にいくつかの典型的なシナリオを挙げます。

- パブリッククラウドのエラスティックコンピューティングパワーを利用して、バーストトラフィックに対処:オンプレミスのデータセンターでは、日々のトラフィックを処理します。トラフィックが急増した際には、オンプレミスのデータセンターがクラウドのリソースをスケールアウトして、バーストトラフィックに対応します。

- パブリッククラウドを利用して、低コストのクラウド災害復旧センターを構築:オフプレミスとオンプレミスのシステムが利用可能であり、オフプレミスのシステムはホットスタンバイに使用されます。オンプレミスのデータセンターで障害が発生した場合、ビジネストラフィックを迅速にクラウドに移行することができます。

- アクティブな地理的冗長性アプリケーションアーキテクチャの構築:ユニット化された業務システムをクラウド上の複数の地域に展開し、統一されたサービスガバナンス機能を提供します。ある地域で障害が発生した場合、ビジネストラフィックは別の地域に移行され、ビジネスの継続性が確保されます。

ACK、Alibaba Cloudのハイブリッドクラウドネットワーク、ストレージゲートウェイ、データベースレプリケーション機能をベースに、企業の新しいハイブリッドクラウドITアーキテクチャの構築を支援します。

**ハイブリッドクラウドアーキテクチャ 2.0**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/8aa43ae3-2b19-fa2c-713c-380d04bd8e38.png)


ACKは、クラスタの集中管理機能を提供します。ACKは、Alibaba CloudのKubernetesクラスターに加え、オンプレミスのインターネットデータセンター（IDC）や他のクラウド上のKubernetesクラスターも管理できます。コントロールプレーンを一元化することで、複数のクラスターのセキュリティガバナンス、オブザーバビリティ、アプリケーション管理、バックアップ、リカバリーを統一的に行うことができます。例えば、SLSとマネージドPrometheusサービスにより、コードを侵すことなく、オフプレミスとオンプレミスのクラスターの統一されたオブザーバビリティ・ダッシュボードを提供することができます。Security Centerにより、AHASはハイブリッドクラウドアーキテクチャにおけるセキュリティおよび安定性のリスクを検出し、是正することができます。

ASMは、統一されたサービスガバナンス機能を提供し、CENおよび[Smart Access Gateway](https://www.alibabacloud.com/products/smart-access-gateway?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)（SAG）が提供するマルチリージョンおよびハイブリッドクラウドネットワーク機能により、最寄りのサービスへのアクセス、フェイルオーバー、段階的なリリースを可能にします。この複合ソリューションは、クラウドのディザスタリカバリやアクティブな地理的冗長性などのシナリオに使用することができ、事業継続性を向上させます。

**クラウドネイティブハイブリッドクラウドソリューション**


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/6e1ba4ee-8209-1fa0-ad8b-648df4a7e536.png)


UniCareerは、世界の多くの地域のユーザーにサービスを提供するeラーニングのキャリア開発プラットフォームです。そのアプリケーションは、Alibaba Cloudの4つのリージョンにある複数のKubernetesクラスターに展開されています。これらのクラスターでは、複数のリージョン間のVPCネットワークを接続するためにCENが使用されています。ASMインスタンスは、複数のKubernetesクラスターにおけるマイクロサービス指向のアプリケーションのトラフィックを管理するために使用されます。

サービスのルーティングポリシーは、ASMコントロールプレーンによって集中管理され、複数のKubernetesクラスターに配信され、ユーザーのリクエストは、ドメインネームシステム（DNS）を介して最も近いリージョンにあるイングレスゲートウェイに配信されます。そして、ASMを介してまずこのリージョンにあるサービスエンドポイントにアクセスします。このリージョンのサービスが利用できない場合は、リクエストは自動的に他のリージョンにルーティングされ、トラフィックが切り替えられます。

**クラウドネイティブなハイブリッドクラウド管理**

Alibaba Cloudハイブリッドクラウドソリューションには、次のような特徴があります。

- ACKは、クラスターの集中管理、セキュリティガバナンス、アプリケーション管理、オブザーバビリティを提供します。
- CENは、高速かつ低レイテンシーのネットワークですべての地域を接続します。
- ASMは、集中型のインテリジェントアプリケーショントラフィックマネジメントをサポートし、サービスアクセスの最適化と事業継続性の向上を実現します。

**Windowsコンテナのクラウドへのヒットレスマイグレーション**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647921/d5d07cf0-67c3-0969-7708-0dbe7ead2666.png)


さて、今回はWindowsコンテナへの対応についてです。2020年現在、Windows OSの市場シェアは60％と、依然として圧倒的な存在感を示しています。企業では、ERP（Enterprise Resource Planning）やCRM（Customer Relationship Management）、ASP.Netなど、数多くのWindowsアプリが利用されています。WindowsコンテナとKubernetesを利用することで、.Netアプリケーションのコードを書き換えることなく、コンテナ型配信を実現することができます。これにより、クラウドの弾力性と俊敏性を最大限に活用し、ビジネスアプリケーションの高速な反復とスケーリングを実現します。

ACKでは、KubernetesコンテナクラスタでのWindows 2019をサポートしています。

1）LinuxとWindowsのアプリケーションに対して、一貫したユーザーエクスペリエンスと統一された機能を提供します。

- CPU、メモリ、ボリュームなどのリソースのスケジューリングとオーケストレーションをサポート。
- ステートレスおよびステートフルなアプリケーションのワークロードをサポート。

2) クラスタ内でのLinuxとWindowsアプリケーションのハイブリッド展開と相互接続をサポート：例えば、Linuxノード上で動作するPHPアプリケーションが、Windowsノード上で動作するSQL Serverデータベースにアクセスすることができます。

#Alibaba Cloud コンテナサービスの将来性
Alibaba Cloudのクラウドネイティブなマーケティング戦略を簡単に紹介します。

- 新たな基礎:コンテナ技術により、ユーザーはクラウドリソースを利用することができます。クラウドネイティブな技術により、クラウドの価値を迅速に提供することができます。

   - グローバルなアプリケーション配信をサポート:ACR EEを利用することで、アプリケーションを一度投入するだけでグローバルにリリースすることができ、リリース効率が7倍に向上します。
   - サーバーレス・アプリケーション・アーキテクチャの実現:ASKとKnativeにより、開発者はインフラ管理から解放され、ビジネスアプリケーションに集中することができます。
   - ハイブリッドクラウドおよびマルチクラウドアーキテクチャのサポート:企業がヒットレスにクラウドに移行し、異なる環境のワークロードを移行することを支援します。
   - クラウドエッジ・ターミナルの統合による分散型クラウドアーキテクチャ:クラウド機能をエッジやデバイスに拡張し、5Gや人工知能・モノのインターネット（AIoT）時代のイノベーション機会を取り込むことができます。エッジコンテナ技術がYoukuに採用された後、APIのエンドツーエンドのネットワークレイテンシーは75％削減されました。

- 新しいコンピューティングパワー：クラウドネイティブベースのソフトウェアとハードウェアの統合技術の革新により、コンピューティングの効率が向上し、インテリジェントなビジネスアップグレードが加速します。

   - X-dragon Hypervisorと統合されたコンテナは、物理的なマシンよりも20％高いパフォーマンスを実現します。
   - GPUやNPU（Network Processing Unit）（Hanguangチップ）などの異種のコンピューティングパワーをスケジューリングして共有することで、利用率が2～4倍に向上します。
   - 強力なセキュリティ・アイソレーションにより、サンドボックス化されたコンテナは、ネイティブ・プロセスの90%のパフォーマンスを実現します。Intel SGXベースの機密コンピューティングもサポートされており、個人情報や機密情報の処理に安全で信頼できる実行環境を提供することができます。

- 新しいエコシステム:クラウド時代に、より多くの企業がアリババのテクノロジーのメリットを享受できるように、テクノロジーエコシステムとグローバルパートナープログラムを提供します。

- コンテナのクラウドアプリケーション市場:クラウドネイティブなイノベーションで企業に力を与えます。現在、フォーティネット、Zhuyun、インテルと提携し、コンテナのセキュリティ、モニタリング、ビジネスアプリケーションなど、さまざまな製品を提供しています。このようにして、完全なコンテナ化ソリューションを便利に入手することができます。
- グローバルパートナーのエコシステム:当社は、SAP、Red Hat、Rancher、Click2Cloud、Banzai Cloudなどのグローバルなテクノロジーパートナーと当社の製品と機能を統合しています。これにより、企業はAlibaba Cloudのクラウドネイティブテクノロジーを活用することができます。

[Tech Showシリーズ](https://resource.alibabacloud.com/webinar/topic/tech-show.html?spm=a2c65.11461447.0.0.1d8023a4cBTZ6p)では、アリババのコアテクノロジーや最新の製品アップデートを、アリババのトップシニアエキスパートがご紹介します。


*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/cloud-native-best-practices-for-container-technology-implementation_596411)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*