alibaba...
TRANSCRIPT
Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする
SBクラウド株式会社プロダクト技術部
2017年6月6, 23日 セミナー資料
本日のアジェンダ
1. オープニング
2. クラウド上でのデプロイパターン解説a. 通常デプロイ型
b. イメージデプロイ型
c. ハイブリッドデプロイ型
3. Alibaba Cloud上で、CI/CDプロセスでイメージ作成a. CI/CDについて
b. デモ:カスタムイメージを自動で作成
4. 質疑応答
5. クロージング
Who are you?
名前:森 真也
所属:SBクラウド プロダクト技術部
ロール:クラウドアーキテクト。
Alibaba Cloudの技術検証やセミナー開催など。
最近:
料理インスタグラマー、
技術的なことだとTerraformとかDevOpsツールに興味
デプロイどうやってますか?うまくいっていますか?
デプロイに関する悩みは尽きない
● 新しいアプリケーションはどうやって配置する?
● rsyncで同期?git pull? 何かツール?
● ミドルウェアのバージョンアップなど大きな作業をしたいけど不
安でできない
● ロールバックできる状態になっていない
● デプロイ作業に工数と時間がかかりすぎている
● デプロイ作業をミスしそうで怖い
クラウド上での代表的なデプロイパターン
● 通常デプロイパターン○ オンプレ時代と同様の方式
○ 既存のサーバに変更をしていく
● イメージデプロイパターン○ 新しい変更を反映したイメージを作成
○ デプロイ毎に古いサーバは捨てる (Immutableの考え方)
● ハイブリッドデプロイパターン○ 通常とイメージデプロイのハイブリッド
○ アプリのデプロイだけ通常型でおこなうなど
Instance A(Image ver.1)
Instance B(Image ver.1)
Instance C(Image ver.2)
Instance D(Image ver.2)
Load Balancer
Load Balancer
Load Balancer
Instance A(Image ver.1)
Instance B(Image ver.1)
Instance C(Image ver.2)
Instance D(Image ver.2)
Load Balancer
Instance A(App ver.1)
Instance B(App ver.1)
Instance A(App ver.2)
Instance B(App ver.2)
通常のデプロイパターン イメージでのデプロイパターン
イメージとは。Alibaba Cloudでのイメージは?
1. パブリックイメージAlibaba Cloudが標準で提供しているイメージ。
たとえばUbuntuやCentOS、Windowsサーバなど
2. カスタムイメージ既存のECSインスタンスを基に作成したイメージ。
3. シェアイメージ他のAlibaba Cloudユーザ共有されたイメージ
カスタムイメージを作成するまで
1. サーバを購入する
2. 起動するまで待つ
3. サーバのセットアップをするa. ミドルウェアのインストール
b. ミドルウェアの設定ファイルの配置
c. アプリケーションのデプロイ
d. アプリケーションの設定ファイルの配置
e. などなど…
4. イメージを作る
5. 完成するまでひたすら待つ
かなり大変。時間がかかる・・・
Alibaba Cloudでカスタムイメージの自動作成をやってみよう (CI/CDをやってみよう)
継続的インテグレーション(CI) とは
継続的インテグレーションとは、開発者が自分のコード変更した場
合に、その後に自動化されたビルドとテストを実行する DevOps ソ
フトウェア開発の手法のこと。
自動でビルドとテストを行うことで、品質の確認を確実に行うこと
が可能になる、というもの。
背景知識
継続的デリバリー(CD) とは
継続的デリバリーとは、DevOps ソフトウェア開発手法の 1 つで、
コード変更行われた場合に、自動的にビルド、テスト、および本番
へのリリース準備が実行されるというもの。
これにより、ソフトウェアの変更はいつでもリリース可能な状態とな
り、すばやい改善やリリースが行えるようになる、というもの。
背景知識
CI/CDの概念図
レポジトリ ビルド・テスト(単体テスト)
検証環境(総合テスト)
本番環境
コミット
継続的インテグレーション
継続的デリバリー デプロイメント
継続的デプロイメント
リリース可能な状態
自動化 自動化
今回の例に落とし込むと
コミットするアプリを変更する
変更が正しいかテストする
カスタムイメージを作る
本番環境
コミット
継続的インテグレーション
継続的デリバリー デプロイメント
継続的デプロイメント
リリース可能な状態
自動化 自動化
デモンストレーション
【本日のデモ内容】
アプリケーションのコードを修正したら、
その修正したコードを反映した
ECSのカスタムイメージを自動で作成する。
どうやって。。。?
【復習】Alibaba Cloud API
Alibaba Cloudでは、アプリケーション開発者および管理者向けに
APIやSDK、CLIツールをご用意しています。
Alibaba CloudAPI
コンソール画面の裏側も・・・
操作
結果
2017年5月セミナー内容
前回のセミナーの内容が気になる方へ
SBクラウドのHPで資料公開中!!
https://www.sbcloud.co.jp にアクセスしよう。
● 5月セミナー:Alibaba Cloud APIを操れ!
インフラ構築をプログラムで制御する
● 4月セミナー:新機能体験!
RAMによる権限管理と
AutoScalingによるサービス継続性の実現
デモンストレーション
【本日のデモ内容】
アプリケーションのコードを修正したら、
その修正したコードを反映した
ECSのカスタムイメージを自動で作成する。
デモの構成図
アプリのテスト
検証環境へ反映
イメージ作成
連携
最新アプリを反映 イメージ作成依頼(APIで操作)
コミットアプリの変更
ステップ1 ステップ2 ステップ3
AlibabaCloud ECS検証用環境
イメージ作成
開発者
GitHub
イメージ名: (ha-cicd-demo-日付)
どんなイメージを作ればいいか
OSの基本設定
プログラミング言語のインストール
ミドルウェアのインストール
アプリケーションのインストール
OSの基本設定
プログラミング言語のインストール
ミドルウェアのインストール
アプリケーションのインストール
OSの基本設定
プログラミング言語のインストール
ミドルウェアのインストール
アプリケーションのインストール
全部入りイメージ アプリ以外の全部入りイメージ
最小限イメージ
どんなイメージを作ればいいか
メリット デメリット
全部入りイメージ再現性が高い。インスタンスの購入から動作可能までの時間が短い。
イメージの作成に時間がかかる。小さな修正でもイメージの作り直しが発生する。
アプリ以外の全部入りイメージ
アプリのデプロイのみですぐに動作可能。
ー
最小限イメージサーバ内のミドルウェアなどの設定が容易に可能。
インスタンス購入から動作可能になるまでの時間が長い。
まとめ
● クラウド環境では「開発→テスト→デプロイ」のサイクルをより
高速にまわすことができる。
● クラウドのメリットを活かしたデプロイの方法を選択することもで
きる。どのデプロイ方法がいいかは用途や体制次第です。
● それぞれののメリットとデメリットを意識しよう。
● 現在のデプロイに関する課題点を振り返ってみましょう。
参考資料
● Alibaba Cloud公式: インスタンスからカスタムイメージを作成する○ https://jp.aliyun.com/help/doc-detail/35109.htm
● Alibaba CloudとWerckerでCI/CDパイプラインを作成する○ http://techblog.sbcloud.co.jp/2017/06/23/cicd-with-alibabacloud-and-wercker/
● Alibaba Cloud、AutoScalingを使ってブルーグリーンデプロイメントを行う○ http://qiita.com/mosuke5/items/43044a0aabb8dde0841a
● Continuous Integration○ https://martinfowler.com/articles/continuousIntegration.html
● Continuous Delivery○ https://martinfowler.com/bliki/ContinuousDelivery.html
SBクラウド 公式Twitter/Facebook最新機能やイベントなど配信してます!
@sbcloud_pr facebook.com/SBCloud/
SBCloudエンジニアブログはじめました
http://techblog.sbcloud.co.jp にアクセス!!