14章Kubernetesにおける継続的デプロイ
道は常に無為にして、而も為さざる無し
――老子
この章では、DevOpsの基本原理である継続的デプロイ(CD)と、これをKubernetesベースのクラウドネイティブ環境で実現する方法について説明します。Kubernetesと連携して動作するCDパイプラインをセットアップするための選択肢について概観し、GoogleのCloud Buildを用いて完全に機能する実例を示します。
14.1 継続的デプロイとは何か
継続的デプロイ(continuous deployment、CD)とは、成功したビルドを本番へ自動的にデプロイする仕組みです。テストスイートと同じく、デプロイも一元的かつ自動的に管理する必要があります。つまり開発者にとっては、ボタンを押す、マージリクエストをマージする、Gitリリースタグをプッシュするといった方法で新しいバージョンをデプロイできることが求められます。
CDと関連付けられることが多い概念として継続的インテグレーション(continuous integration、CI)があります。これはメインライン(mainline)ブランチに対して開発者が行う変更の統合とテストを自動化する仕組みです。その基本的な考え方は、メインラインにマージされるとビルドを壊すであろう変更をブランチに加えている場合には、ブランチがメインラインにマージされるのを待って壊れたことに気付くのではなく、マージされる前に継続的インテグレーションが直ちに開発者に壊れていることを通知するというものです。継続的インテグレーションと継続的デプロイの組み合わせは多くの場合、CI/CDとして言及されます†1。
[†1] 翻訳注:CI/CDのCDは継続的デリバリ(continuous ...
Get Kubernetesで実践するクラウドネイティブDevOps now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.