Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マルチクラウドでContinuous Deliveryを実現するSpinnakerについて /...

Mahito
October 26, 2018

マルチクラウドでContinuous Deliveryを実現するSpinnakerについて / Introduction of Spinnaker

マルチクラウドで継続的デリバリー(Continuous Delivery)を実現するSpinnakerについての紹介

Mahito

October 26, 2018
Tweet

More Decks by Mahito

Other Decks in Technology

Transcript

  1. About me Mahito Ogura < Twitter: @Mahito > 海浜幕張在住(都内通信系会社勤務) 業務:IoT関連

    (2018/7〜) • クラウドや分散システムの調査検証 • 分散トレーシングなどの分散システムの調査検証 • OpenStackやコンテナに関する調査検証 • インフラ構築(Chef, Ansible) • アプリケーション開発 • 採用のお手伝いとか各種イベント業, etc...
  2. Spinnakerとは • マルチクラウドで Continuous Delivery ( CD )を実現するプラットフォーム • クラスタの管理や

    Image の作成、デプロイ管理などの Pipeline を提供 • Netflix 社が開発し、 OSS として公開されているが現在は Google や Pivotal, Microsoft, Mirantis なども開発に参加している
  3. Spinnaker Cloud Target 詳細はリポジトリを御覧ください https://github.com/spinnaker/clouddriver/ • AWS (EC2) • Docker

    • GCP (AppEngine, GCE, GKE) • Kubernetes • Microsft Azure • OpenStack • etc...
  4. Blue / Green Deployment Spinnaker は Blue / Green Deployment

    を実現 Green (new) に問題があった場合は Blue ( old )に Rollback が可能 ※ただし Kubernetes v2 Provider は Blue/Green に非対応 https://www.spinnaker.io/concepts/
  5. Canary Analysis - Kayenta [1] Netflix と Google が共同で OSS

    化した Automated Canary Analysis (ACA) の基盤 [2][3] Spinnaker の一機能( Kayenta )として ACA の動作を行う 基準( Baseline )と新バージョン( Canary )のメトリクスを比較し、 差分を確認することで、新バージョンに問題がないかを分析 メトリックスの取得に使えるのは現在 Stackdriver, Prometheus, Datadog, Signalfx 参考 • [1] : https://github.com/spinnaker/kayenta • [2] : Automated Canary Analysis at Netflix with Kayenta • [3] : Introducing Kayenta: An open automated canary analysis tool from Google and Netflix
  6. 参考:NetflixのCanary Release Process 3 つのクラスタで運用しそれぞれに同じトラフィックから量を変えて流す 1. Production :本番環境 (many servers)

    2. Baseline : Canary と比較するための現行バージョン (1 + m servers) 3. Canary :新バージョン (1 + m servers) Traffic Router Metrics Canary Analysis Production(v1.0) Baseline(v1.0) Canary(v2.0)
  7. Spinnakerの構築 [1] Halyard を用いて設定、デプロイを行う 1. Halyard のインストール 2. Cloud Provider

    の選択 3. インストール環境の選択 4. 設定とデプロイ 5. オプション設定 6. プロダクション環境への適用 ※だいたいドキュメントどおりにできるが時折動かないので注意! [1]: https://www.spinnaker.io/setup/install/
  8. Spinnaker Architecture • Deck - UI • Gate - API

    Gateway • Orca - Orchestrate engine • Cloddriver - Cloud controller • Fiat - Authorization • Front50 - Metadata management • Rosco - Image builder • Kayenta - Canary Analysis • Echo - Event bus • Igor - Pipelines trigger
  9. Spinnaker Pros / Cons Pros • マルチクラウド対応( AWS/GCP, k8s に関してはほぼ動くと思っていい)

    • クラスタ管理機能 (Blue/Green Deployment, Auto Scale) • 品質確保・向上のしくみ (Canary Release, Chaos Monkey) • 新機能の追加が早い(大体 2 ヶ月ごとにバージョンアップ) Cons • 公式ドキュメント以外の情報はコミュニティに頼るのが現状 • CD に特化しているため CI には Jenkis など他の CI ツールが必要 • Spinnaker 自体が Microservices であり複雑 • UI が中心で CLI はまだ開発中 ... ?