Transcript
Page 1: Windows Azureを利用したDevOps入門

Windows Azureを利用したDevOps入門

Global Windows Azure Boot Camp 2014 in Japan

2014/3/29

Page 2: Windows Azureを利用したDevOps入門

自己紹介

Page 3: Windows Azureを利用したDevOps入門

菊田洋一

Twitter:@kikutaro_

Blog:Challenge Java EE !http://kikutaro777.hatenablog.com/

(株)構造計画研究所

仕事:コンフィグレータを利用した販売管理Sys開発

自己紹介

趣味:堀北真希さん(ファンクラブ No.11)

Page 4: Windows Azureを利用したDevOps入門

発表経緯

Page 5: Windows Azureを利用したDevOps入門

_人人人人人人人人_> 割と無茶ぶり!< ̄Y^Y^ Y^Y^Y^Y ̄

発表経緯今年のはじめ、Windows Azureの無料評価版に登録

Microsoft Windows Azure MVPな方からの依頼は…断れない(>_<;

1カ月ちょっと経過

Page 6: Windows Azureを利用したDevOps入門

発表経緯Windows Azure 利用経験:無料期間1カ月+α

Azure Expertな方々の発表に紛れてごめんなさい・゚・(ノД`)・゚・。

本日参加されてる方々の中でAzureをまだ実際には触っていない方や、登録後にどんなことをしようか?と思っている方へ少しでも参考になれば幸いです

Page 7: Windows Azureを利用したDevOps入門

アジェンダ

Page 8: Windows Azureを利用したDevOps入門

アジェンダ

DevOps

My case

Visual Studio Visual StudioOnline

Jenkins

Chef Knife Azure

VM Depot

PowerShell

Tool

Windows Azure

Page 9: Windows Azureを利用したDevOps入門

DevOpsとは?

Page 10: Windows Azureを利用したDevOps入門

・Velocity2009でFlickr社が発表・開発(Dev)&運用(Ops)・ツール&文化

DevOpsとは?

1.Automated infrastructure2.Shared version control3.One step build and deploy4.Feature flags5.Shared metrics6.IRC and IM robots

http://www.publickey1.jp/blog/11/devops.htmlhttp://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

1.Respect2.Trust3.Healthy attitude about

failure4.Avoiding Blame

今日は主にツールの話

Page 11: Windows Azureを利用したDevOps入門

Infrastructure

Chef

CapistranoPuppet

Fabric

Ansible

自分達の環境では何をどう組合せるのが良いのか?実際に色々と触って試してみないとわかりにくい面も

DevOpsとは?DevOpsをキーワードとしたツールが現在では様々存在

OrchestrationDevOpsTool

TestxUnitSelenium

RSpecserverspec

Jenkins

CIBamboo

Travis CI BuildHive

drone.ioBuild

Package

Maven

NuGet

Gemsbt

rake

Gradle

Page 12: Windows Azureを利用したDevOps入門

My Case

Page 13: Windows Azureを利用したDevOps入門

My Case

ビルド職人のみがビルド可能(環境構築も)

xxx.dll

yyy.dll

zzz.dll

ライブラリの依存関係がカオス

自動テストは一切ないリグレッションは人海戦術

ライブラリアップロード

ライブラリ案内メール

モジュール公開手作業

少し前…

Page 14: Windows Azureを利用したDevOps入門

VM Depotとは?

Code Repository

Maven Internal Repository ビルド成果物管理

ユニットテストインテグレーションテスト

試験環境APサーバ

デプロイ

CIサーバ

GlassFish

最近

ビルド/テスト結果通知モジュールアップ結果通知

デプロイ結果通知

My Case

Page 15: Windows Azureを利用したDevOps入門

VM Depotとは?

ビルド/テスト結果通知モジュールアップ結果通知

デプロイ結果通知

Code Repository

Maven Internal Repository ビルド成果物管理

ユニットテストインテグレーションテスト

試験環境APサーバ

デプロイ

CIサーバ

GlassFish

最近

ビルドツールで依存関係管理

通知モジュール自動登録

自動デプロイ

My Case自動テストで負担軽減

Page 16: Windows Azureを利用したDevOps入門

VM Depotとは?

・環境構築が人依存のまま

○mazonといって書籍サービスと間違えちゃう上の方々もAzureなら説得して伝わるんじゃ…!

課題・ツールが浸透しない

他プロジェクトでは使われない… 手軽に触れるように

環境構築も自動化

Jenkins知らないしメリットあるの?

やってみようとしたけどExcel手順書メンテされてないじゃんー

Windows

My Case

Page 17: Windows Azureを利用したDevOps入門

AzureとDevOps

Page 18: Windows Azureを利用したDevOps入門

VM Depotとは?

×Windows Azure

Visual StudioVisual Studio

Online

Jenkins

Chef

Windows Azure

Knife Azure

VM Depot

AzureとDevOps

Windows Azure

コミット→ビルド→デプロイ

CI環境の簡単構築

Azure仮想マシンの簡単環境構築

PowerShell

CLI

Windows Azure

Windows Azure

×

× ×

×

××

Page 19: Windows Azureを利用したDevOps入門

VM Depotとは?

×Windows Azure

Visual StudioVisual Studio

Online

Jenkins

Chef

Windows Azure

Knife Azure

VM Depot

Windows Azure

コミット→ビルド→デプロイ

CI環境の簡単構築

Azure仮想マシンの簡単環境構築

PowerShell

CLI

Windows Azure

Windows Azure

×

× ×

×

××

AzureとDevOps

Page 20: Windows Azureを利用したDevOps入門

VM Depotとは? ×Windows

AzureVisual Studio

Visual StudioOnline×

Visual Studio Online・クラウドベースのALM(Application Lifecycle Management)サービス・旧 Team Foundation Service・Basic / Professional / Advanced・Basicなら5ユーザまで無料・ブラウザでの開発環境「Monaco」

Page 21: Windows Azureを利用したDevOps入門

VM Depotとは? ×Windows

AzureVisual Studio

Visual StudioOnline×

Visual StudioVisual Studio

OnlineWindows

Azure

チェックインコミット

デプロイ

ビルド

Webサイト

コミット→ビルド→デプロイを簡単に実現

Page 22: Windows Azureを利用したDevOps入門

チームプロジェクト作成~ASP.NET MVC4のテンプレート作成

Visual StudioVisual Studio

Online

チームプロジェクト作成

ASP.NET MVC4

のテンプレ作成

チェックイン

Page 25: Windows Azureを利用したDevOps入門

Windows AzureでWebサイト作成

Windows Azure

Visual StudioVisual Studio

Online

Webサイト作成

Page 28: Windows Azureを利用したDevOps入門

ビルドトリガーの設定

Windows Azure

Visual StudioVisual Studio

Online

ビルドトリガー設定

Page 30: Windows Azureを利用したDevOps入門

自動ビルド~自動デプロイ

Windows Azure

Visual StudioVisual Studio

Online

自動ビルドチェックイン

自動デプロイ

Page 33: Windows Azureを利用したDevOps入門

VM Depotとは? ×Windows

AzureVisual Studio

Visual StudioOnline×

Visual StudioVisual Studio

OnlineWindows

Azure

Monacoを利用すると

ブラウザで修正

Page 36: Windows Azureを利用したDevOps入門

×Windows Azure

Visual StudioVisual Studio

Online

Jenkins

Chef

Windows Azure

Knife Azure

VM Depot

Windows Azure

コミット→ビルド→デプロイ

CI環境の簡単構築

Azure仮想マシンの簡単環境構築

PowerShell

CLI

Windows Azure

Windows Azure

×

× ×

×

××

AzureとDevOps

Page 37: Windows Azureを利用したDevOps入門

JenkinsWindows

AzureVM Depot

VM Depotとは?・Microsoft Open Technologiesによるサービス・仮想マシンイメージのカタログ・Windows Azureから簡単に利用可能

http://vmdepot.msopentech.com/List/Index

× ×

Page 38: Windows Azureを利用したDevOps入門

JenkinsWindows

AzureVM Depot

Jenkins

Mantis

Redmine

Tomcat

GitLab

Node.js

Ruby Stack

Apache SoIr

WildFly

WordPress

DrupalOpenERP

Django Stack

・アプリを簡単インストールするパッケージを提供してる企業・Windows Azure向けのVMイメージを多数提供

× ×

Page 39: Windows Azureを利用したDevOps入門

JenkinsWindows

AzureVM Depot

・OSSの継続的インテグレーション(CI : Continuous Integration)ツール・豊富なプラグイン(600以上)・開発者は日本の方(川口耕介さん)

JavaのPaaSとしてはCloudBeesが熱そう

http://jenkins-ci.org/

× ×

Page 40: Windows Azureを利用したDevOps入門

VM DepotからJenkinsを含むイメージをコピー

JenkinsWindows Azure Storage

Copy

Page 42: Windows Azureを利用したDevOps入門

コピーしたイメージから仮想マシン作成

Windows Azure StorageVM作成

Page 44: Windows Azureを利用したDevOps入門

仮想マシンのサービスへアクセス

利用可能!

Page 46: Windows Azureを利用したDevOps入門

でも今日はAzureのイベントですから(`・ω・´)キリッ

でもそれ、Windows Azureじゃなくてもいいよね?

java –jar Jenkins.war

はい、Jenkinsサイトからwar落としてjavaコマンド実行で簡単に使えます

Page 47: Windows Azureを利用したDevOps入門

VM Depotとは?

×Windows Azure

Visual StudioVisual Studio

Online

Jenkins

Chef

Windows Azure

Knife Azure

VM Depot

Windows Azure

コミット→ビルド→デプロイ

CI環境の簡単構築

Azure仮想マシンの簡単環境構築

PowerShell

CLI

Windows Azure

Windows Azure

×

× ×

×

××

AzureとDevOps

Page 48: Windows Azureを利用したDevOps入門

VM Depotとは?Windows

AzurePowerShell×

Windows Azure PowerShell・PowerShellコマンドレットでAzureを操作・Objectやその配列をパイプ処理できる

例)VMイメージの一覧取得Get-AzureVMImage

