継続的インテグレーションと継続的デリバリー

CI/CD と Kubernetes によるコードの迅速なデプロイ

無料トライアル お問い合わせ

CI/CD と Kubernetes によるコードの迅速なデプロイ

継続的なインテグレーションとデプロイ(CI/CD)は、アプリケーションのアップデートを迅速でかつ自動化された方法でお客様に届けるデプロイ戦略です。Kubernetes と Kubernetes Engine を利用すると、次のような問題を解決できます。

リリース サイクルの長期化 – テストとデプロイを手動で行うと、本番環境へのコード移行に遅延が発生することがあります。その場合、コードをマージする際に競合が発生する可能性が高くなり、パッチやアップデートをお客様に届けるまでの時間が長くなります。

障害 – インフラストラクチャを手動で管理している場合、障害の発生に備えて誰かが必ずポケベルを携帯して呼び出しに応じられるようにしなければなりません。その原因がデータセンターへの落雷であれ、トラフィックの急増による容量超過であれ、障害が発生すればたとえ深夜であってもチームの誰かが対処しなければなりません。アプリがダウンしている時間が長引くほど、収入やお客様を失うことになります。

サーバーの非効率的な利用 – クラウド内のアプリであろうと、オンプレミスのアプリであろうと、アプリが効率的にサーバー上に配置されるように管理しないと、無駄な容量に対して費用を支払うことになります。

CI/CD と Kubernetes によるコードの迅速なデプロイ

コードのコンテナ化

アプリをコンテナ内で実行すると、必要なリソースとライブラリが確実に確保され、ライブラリのバージョン間の競合やアプリケーション コンポーネント間の競合が回避されます。つまり、別の環境への移行やレプリケーションがしやすい、スケーラブルなアプリを開発できます。

Cloud Build を使用すると、Google Cloud Platform の高速かつ、一貫性と高い信頼性を備えた環境で、コンテナ イメージのビルドを実行できます。

コードのコンテナ化

Kubernetes によるデプロイのオーケストレーション

アプリがコンテナ内で動作するようになった後も、管理は必要です。アプリのデプロイ、状況のモニタリング、需要に応じた規模のスケーリングを行う必要があります。これは手作業で行うこともできますが、Kubernetes を使えばオーケストレートすることが可能です。

Kubernetes を使用する場合は、望ましいデプロイ状態を .yaml ファイルに指定します。Kubernetes は継続的な環境のモニタリングしながらその状態を維持します。具体的には、需要に応じたアプリのデプロイとスケーリング、ビンパッキング方式での効率的なコンテナのパッケージ化とサーバーへの配置、不正なプロセスの終了を行います。

Kubernetes はオープンソース ソフトウェアとして開発され、その改善に協力して取り組む大規模なデベロッパー コミュニティによってサポートされています。そのため、Kubernetes はクラウド プロバイダ上でも独自のデータセンター内でも、場所を問わず実行できます。1 つのプラットフォームに縛られることはありません。

Kubernetes によるデプロイのオーケストレーション

Google Cloud インフラストラクチャでの Kubernetes の実行

オープンソースの Kubernetes は、コードの継続的なインテグレーションとデプロイといった問題を解決するために、Google 社内のテクノロジーを駆使して開発されました。Google は Kubernetes プロジェクト発足当初からのパートナーであり、そのテクノロジーを熟知しています。

Kubernetes Engine を使用すると、CI/CD の最終ステップ、すなわち Kubernetes の動作インフラストラクチャの管理が不要になります。デプロイ環境を Kubernetes Engine 上で動作させることにより、最適化された効率的な状態でアプリを実行し続けるのに必要十分な数のサーバーが常に確保されます。

Google Cloud インフラストラクチャ上でワークロードを実行すると、データセンターの管理や障害についての不安が解消され、Google の超高速プライベート光ファイバー ネットワークなど、強力かつ革新的なテクノロジーを利用できます。

ようやくポケベルから解放され、楽しい週末を取り戻すことができるわけです。

Google Cloud インフラストラクチャでの Kubernetes の実行

Kubernetes クラスタのデプロイと
本番環境用コードの瞬時更新

それでは実際に試してみましょう。次のターミナル エミュレータにコマンドを入力すると、
Kubernetes Engine 上に Kubernetes クラスタを作成する方法がわかります。

最初のクラスタの作成

基本事項はもう押さえたので、いつでも最初の Kubernetes Engine クラスタを GCP で立ち上げることができます。

フィードバックを送信...