Alibaba Cloudのクラウドネイティブサービス(2)ーセキュアで柔軟な「継続的インテグレーション」と「継続的デリバリー」(テックコラム)

Alibaba Cloudでは、クラウドの利点を最大限に活かしながらビジネスを継続・拡張させるために役立つ「クラウドネイティブ」なプラットフォームを提供しています。前回のコラムでは、Alibaba Cloudが提供している、高い技術と知見から裏打ちされたクラウドネイティブ環境とエコシステムについて解説しました。

www.sbcloud.co.jp

 コンテナとKubernetes(k8s)を活用することで、アプリケーションを迅速に開発しリリースが行えるようになります。本コラムでは、Alibaba Cloudを活用することで「コンテナ化されたアプリケーションを展開・管理するライフサイクルをどのように構築するのか」について、大きく3つに分けてご紹介します。

 

概要

⑴ Container Registryを活用したデリバリーチェーンで、イメージ作成からデプロイまでを継続して実行
⑵ 開発初期からセキュリティ対策を実行することで、問題発生時の手戻りを防ぎ、安全性向上・リードタイム短縮を実現
⑶ Container Service for Kubernetesによりハイブリッド・マルチクラウド環境下でKubernetesクラスタを一元管理でき、迅速な開発・柔軟なリソース管理が可能に

 

 

⑴ Container Registryを活用したデリバリーチェーン


まず、開発環境において大事なのはスピード感でしょう。クラウドの発展により、ビジネススピードは年々加速しています。複雑化する中で、いかに素早く成果を出すかが鍵となります。
Alibaba Cloudでは、アプリケーションを迅速に開発・リリースするために、コンテナとKubernetes(K8s)の利用を推奨しています。

コンテナは、アイソレーションとアプリケーションのパッケージ化を実施し、K8sはコンテナ化されたアプリケーションのオーケストレーションを行います。Alibaba Cloudはアプリケーションをパッケージングしたコンテナイメージを効率良く作成するために、「Container Registry」を提供しています。

f:id:sbc_kitano:20201005165033p:plain
〈Container Registry(コンテナレジストリ)機能概要〉

 Container Registryは、イメージのビルド、セキュリティスキャン、クラスターへのデプロイ機能があります。また、ソースリポジトリへ更新した「Dockerfile」をプッシュすることで、Container Registryと連携することができ、自動的にコンテナイメージのビルドが開始されます。

さらに、ビルドしたイメージをリージョン間で同期することも可能です。グローバルでサービスを展開しているなど、異なるリージョンから利用してもレイテンシーが軽減できる仕組みです。

 

継続性を生むデリバリーチェーン

Alibaba CloudのContainer Registryには、「デフォルトインスタンスエディション」と「エンタープライズエディション」の2つがあります。「エンタープライズエディション」はビルドからイメージ保存、セキュリティスキャン、イメージ同期、クラスターへのデプロイまでを1つのデリバリーチェーンとして実行することが可能です。

f:id:sbc_kitano:20201005164936p:plain
〈継続性を生むデリバリーチェーン〉

 

一貫したデリバリーチェーンを設定しておくことで、イメージ作成からデプロイまでを継続して実行することができます。当然、特別な準備は必要なくなり、一連の動作がシンプルになるという利点もあります。

 

⑵ 「DevSecOps」の考えに基づいたセキュアなパイプラインの実装


Container Registryを選択するもう一つの理由が「セキュリティ」です。従来、アプリケーション開発におけるセキュリティ対策は、終盤で実施されるケースが多く見られました。

しかし、近年はサイバー攻撃の多様化や個人情報保護に関する法令整備によって、セキュリティへの機運が高まっています。

Container Registryはセキュリティ対策をシフトレフト(※)のアプローチで初期段階から実行。問題が発生した場合の手戻りを防ぎ、安全性の向上とともにリードタイムも短縮させます。

