Open Policy AgentとSpinnakerで実現するマイクロサービスの安全な継続的デリバリー

Japanese Solo Session Sat, 13 Jun 2020 15:35:00 +0900 35m

概要

“Open Policy Agent(OPA)という汎用的なポリシーエンジンと継続的デリバリープラットフォームであるSpinnakerを合わせることによって、安全なマイクロサービスの継続的デリバリーを実現した実例を、以下の項目で紹介します。

・OPAとconftestの概要 ・Spinnaker Managed Pipeline Template(MPT)の概要 ・OPAとSpinnaker MPTを組み合わせた継続的デリバリー ・今後の課題

一般的に、マイクロサービスアーキテクチャは各マイクロサービスが自律的に開発サイクルを回していくという理念に根ざしているため、サービス全体の信頼性の担保・品質の維持が難しいです。メルカリでも、各マイクロサービスがそれぞれKubernetesリソースを定義して、独自のデプロイメントパイプラインを作成しています。そのため、リソース自体の設定ミスやリスクを検証することができておらず、その質も各マイクロサービスに委ねられていました。例えば、カナリアデプロイをしているチームもあれば、ブルー・グリーンデプロイをしているチームもあり、品質にばらつきがありました。

今回の取り組みでOPAや、その派生物であるconftestを使ってデプロイ前にKubernetesリソースにポリシーを適用してバリデーションを行い、セキュリティ的リスクや設定ミスを事前に検知できるようになりました。また、Spinnaker MATなどの機能も使うことによって、デベロッパーが簡単にテンプレートからパイプラインを生成することができるようになり、マイクロサービスのデプロイの標準化を行うことができました。これらの取り組みによって、品質がばらつきが生じやすいマイクロサービスアーキテクチャの質を担保することができ、より安全な継続的デリバリーを実現できました。

Kubernetes上でのマイクロサービスアーキテクチャがもたらす恩恵を享受しつつ、安全な継続的デリバリーをしたい方へ、一つの提案をできると思っています。

登壇者

質問

← 戻る