O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Alibaba Cloud Resource Orchestration Serviceを使用したデプロイパターン

1.615 visualizações

Publicada em

Alibaba Cloud Resource Orchestration Serviceを使用したデプロイパターンについて紹介した資料です。
1. Resource Orchestration Service
・概要
・特徴
・主要機能
2. Deploy pattern
・Blue Green Deployment (DNS)
・Blue Green Deployment (仮想サーバグループ)
・Canary Release
3. CI/CD構成例
4. まとめ

執筆者:SBクラウド株式会社 技術部 有馬 茂人

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Alibaba Cloud Resource Orchestration Serviceを使用したデプロイパターン

  1. 1. ©︎ 2019 SB Cloud Corp. Alibaba Cloud Resource Orchestration Serviceを使用した デプロイパターン SBクラウド株式会社 技術部 SE課 有馬 茂人 2019/2/21
  2. 2. ©︎ 2019 SB Cloud Corp. 自己紹介 2 有馬 茂人(ありま しげと) SBクラウド株式会社 ソリューションアーキテクト パブリッククラウドでのゲームインフラ基盤構築・運用 Openstackを使用したインフラのCI/CD Terraform, Ansible, Jenkins, Kubernetes, Docker 名前: 所属: 経歴: ツール:
  3. 3. ©︎ 2019 SB Cloud Corp. 国内では2つのAvailability Zoneでサービス提供 3
  4. 4. ©︎ 2019 SB Cloud Corp. アジェンダ 4 1. Resource Orchestration Service ・概要 ・特徴 ・主要機能 2. Deploy pattern ・Blue Green Deployment (DNS) ・Blue Green Deployment (仮想サーバグループ) ・Canary Release 3. CI/CD構成例 4. まとめ ※ 本資料は2019年2月1日時点のサービス内容となります
  5. 5. ©︎ 2019 SB Cloud Corp. 5 1. Resource Orchestration Service
  6. 6. ©︎ 2019 SB Cloud Corp. ROS 概要 6 • Alibaba Cloud リソースの作成や管理を効率化 • 管理コンソール、API、CLI を提供 • リソースはJSONファイルで定義 • パラメータを使用する事で柔軟にシステムを構成 • ROS 自体は無料 • 作成されたリソースの課金ルールに従って支払い リソース定義 スタック作成 リソース管理
  7. 7. ©︎ 2019 SB Cloud Corp. ROS 特徴 7 • 豊富な Orchestration テンプレートの提供 • オンラインエディターでテンプレートをチェック テンプレート • ECS をはじめほぼ全ての主要プロダクトのリソースをサポート • 世界中のリージョンでリソースを作成 リソースの作成 • テンプレートとパラメーターのオンライン編集し一括変更リソースの更新 • スタックを削除することで、スタック中のリソースも完全に削除 • スタックのみを削除し、スタック中のリソースを保持することも可能リソースの削除 • スタック、リソース、イベント単位で、ステータスやエラーの詳細を確認 • スタックテンプレートの表示、リソースのステータス表示 リソースの照会
  8. 8. ©︎ 2019 SB Cloud Corp. Services Resource Computing Network Database & Storage Application Security Resource 8 • 主要な Alibaba Cloud サービスをサポート ECS SLB Auto Scaling Container Service VPC EIP NAT Gateway RDS Memcache Redis Log Service API Gateway RAM OSS
  9. 9. ©︎ 2019 SB Cloud Corp. Orchestration テンプレート 9 { "ROSTemplateFormatVersion": "", "Description": “”, "Metadata" : { “” }, "Parameters" : { “” }, "Mappings" : { “” }, "Conditions": { “” }, "Resources" : { “” }, "Outputs" : { “” } } • UTF8 でエンコードされた JSON 形式
  10. 10. ©︎ 2019 SB Cloud Corp. Orchestration テンプレート 詳細 10 テンプレート構造 説明 バージョン (ROSTemplateFormatVersion) ROS でサポートされているテンプレートのバージョン。現在のバージョン番 号は 2015-09-01。(必須) 説明 (Description) アプリケーションシナリオとアーキテクチャの説明に使用されるテンプレー トの説明。(オプション) メタデータ (Metadata) テンプレートに関連するメタデータ情報の格納。(オプション) パラメーター (Parameters) テンプレートユーザーがカスタマイズできるパラメータを定義します。また、 パラメータのデフォルト値を設定できます。 (オプション) マッピング (Mappings) キーとバリューのマッピングテーブルです。テンプレートのリソースと出力 では、組み込み関数 Fn :: FindInMap を使用して、キーを指定してマッピン グテーブル値を取得できます。(オプション) 条件 (Conditions) Fn :: And、Fn :: Or、Fn :: Not、および Fn :: Equals を使用して条件を定 義します。複数の条件はカンマ(、)で区切ります。ビルトイン関数 Fn :: If またはリソースの条件フィールドを使用します。(オプション) リソース (Resources) リソース間の依存関係、構成の詳細、およびリソースに関するその他の情報 など、リソーススタックに含まれるリソースを定義します。(オプション) 出力 (Outputs) 出力では、スタッククエリインターフェイスが呼び出されたときに返される 値を定義できます。(オプション)
  11. 11. ©︎ 2019 SB Cloud Corp. ROS CLIツール 11 • Python 2.7 ベースのコマンドラインツール • aliyun-ros-cliパッケージをインストール • Alibaba Cloud AccessKeyが必要 • リソーススタックの操作が可能 主要コマンド 機能 set-userdata デフォルト設定値を設定 create-stack スタックを作成します delete-stack スタックを削除 update-stack スタックを更新 list-stacks スタックをプレビュー list-resource スタックを放棄(開発中) describe-resource 指定されたスタックの詳細を一覧表示 resource-type 全てのリソースタイプを一覧表示 resource-type-detail 指定されたリソースタイプの詳細を一覧表示 その他多数のコマンド
  12. 12. ©︎ 2019 SB Cloud Corp. 制限と制約 12 • 各リソーススタックに最大 200 のリソースを作成 • 各ユーザーは最大 50 のリソーススタックを作成 • 各テンプレートファイルは 512 KB を超えることはできない
  13. 13. ©︎ 2019 SB Cloud Corp. 13 2. Deploy pattern
  14. 14. ©︎ 2019 SB Cloud Corp. Blue Green Deployment 14 ➢ ブルーとグリーン、2つの環境を作成 ➢ ブルーから、グリーンの環境へ切り替え ➢ 不具合発生時は以前の環境へロールバック ➢ システム停止時間の短縮
  15. 15. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (DNS) 15 ➢ BlueとGreenの環境をROSで作成 ➢ DNSでSLB IPを設定し、トラフィックを切り替え
  16. 16. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (DNS) 16 ROS SLB VPC DNS ECS Blue Stack ① ROSでVPC/ECS/SLBを作成
  17. 17. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (DNS) 17 ROS SLB VPC DNS ECS ② GreenのROSスタックで、SLB/VPC/ECSを作成 Blue Stack ROS SLB VPC ECS Green Stack
  18. 18. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (DNS) 18 ROS SLB VPC DNS ECS ③ DNSへ登録されているBlueのSLB IPを、GreenのSLB IPへ切り替え Blue Stack SLB VPC ECS Green Stack ROS
  19. 19. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (DNS) 19 ROS SLB VPC DNS ECS ④ 問題が発生した場合、BlueのSLBへ切り戻し Blue Stack SLB VPC ECS Green Stack ROS
  20. 20. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (仮想サーバグループ) 20 • BlueとGreenの環境を仮想サーバグループ含めROSで作成 • 仮想サーバグループを切り替える事で、トラフィックを切り替え ECS SLB 仮想サーバグループA ECS 仮想サーバグループB 指定した仮想サーバグルー プへバランシング
  21. 21. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (仮想サーバグループ) 21 ROS SLB VPC DNS ECS VSG Blue ① SLBは事前に作成し、ROSでVPC/ECS/仮想サーバグループを作成 仮想サーバグループを、 VSG Blueとして設定
  22. 22. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (仮想サーバグループ) 22 ROS SLB VPC DNS ECS VSG Blue ② 別のROSスタックで、 VPC/ECS/Vserver Groupを作成 ROS VPC ECS VSG Green
  23. 23. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (仮想サーバグループ) 23 ROS SLB VPC DNS ECS VSG Blue ③ バックエンドサーバをVSG Greenへ切り替え ROS VPC ECS VSG Green
  24. 24. ©︎ 2019 SB Cloud Corp. Blue Green Deployment (仮想サーバグループ) 24 ROS SLB VPC DNS ECS VSG Blue ④ 問題発生時には、バックエンドサーバをVSG Blueへ切り戻し ROS VPC ECS VSG Green
  25. 25. ©︎ 2019 SB Cloud Corp. Canary Release 25 ➢ プロダクトや新機能を一部のユーザに対して制限 ➢ 新機能に問題ない事を確認し段階的にリリース ➢ 不具合の影響範囲を一部ユーザのみに限定 ➢ 一部ユーザのアクセス先を既存環境へロールバック
  26. 26. ©︎ 2019 SB Cloud Corp. Canary Release 26 • ECSを起動するROSスタックを2つ作成 • SLBのWeightを調整しECSを追加 • 追加したECSに問題なければ、 Weight値を上げる ECS SLB 重みで振り分けの比率が 変動 Weight 100 ECS Weight 10
  27. 27. ©︎ 2019 SB Cloud Corp. Canary Release 27 ROS SLB VPC DNS ECS ① SLB/VPCは事前に作成、ROSからECSを作成しSLBへ追加 Weight 100 Weight 100Weight 100 現行のECSは、SLBの Weightを100に設定
  28. 28. ©︎ 2019 SB Cloud Corp. Canary Release 28 ROS SLB VPC DNS ECS ② 別のROSスタックで、ECSを作成 Weight 100 Weight 100Weight 100 ECS ROS
  29. 29. ©︎ 2019 SB Cloud Corp. Canary Release 29 ROS SLB VPC DNS ECS ③ Weight値を既存のECSより低く設定しSLBへ追加 Weight 100 Weight 100Weight 100 ECS ROS Weight 10
  30. 30. ©︎ 2019 SB Cloud Corp. Canary Release 30 ROS SLB VPC DNS ECS ④ 問題なければWeight値を100に設定し、残りのECSも追加 当初のECSはSLBから除外 Weight 100 Weight 100Weight 100 ECS ROS Weight 100 Weight 100 Weight 100
  31. 31. ©︎ 2019 SB Cloud Corp. 31 3. CI/CD構成例
  32. 32. ©︎ 2019 SB Cloud Corp. CI/CD 構成例 32 • テンプレートはGit等でバージョン管理 • WebhookでCIのジョブを実行 • ジョブからROSを実行し結果を通知 • コードレビュー後本番環境へデプロイ Test Environment ① Template file push ② Webhook ③ Build ⑥ 実行結果を通知 Production Environment ⑤ Test テスト、レビュー後 本番環境へデプロイ ④ テスト環境へデプロイ ⑧ 本番環境へデプロイ ⑦ コードレビュー
  33. 33. ©︎ 2019 SB Cloud Corp. 33 4. まとめ
  34. 34. ©︎ 2019 SB Cloud Corp. まとめ 34 ➢ ROSを使用する事でインフラ環境をコード化、デプロイの高速化 ➢ 仮想サーバグループでバランシングの簡略化 ➢ 加重ロードバランシングで、インスタンスごとにトラフィックを コントロール ➢ デプロイパターンを用いる事で、イミュータブルな環境でリリース ➢ テンプレートをレビュー/テストする事で、不具合の検知や、 ガバナンスを効かせたインフラ構成を定義
  35. 35. ©︎ 2019 SB Cloud Corp. Alibaba Cloudサービス紹介: https://jp.alibabacloud.com お問い合わせ: https://krs.bz/sbcloud/m/contact_jp

×