VMイメージ名にUbuntuを含む一覧取得Get-AzureVMImage | where {$_.ImageName -like "*Ubuntu*"}

直近3日に発行されたVMイメージの一覧取得Get-AzureVMImage | where {((Get-Date) - $_.PublishedDate).Days -le 3}

Page 49: Windows Azureを利用したDevOps入門

VM Depotとは?Windows

Azure × CLI

Command Line Inteface・Windows/Mac/Linuxで利用可能

例)VMイメージの一覧取得azure vm image list

VMイメージ名にUbuntuを含む一覧取得azure vm image list | grep “Ubuntu”

例)VMイメージの一覧取得azure vm image list

VMイメージ名にUbuntuを含む一覧取得azure vm image list | findstr “Ubuntu”

Page 50: Windows Azureを利用したDevOps入門

VM Depotとは?

×Windows Azure

Visual StudioVisual Studio

Online

Jenkins

Chef

Windows Azure

Knife Azure

VM Depot

Windows Azure

コミット→ビルド→デプロイ

CI環境の簡単構築

Azure仮想マシンの簡単環境構築

PowerShell

CLI

Windows Azure

Windows Azure

×

× ×

×

××

AzureとDevOps

Page 51: Windows Azureを利用したDevOps入門

VM Depotとは?Windows

