第5章. 継続的インテグレーション、テスト、デプロイ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、、継続的インテグレーション/継続的デプロイ(CI/CD)パイプラインを統合してアプリケーションをKubernetesに配信する方法の重要な概念を見ていく。うまく統合されたパイプラインをビルドすることで、アプリケーションを自信を持って本番環境に配信できるようになるため、ここでは、本番環境でCI/CDを実現するためのメソッド、ツール、プロセスについて見ていく。CI/CDのゴールは、開発者がコードをチェックインしてから新しいコードを本番環境にロールアウトするまでのプロセスを完全に自動化することだ。Kubernetesにデプロイされたアプリケーションのアップデートを手動でロールアウトするのは、非常にミスが起こりやすいので避けたい。 Kubernetesでアプリケーションのアップデートを手動で管理すると、コンフィギュレーションのドリフトやデプロイの脆弱なアップデートにつながり、アプリケーションを提供する全体的なAgileが失われる。
この章では以下のトピックを取り上げる:
-
バージョン管理
-
継続的インテグレーション
-
テスト
-
コンテナ製造
-
コンテナ画像のタグ付け
-
継続的デプロイ
-
デプロイ戦略
-
本番でのテスト
-
カオステスト
また、以下のタスクで構成されるCI/CDパイプラインの例も見ていく:
-
コードの変更をGitリポジトリにプッシュする
-
アプリケーションコードのビルドを実行する
-
コードをテスト実行する
-
テスト成功時にコンテナイメージを構築する
-
コンテナイメージをコンテナレジストリにプッシュする。
-
アプリケーションをKubernetesにデプロイする
-
デプロイされたアプリケーションに対してテストを実行する
-
デプロイでローリングアップグレードを実行する
バージョン管理
すべての CI/CDパイプラインは、バージョン管理から始まる。バージョン管理は、アプリケーションと構成コードの変更履歴を管理する。Git はソース管理プラットフォームとして業界標準になっており、どの Git リポジトリにもメインブランチが含まれている。メインブランチには本番用のコードが含まれる。機能ブランチや開発用ブランチは、最終的にメインブランチにマージされる。ブランチ戦略のセットアップにはさまざまな方法があり、組織構造や職務分掌によって大きく変わってくる。アプリケーションコードと、KubernetesマニフェストやHelmチャートなどのコンフィギュレーションコードの両方を含めることは、コミュニケーションとコラボレーションという優れたDevOpsの原則を促進するのに役立つと我々は発見した。アプリケーション開発者と演算子の両方が単一リポジトリで共同作業することで、アプリケーションを本番環境に提供するチームに対する信頼が構築される。
継続的インテグレーション
CIとは、、コードの変更を継続的にバージョン管理リポジトリにインテグレーションするプロセスのことだ。大きな変更をあまり頻繁にコミットしない代わりに、小さな変更を頻繁にコミットする。コード変更がリポジトリにコミットされるたびに、ビルドが開始される。これによって、実際に問題が発生した場合に、何がアプリケーションを壊してしまったのかを素早くフィードバックすることができる。多くのソリューションがCIを提供しており、Jenkinsはよりポピュラーなツールの1つだ。この時点で、あなたは ...