GKE + Istio + FlaggerによるProgressive Delivery

Yamashita Keisuke
google-cloud-jp
Published in
27 min readNov 14, 2019

--

サービスの信頼性をあげるため用いられる前衛的なデプロイメントパターンの一つであるProgressive Deliveryについて説明します。
来週からのKubecon 2019 North Americaでもこれに関するセッションがあり、注目に値すると思いますので興味があれば一読お願い致します。

本記事ではGKE + Istio + Flaggerを使ったProgressive Deliveryを取り上げ、昨今のCI/CDのパラダイムを見つめながら執筆しています。KubernetesはGKEである必要はないのですがGKE上での一つのトピックとしてお楽しみいただければ幸いです。

また、今回はWeaveworks公式に用意されてあるサンプルアプリケーションを使って仕組みから追っています。公式ドキュメントに書かれていることはどれも概念的な話であり、Kubernetes OperatorとしてのFlaggerの動作原理の解説がされていないです。

WeaveworksのFlagger Operatorに関してはもちろん、Progressive Deliveryについても日本語・英語ともに文献がないのが現状であり、本記事が参考になれば嬉しいです。

Progressive Deliveryの台頭

継続的デリバリ(Continuos Delivery: 以下 CD)が継続的インテグレーション(Continuos Intergration 以下: CI)に続く形で自然に発展してきましたが、いまだ継続的デプロイメントが導入されている事案は少ないです。

古くから周知されているJenkinsをはじめ、Spinnarker, ConcurseやマネージドされたCI/CDサービスなど継続的XXXの界隈は絶えず発展してきました。そもそも、なぜこのように取り組まれているのでしょう。

それはソフトウェア開発とは常にAgilityとReliabilityの分水嶺にあるからです。KubenetesをはじめとするCloud Native技術がその代表でしょう。

Quote: “An Introduction to Progressive Delivery”, James Governor@Qcon 2019

--

--