AzureChef Knife Azure

・Chef社(旧OpsCode社)開発のツール・マシンの構築や設定を自動化・Infrastructure as Code・日本語の本も今年何冊か出る(らしい)http://www.getchef.com/chef/

Chef Server

nodeworkstation

× ×

伊藤直也さん著入門Chef Solo - Infrastructure as Code

Page 52: Windows Azureを利用したDevOps入門

VM Depotとは?Windows

AzureChef Knife Azure

knife azure

・knifeのプラグイン・gem install knife-azureでインストール

× ×

Page 53: Windows Azureを利用したDevOps入門

VM Depotとは?Windows

AzureChef Knife Azure

knife azure

JavaのCookbook

GlassFishのCookbook

node

PowershellやCLI同様に仮想マシン構築ができる+アプリケーションインストールや環境設定まで自動化可能

例えばknife-azureでUbuntu仮想VMを構築してそのVMにJavaやGlassFishなどをインストール

× ×

Page 54: Windows Azureを利用したDevOps入門

Knife Azureで仮想マシン構築

knife azure

Page 58: Windows Azureを利用したDevOps入門

nodeにChef-Soloのインストール

knife prepare

Page 61: Windows Azureを利用したDevOps入門

Chef-Solo&CookbookでJavaのインストール

Java 8でましたが今回はJava 7です…

JavaのCookbook

knife solo cook

Page 65: Windows Azureを利用したDevOps入門

VM Depotとは?Windows

AzureChef Knife Azure

・今回はコミュニティのCookbookを利用・APサーバであるGlassFishなどもインストールできました・自前で定義を準備すればインストール&設定まで自動化

http://community.opscode.com/cookbooks/glassfishhttp://community.opscode.com/cookbooks/java

× ×

Page 66: Windows Azureを利用したDevOps入門

でも今日はAzureのイベントですから(`・ω・´)キリッ

でもそれ、Windows Azureじゃなくてもいいよね?

はい、Vagrantなどでローカルに仮想マシン立ててChefをお手軽に試せます

Page 67: Windows Azureを利用したDevOps入門

VM Depotとは?ブログにも書いてます

はじめてのWindows Azure ~Chefのプラグインknife-azureの設定~http://kikutaro777.hatenablog.com/entry/2014/01/08/235216

はじめてのWindows Azure ~knife-azureでVMの作成・削除~http://kikutaro777.hatenablog.com/entry/2014/01/09/235022

ChefのCookbookでJavaとGlassFishをインストールしてみましたhttp://kikutaro777.hatenablog.com/entry/2014/01/13/233106

はじめてのWindows Azure ~VM DepotでJenkinsサーバを簡単構築~http://kikutaro777.hatenablog.com/entry/2014/01/15/122405

Visual Studio OnlineからチェックイントリガーでWindows Azureへ自動デプロイhttp://kikutaro777.hatenablog.com/entry/2014/03/05/235323

knife-azureのインストールhttp://kikutaro777.hatenablog.com/entry/2014/03/11/222646

Page 68: Windows Azureを利用したDevOps入門

まずはWindows Azureの無料評価版に登録!

Page 69: Windows Azureを利用したDevOps入門

Windows Azureを利用したDevOps入門

ご清聴ありがとうございましたm(_ _)m

Global Windows Azure Boot Camp 2014 in Japan

2014/3/29


Top Related