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

マルチクラウドでContinuous Deliveryを実現するSpinnakerについて / Introduction of 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. マルチクラウドでContinuous Deliveryを実
    現するSpinnakerについて
    海浜幕張テック ミートアップ
    #2

    View full-size slide

  2. About me
    Mahito Ogura < Twitter: @Mahito >
    海浜幕張在住(都内通信系会社勤務)
    業務:IoT関連 (2018/7〜)
    ● クラウドや分散システムの調査検証
    ● 分散トレーシングなどの分散システムの調査検証
    ● OpenStackやコンテナに関する調査検証
    ● インフラ構築(Chef, Ansible)
    ● アプリケーション開発
    ● 採用のお手伝いとか各種イベント業, etc...

    View full-size slide

  3. 本日のお話
    マルチクラウドで継続的デリバリー(
    Continuous Delivery
    )を実現する
    Spinnaker
    について知ってもらい興味を持ってもらう
    あわよくば後日
    Spinnaker
    を試してもらって情報交換なんかができれば・・・

    View full-size slide

  4. Spinnakerとは
    ● マルチクラウドで
    Continuous Delivery

    CD
    )を実現するプラットフォーム
    ● クラスタの管理や
    Image
    の作成、デプロイ管理などの
    Pipeline
    を提供

    Netflix
    社が開発し、
    OSS
    として公開されているが現在は
    Google

    Pivotal,
    Microsoft, Mirantis
    なども開発に参加している

    View full-size slide

  5. パイプラインはアプリケーションのコードをプロダクションにリリースするために必要なすべ
    ての手順を実行するプロセス
    PiplineとCI/CD
    Test/Build Deploy Test Approve
    CI CD

    View full-size slide

  6. Sample Spinnaker Pipeline

    View full-size slide

  7. Spinnaker Cloud Target
    詳細はリポジトリを御覧ください
    https://github.com/spinnaker/clouddriver/
    ● AWS (EC2)
    ● Docker
    ● GCP (AppEngine, GCE, GKE)
    ● Kubernetes
    ● Microsft Azure
    ● OpenStack
    ● etc...

    View full-size slide

  8. Blue / Green Deployment
    Spinnaker

    Blue / Green Deployment
    を実現
    Green (new)
    に問題があった場合は
    Blue

    old
    )に
    Rollback
    が可能
    ※ただし
    Kubernetes v2 Provider

    Blue/Green
    に非対応
    https://www.spinnaker.io/concepts/

    View full-size slide

  9. 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

    View full-size slide

  10. 参考: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)

    View full-size slide

  11. Chaos Engineering [1]
    分散システム内にわざと障害を起こすことで、
    対象のシステムが本番環境において耐障害性を持っていることを証明する手法
    Spinnaker
    ではランダムにインスタンスやコンテナを削除することで
    Chaos Engineering
    を実現するツールのひとつである
    Chaos monkey
    が利用可能
    [1] : http://principlesofchaos.org/
    [2] : https://github.com/Netflix/chaosmonkey

    View full-size slide

  12. Spinnakerの構築 [1]
    Halyard
    を用いて設定、デプロイを行う
    1. Halyard
    のインストール
    2. Cloud Provider
    の選択
    3.
    インストール環境の選択
    4.
    設定とデプロイ
    5.
    オプション設定
    6.
    プロダクション環境への適用
    ※だいたいドキュメントどおりにできるが時折動かないので注意!
    [1]: https://www.spinnaker.io/setup/install/

    View full-size slide

  13. 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

    View full-size slide

  14. 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
    はまだ開発中
    ...

    View full-size slide