alibaba...

25
Alibaba CloudでCI/CDを実現する。 クラウドでのデプロイ方法をマスターする SBクラウド株式会社 プロダクト技術部 2017年6月6, 23日 セミナー資料

Upload: sb

Post on 21-Jan-2018

424 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

SBクラウド株式会社プロダクト技術部

2017年6月6, 23日 セミナー資料

Page 2: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

本日のアジェンダ

1. オープニング

2. クラウド上でのデプロイパターン解説a. 通常デプロイ型

b. イメージデプロイ型

c. ハイブリッドデプロイ型

3. Alibaba Cloud上で、CI/CDプロセスでイメージ作成a. CI/CDについて

b. デモ:カスタムイメージを自動で作成

4. 質疑応答

5. クロージング

Page 3: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

Who are you?

名前:森 真也

所属:SBクラウド プロダクト技術部

ロール:クラウドアーキテクト。

    Alibaba Cloudの技術検証やセミナー開催など。

最近:

 料理インスタグラマー、

 技術的なことだとTerraformとかDevOpsツールに興味

Page 4: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

デプロイどうやってますか?うまくいっていますか?

Page 5: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

デプロイに関する悩みは尽きない

● 新しいアプリケーションはどうやって配置する?

● rsyncで同期?git pull? 何かツール?

● ミドルウェアのバージョンアップなど大きな作業をしたいけど不

安でできない

● ロールバックできる状態になっていない

● デプロイ作業に工数と時間がかかりすぎている

● デプロイ作業をミスしそうで怖い

Page 6: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

クラウド上での代表的なデプロイパターン

● 通常デプロイパターン○ オンプレ時代と同様の方式

○ 既存のサーバに変更をしていく

● イメージデプロイパターン○ 新しい変更を反映したイメージを作成

○ デプロイ毎に古いサーバは捨てる (Immutableの考え方)

● ハイブリッドデプロイパターン○ 通常とイメージデプロイのハイブリッド

○ アプリのデプロイだけ通常型でおこなうなど

Page 7: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

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)

通常のデプロイパターン イメージでのデプロイパターン

Page 8: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

イメージとは。Alibaba Cloudでのイメージは?

1. パブリックイメージAlibaba Cloudが標準で提供しているイメージ。

たとえばUbuntuやCentOS、Windowsサーバなど

2. カスタムイメージ既存のECSインスタンスを基に作成したイメージ。

3. シェアイメージ他のAlibaba Cloudユーザ共有されたイメージ

Page 9: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

カスタムイメージを作成するまで

1. サーバを購入する

2. 起動するまで待つ

3. サーバのセットアップをするa. ミドルウェアのインストール

b. ミドルウェアの設定ファイルの配置

c. アプリケーションのデプロイ

d. アプリケーションの設定ファイルの配置

e. などなど…

4. イメージを作る

5. 完成するまでひたすら待つ

かなり大変。時間がかかる・・・

Page 10: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

Alibaba Cloudでカスタムイメージの自動作成をやってみよう (CI/CDをやってみよう)

Page 11: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

継続的インテグレーション(CI) とは

継続的インテグレーションとは、開発者が自分のコード変更した場

合に、その後に自動化されたビルドとテストを実行する DevOps ソ

フトウェア開発の手法のこと。

自動でビルドとテストを行うことで、品質の確認を確実に行うこと

が可能になる、というもの。

背景知識

Page 12: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

継続的デリバリー(CD) とは

継続的デリバリーとは、DevOps ソフトウェア開発手法の 1 つで、

コード変更行われた場合に、自動的にビルド、テスト、および本番

へのリリース準備が実行されるというもの。

これにより、ソフトウェアの変更はいつでもリリース可能な状態とな

り、すばやい改善やリリースが行えるようになる、というもの。

背景知識

Page 13: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

CI/CDの概念図

レポジトリ ビルド・テスト(単体テスト)

検証環境(総合テスト)

本番環境

コミット

継続的インテグレーション

継続的デリバリー デプロイメント

継続的デプロイメント

リリース可能な状態

自動化 自動化

Page 14: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

今回の例に落とし込むと

コミットするアプリを変更する

変更が正しいかテストする

カスタムイメージを作る

本番環境

コミット

継続的インテグレーション

継続的デリバリー デプロイメント

継続的デプロイメント

リリース可能な状態

自動化 自動化

Page 15: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

デモンストレーション

【本日のデモ内容】

アプリケーションのコードを修正したら、

その修正したコードを反映した

ECSのカスタムイメージを自動で作成する。

どうやって。。。?

Page 16: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

【復習】Alibaba Cloud API

Alibaba Cloudでは、アプリケーション開発者および管理者向けに

APIやSDK、CLIツールをご用意しています。

Alibaba CloudAPI

コンソール画面の裏側も・・・

操作

結果

2017年5月セミナー内容

Page 17: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

前回のセミナーの内容が気になる方へ

SBクラウドのHPで資料公開中!!

https://www.sbcloud.co.jp にアクセスしよう。

● 5月セミナー:Alibaba Cloud APIを操れ!

       インフラ構築をプログラムで制御する

● 4月セミナー:新機能体験!

       RAMによる権限管理と

       AutoScalingによるサービス継続性の実現

Page 18: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

デモンストレーション

【本日のデモ内容】

アプリケーションのコードを修正したら、

その修正したコードを反映した

ECSのカスタムイメージを自動で作成する。

Page 19: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

デモの構成図

アプリのテスト

検証環境へ反映

イメージ作成

連携

最新アプリを反映 イメージ作成依頼(APIで操作)

コミットアプリの変更

ステップ1 ステップ2 ステップ3

AlibabaCloud ECS検証用環境

イメージ作成

開発者

GitHub

イメージ名: (ha-cicd-demo-日付)

Page 20: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

どんなイメージを作ればいいか

OSの基本設定

プログラミング言語のインストール

ミドルウェアのインストール

アプリケーションのインストール

OSの基本設定

プログラミング言語のインストール

ミドルウェアのインストール

アプリケーションのインストール

OSの基本設定

プログラミング言語のインストール

ミドルウェアのインストール

アプリケーションのインストール

全部入りイメージ アプリ以外の全部入りイメージ

最小限イメージ

Page 21: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

どんなイメージを作ればいいか

メリット デメリット

全部入りイメージ再現性が高い。インスタンスの購入から動作可能までの時間が短い。

イメージの作成に時間がかかる。小さな修正でもイメージの作り直しが発生する。

アプリ以外の全部入りイメージ

アプリのデプロイのみですぐに動作可能。

最小限イメージサーバ内のミドルウェアなどの設定が容易に可能。

インスタンス購入から動作可能になるまでの時間が長い。

Page 22: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

まとめ

● クラウド環境では「開発→テスト→デプロイ」のサイクルをより

高速にまわすことができる。

● クラウドのメリットを活かしたデプロイの方法を選択することもで

きる。どのデプロイ方法がいいかは用途や体制次第です。

● それぞれののメリットとデメリットを意識しよう。

● 現在のデプロイに関する課題点を振り返ってみましょう。

Page 23: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

参考資料

● 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

Page 24: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

SBクラウド 公式Twitter/Facebook最新機能やイベントなど配信してます!

@sbcloud_pr facebook.com/SBCloud/

Page 25: Alibaba CloudでCI/CDを実現する。クラウドでのデプロイ方法をマスターする

SBCloudエンジニアブログはじめました

http://techblog.sbcloud.co.jp にアクセス!!