Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MUGT02 - vamp demo

379 views

Published on

canary relase demo using vamp on Mesos User Group Tokyo meetup#02 2017/07/25

Published in: Technology
  • Be the first to comment

  • Be the first to like this

MUGT02 - vamp demo

  1. 1. Mesosでカナリアリリースだと!? @tetsuyasd Mesos Meetup Tokyo #2 2017/07/25
  2. 2. Who am I ? 2 名前: 惣道 哲也 (そうどう てつや) Twitter: @tetsuyasd 所属: 日本ヒューレット・パッカード株式会社 テクニカルコンサルティング事業統括 職務: オープンソース関連なんでも(調査、検証、構築、提案) - Hadoop - OpenStack - Docker - Ansible - TensorFlow - Mesos(DC/OS) New 「赤ずきんちゃんはIIJ GIOのマスコットキャラクターです」 https://www.iij.ad.jp/GIO/socialapp/character.html
  3. 3. Agenda (15min) 3 1. AzureからDC/OSをインストール(事前導入済) 2. Vampのインストール 3. カナリアリリースであんなこと、こんなこと 今日のゴール • Vamp/カナリアリリースについ てわかった気になる
  4. 4. 1. AzureからDC/OSをインストール 4
  5. 5. AzureからDC/OSをインストールしてみる 5https://dcos.io/docs/1.8/administration/installing/cloud/azure/ CLI、ARMテンプレート等いろいろありますが、 今回はポータルからAzure Marketplaceに 登録されているDC/OS on Azureをデプロイ
  6. 6. AzureからDC/OSをインストールしてみる 6 以下の項目あたりを指定して7分ほど待つ – SSH public key 手持ちのSSH公開鍵 – Enable OAuth false(default) → true – Resource Group 任意のグループ名 – Region 任意のリージョン – Agent数 1-100まで ※masterは1つになります – VMサイズ D2_V2(default) 入力項目 予算 以下は試算例。東日本リージョンでD2_V2サイズ(2017/7/26時点)を使用。 ( Master x1 + Agent x2 ) ≒ 60円/h (1450円/日) くらい
  7. 7. クラスタへのアクセス 7 クライアントからMasterノードへのSSHトンネルを設定 事前準備 $ MASTER=<masterのFQDNをAzurePortalからコピー> $ ssh -fNL 8000:localhost:80 -p 2200 azureuser@$MASTER Masterノードへ上記のSSHトンネル経由でアクセス。 OAuth認証を有効化したので適切な方法でログイン ブラウザでのログイン
  8. 8. クラスタへのアクセス 8 ログイン後の画面
  9. 9. 2. Vampをインストール 9
  10. 10. Elasticsearch(依存サービス)のインストール 10 新規サービスをdeploy 右上の”JSON mode”をONにしてJSONテンプレートを添付 JSON内部ではdockerコンテナ名などが指定されている →9200ポートでElasticsearchが起動 App JSONによるinstall
  11. 11. Vampのインストール 11 Vampをデプロイ みんな大好きUniverse 依存サービスのElasticsearchと連携が必要 “advanced install”を選択して、 “elasticsearch-url”に以下を指定すること 注意点1 http://elasticsearch.marathon.mesos:9200 注意点2 “elasticsearchurl”の入力テキストが、なぜかChromeだと入力できない・・・ → Firefoxを使います
  12. 12. Vampサービスへのアクセス 12 新しいウインドウが開いて Vampにアクセス可能 vampのリンクを開く この後、デモします!
  13. 13. Vampの用語の一部をご紹介 13 各サービスと依存性を記述した定義。(例:Dockerコンテナなどを記述する) Breed Blueprint Deployment 実行中のBlueprint Breedが実行時どのように動作するか、保持するプロパティなどを定義。 Gateway 着信トラフィックと送信先のペアを定義した静的ルーティングを定義 ここに複数のdeploymentを定義して、ト ラフィック割り当てを動的に変更させると、 カナリアリリースが実現できる
  14. 14. 3. カナリアリリースであんなこと、 こんなこと 14
  15. 15. 「カナリアリリース」とは 15 もともとは1913年に炭鉱労働者の一酸化炭素中毒による事故を防ぐために、 カゴに入れた鳥を連れて行ったことが由来 新規リリースでの、最初のリクエストを処理するのが「カナリア」 新規リリースに問題が起きた場合、「カナリア」は危険を知らせることが期待される おれの考えた さいきょうの リリースを デプロイするぞ! カナリア いないとヤバス・・・
  16. 16. 「カナリアリリース」とは 16 新規トラフィックのうち、コントロール可能な少数だけをカナリア(新規バージョン)に誘導したい それでカナリアに問題がなければ、残りのトラフィックも新規バージョンに流入させる もしカナリアで問題があれば、「すみやかに」 ロールバックしたい 95%の ユーザリクエスト 5% Chrome Mozilla IPアドレスやブラウザなど クライアントの条件で制御 するパターンもある 信頼と実績の ver1.0 先進機能満載の ver1.1 嫌なヨカン やりたいこと
  17. 17. カナリアリリースの要件まとめ 17 1. 新規リリース時に流入トラフィックをコントロールしたい ※単なるblue-green deploymentと違い、任意のトラフィック流入率を設定したい (加えて、バックエンドセッションが終わるまでセッションが切れない、など) 2. 新規リリースに問題があった際に検知して、rollbackしたい おれの考えた さいきょうの リリースを デプロイするぞ! ヤメテー!
  18. 18. Demo 18 カナリアリリースのデモ
  19. 19. 19 本資料に関するお問い合わせ @tetsuyasd Mailto: tetsuya.sodo@hpe.com Mesosは、米国およびその他の国において登録されたApache Foundationの商標です。 その他、本資料で記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。 本発表内容やデモ内容に関して、ご質問等があればお問い合わせ下さい。 また、内容に関しては個人の意見に基づくものであり、所属組織団体の公式見解とは異なる場合がございます点、ご了承 下さい。

×