(※)シフトレフト:アプリケーション開発の早い段階で、セキュリティ対策を実施し、セキュリティの問題解決の手戻りをなくしリードタイムを短縮すること 

DevSecOpsパイプライン

「DevSecOps」とは、DevOpsパイプラインの中にセキュリティ対策を組み込んだ概念を指します。

f:id:sbc_kitano:20201006171951g:plain
〈DevSecOpsの考え方〉

 

先述のデリバリーチェーンでは、作成したコンテナイメージに対してセキュリティスキャンを実行します。その際、脆弱性が検知された場合はデプロイを中止し、問題がなければデプロイするというブロッキング機能も搭載されています。

コンテナイメージに対するDevSecOpsの要素を組み込んだ、「継続的インテグレーション(Continuous Integration:CI)」「継続的デリバリー(Continuous Delivery:CD)」を実現させるセキュアなパイプラインの実装が可能だと言えるでしょう。

f:id:sbc_kitano:20201006163102p:plain
〈Container Registryを使用したコンテナイメージのCI/CDパイプラインイメージ〉

 

⑶ ハイブリッド・マルチクラウド環境を統合管理


 コンテナ化されたスケーラブルなアプリケーションを管理する為、Alibaba Cloudは「Container Service for Kubernetes」を開発しました。これはK8sとの互換性を持ち、Alibaba Cloud各プロダクトと連携するフルマネージドサービスです。


Container Service for KubernetesはK8sのリソースを簡単に管理できるように、アプリケーションセンターの利用を可能にしました。ユーザーはアプリケーションセンターをAlibaba Cloudコンソールからクラスターへインストールすることで、継続的デリバリーツール「Argo CD」がクラスターへデプロイされ、Web UIがAlibaba Cloud コンソールから操作可能となります。

 

f:id:sbc_kitano:20201006163210p:plain
〈アプリケーションセンター概要〉

(※) アプリケーションセンターは2020年10月末リリース予定 

 

ソースリポジトリとして利用できる「Git」「Helm」「カスタムテンプレート」と同期することで、各クラスターのリソース管理も可能になります。ソースコードへ変更があればクラスターへアップデートを実行し、問題があればロールバックするなど、GitOpsでの継続的デリバリーが可能です。また、デプロイしたリソースのトポロジーを可視化。コンソールから確認することができるので、簡単に既存のリソース状態を把握することができるようになっています。

このアプリケーションセンターからは、異なる環境にあるK8sクラスターを一元管理することができます。アプリケーションによって柔軟にデプロイ先を選択することが可能なため、ハイブリッド環境やマルチクラウド環境の統合管理に対応した機能と言えます。これにより、安定性・一貫性・セキュリティを向上させ、迅速な開発と、柔軟なリソース管理を実現することができます。

 

最後に


クラウドネイティブ な環境での開発では「継続的インテグレーション」「継続的デリバリー」の仕組みづくりが重要となります。

紹介した3つのポイントから分かるように、Alibaba Cloudでは、これらの仕組みにより迅速かつセキュアにアプリケーションの開発を行うことができます。また、アプリケーションを柔軟にデプロイする仕組みを活用して、ハイブリッド・マルチクラウド環境への対応や、オープンソースのツールと連携した機能の提供を進めています。

Alibaba Cloudが開発をサポートするクラウドネイティブな環境を利活用することで、ビジネスのスケールアップに貢献します。

  

〈関連リンク〉

www.sbcloud.co.jp

 

f:id:sbc_kitano:20200817095258j:plain

SBクラウド株式会社 技術部 ソリューションアーキテクト課

有馬 茂人

インフラエンジニアとしてオンプレミス・プライベートクラウド・パブリッククラウド環境での構築運用に携わり、2018年にSBクラウドにジョイン。コンテナ・IaC等を活用したAlibaba Cloud でのスケーラブルなシステムの提案・ 導入支援を行なっています。