SlideShare a Scribd company logo
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
DevOps on Azure
高品質クラウドデザインを求めて
株式会社オルターブース
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
自己紹介
株式会社オルターブース
代表取締役 (金髪おにいさん)
小島 淳(Atsushi Kojima)
とりあえずなんでもやるフルスタックエン
ジニアと思っている方が多いですが本人的には
OSSなミドルウェア職人と思っていてア
プリケーション開発をバリバリしている人から見
ると物足りないしネットワーク超絶詳しい人
から見ても物足りないという中途半端な存在
を打破しようと日々精進しています。
Microsoft MVP(Microsoft Azure)だったりします。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
過去は過去。
未来は未来。
経歴なんてどうでもいい
のですが、一応面白いん
で読んでみてください。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
DevOpsとは何なのか
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
開発部門と運用部門が協力し、ビジネスリスクを軽減させる
ための仕組みのことです。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
原則1:無駄をなくす
原則2:品質を作り込む
原則3:知識を作り出す
原則4:デメリットを把握する
原則5:素早く提供する
原則6:人を尊重する
原則7:全体を最適化する
リーンソフトウェアの原則
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
定性(実現するために必要な質)
定量(定性を実現するために必要な量)
これ考えたことありますか?
DevOpsにおける目標設定
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
ビビらず本番へデプロイできる環境を提供し
システムライフサイクルの高品質化を目指す!
定性(実現するために必要な質)
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
10 deploy per day
※確実にデプロイ出来るというところが重要
定量(定性を実現するために必要な量)
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
DevOps on Azure
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
AzureでDevOpsを実践する場合の技術的Tips
Orchestration
Infrastructure as a Code
Immutable Infrastructure
CI/CD
今日はこれらの技術についてAzureで実践する場
合のノウハウをお伝えします。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Orchestration
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
複雑なコンピュータシステム/ミドルウェア/サー
ビスの配備/設定/管理の
自動化を指す用語。
Wikipediaより
オーケストレーションとは
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
仮想マシン
Storage
Blob
SQL
Database
Managed
Cache
こんな感じのシステムを一気につくってしまおう、そ
れがオーケストレーションです。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
従来の構築方法
仮想サーバーの作成
SQL Databaseの作成
ストレージの作成
キャッシュサービスの作成
一つ一つ作っていくとかなり面倒くさいうえに、
リソースがグルーピングされていないため管理が
非常に乱雑になる。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Group
Azure Resource Groupとは?
複数のサービスリソースを1つのグループで管理
し、構築や運用におけるコストを軽減することが
できる仕組みのことです。
オーケストレーションの基礎
になるサービスです。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Group
Azure管理ポータルから「リソース グループ」を
選択して、リソースグループを作成します。
このリソースグループ内にサービスで必要なリ
ソースを組み込んでいきます。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
リソースグループは
どうやって管理する?
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
Azure Resource Managerは、リソースグループをよ
り効率的にリソースを管理することができ、JSON
形式の単純なテンプレートを使ってデプロイ定義
を宣言することが出来ます。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
Azure Resource Managerではリソースのデプ
ロイ定義だけでなく、様々なコントロール
を管理することが可能です。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
ユーザーのAccess Controlが可能
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
テンプレートの基本構成
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-
01/deploymentTemplate.json#",
"contentVersion": "",
"parameters": { },
"variables": { },
"resources": [ ],
"outputs": { }
}
$schema JSONスキーマファイルの格納先
contentVersion このテンプレートのバージョン
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
parameters セクションでは、ユーザーがリソースをデプロイす
る際に入力できる値を指定します。
"parameters": {
"siteName": {
"type": "string"
},
"siteLocation": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"hostingPlanSku": {
"type": "string",
"allowedValues": [
"Free",
"Shared",
"Basic",
"Standard",
"Premium"
],
"defaultValue": "Free"
}
}
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
"parameters": {
"username": {
"type": "string"
},
"password": {
"type": "secureString"
}
},
"variables": {
"connectionString": "[concat('Name=',
parameters('username'), ';Password=',
parameters('password'))]"
}
variables セクションでは、テンプレートを簡略化するため
の変数を定義できます。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azure Resource Manager
resources セクションでは、デプロイまたは更新されるリソースを定
義します。このセクションで実際に展開するリソースを定義します。
"resources": [
{
"apiVersion": "<api-version-of-resource>",
"type": "<resource-provider-namespace/resource-type-name>",
"name": "<name-of-the-resource>",
"location": "<location-of-resource>",
"tags": "<name-value-pairs-for-resource-tagging>",
"dependsOn": [
"<array-of-related-resource-names>"
],
"properties": "<settings-for-the-resource>",
"resources": [
"<array-of-dependent-resources>"
]
}
]
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
VisualStudioからのデプロイ
リソースマネージャーはVisualStudioからも作成し、
簡単に配置することが出来ます。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
ARMテンプレートはGitHubで公開されているんで
是非活用してみてください。
https://github.com/Azure/azure-quickstart-templates
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Infrastructure as a Code
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
サーバー設定を全てコード化し保守性を高める技
術です。
DevOps=Infrastructure as a Codeという認識をされ
る方が多いです。
実際にはInfrastructureではなく”Configuration”とい
う意味合いが強いです。
Infrastructure as a Codeとは
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azureでよく使うツール
Chef
Ansible
PowerShell DSC
Puppet
それぞれ特徴はあるにせよ、サーバー構成をコー
ド化し管理するというところは同じです。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Azureではエージェントが用意されています。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
2つのデプロイ方法
IaC Server
Push
Pull
あるべき姿を定期的に確認する
あるべき姿を送り込む
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
宣言的構文
構成管理利用するコードは宣言的構文というシンプ
ルな命令語で構成されます。
package “httpd” do
action :install
end
service “httpd” do
action [ :enable, :start ]
end
Apacheをインストール
Apacheの自動起動と起動
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Immutable Infrastructure
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
システム運用のリスクは本番環境への変更オペ
レーションです。
本番環境ではすでにサービスが稼働しているため、
何かトラブルがあればサービスダウンの危険性が
高まります。解決策は意外と簡単で本番環境に
「触らない」ことです。
Immutable Infrastructreとは本番環境と全く同じ構
成のステージング環境を用意し、それらを交互に
入れ替えていく運用方法です。
Immutable Infrastructureとは
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
本番サーバー ステージングサーバー
変更オペレーション
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Blue Green Deployment
Cloud Service
Web Role
Web Role
Production
Staging
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Docker社が提供するホスト仮想コンテナ型アプリ
ケーションです。
Docker
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Dockerはホストカーネルを共有します。
なので、通常の仮想サーバーの様に扱うことは可
能ですが本来はサーバーミドルウェアの機能分離
を目的としています。
Docker
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Container
Azureの場合非常に簡単にContainer Service
を作ることが出来ます。
 仮想マシンに普通にDockerホストを作る
 Docker VM拡張機能を使用する
 Azure Container Service(Preview)
コンテナを
通常の仮想サーバーと
して扱う
☓ マイクロサービス
として扱う
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
CI/CD
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
継続的インテグレーションとは、継続的にビルドを実行しソフトウェア
をインテグレーションしたときに発生する様々な問題を早期に検出し、
フィードバックサイクルを短くしてソフトウェア開発の品質と生産性を
向上させる仕組みのことです。
継続的インテグレーション・デリバリ
デプロイ
コンパイ
ル
インスペ
クション
テスト
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
継続的インテグレーション・デリバリ
通常バグはテスト工程で発見されます。しかし継続的インテグ
レーション(以下CI)では、1日に何度でも好きなタイミングで
ビルドすることが可能なのでバグを見つけるタイミングが早くな
ります。結果、手戻りが少なくなり早期にバグを修正することに
より品質向上へつながります。
コミット コミット コミット コミット コミット
テスト
大量のバグ
発見
バグ
発見
コミット テスト
バグ
発見
コミット
通常の開発
CI
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
もっともっとDevOpsやるなら。。。。
Visual Studio Team Services
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
フルマネージドの
CIサービス
Coding IaC Orchestration Build Control
App / Service
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
なぜ失敗するのか
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
それなりに学習コストがかかる
Opsのコーディング能力には限界がある
Devの運用設計は壮大になりがち
結局のところ手動でサーバー構築できないと作
れない
障害対応時のコードメンテナンスが面倒
ブルーグリーンだけでなんとかしようとする
アラートトリガーのアクションを壮大にする
DevOpsの勘違いポイント
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
DevOpsの目的が技術展開のみである場合、エンジ
ニアの趣味で終わる。
壮大な夢が詰まった運用設計は非常に心惹かれる
が、一番重要なのは「何を成し得ようとしている
か」が見える仕組みである。
DevOpsの目的
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
参考になる書籍たち
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
告知
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
2/27〜2/28
マイクロソフト主催のDevOpsハッカソンが
開催されます。
DevOps ハッカソン
DevOpsにどっぷりハマる2日間。
チームを組んでDevOpsをハックしてみませんか?
参加資格は特になし。
DevもOpsも是非ご参加下さい!!
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Product Owner Ship 勉強会
POStudy
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
現在の日本のITサービス業界において、
「 プロダクトマネジメント 」という分野が
欠落しているとも言われています。
POStudyでは、いかに「 プロダクトオーナーシッ
プ 」を発揮するかについて、
普段の生活や仕事を通して自己成長を重ねていく
為のヒントを、
オフラインおよびオンラインの両方のチャネルを
通して提供していきます。
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
第二弾は
七つの習慣ボードゲーム
日程未定
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
15人〜20人参加者見込みが立てば
福岡でも開催します!
3月19日
福岡開催決定!!!
Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
おわり
後ほど禁断のLTやります

More Related Content

What's hot (20)

PDF
Interact2019 ws2019 s2d_IN05
Hiroshi Matsumoto
 
PDF
俺的 Build 2021 Update まとめ
Yui Ashikaga
 
PDF
次世代の企業ITインフラを支えるエンジニアとは
Trainocate Japan, Ltd.
 
PDF
Azure Arc 概要
Kazuki Takai
 
PDF
Azure IaaS 環境で安心してシステム開発する方法を教えます
wintechq
 
PDF
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Trainocate Japan, Ltd.
 
PDF
20170721 初めてのPowerShell
Trainocate Japan, Ltd.
 
PDF
クラウド案件の作り方 for azureしなの4周年
Kuniteru Asami
 
PDF
Tech Summit 2017 CLD007 現場目線で Azure IaaS を解説
wintechq
 
PDF
PHP on Windows Azure in Open Source Conference
Microsoft
 
PDF
Microsoft Azureから使うLinux
Trainocate Japan, Ltd.
 
PDF
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
de:code 2017
 
PPTX
db tech showcase 大阪 2014 C12 どうつかう?Couchbase Server
Kazumi Hirose
 
PDF
Azure Cosmos DB Always Encrypted
Yui Ashikaga
 
PDF
Azureの契約直前・直後に意識しておくこと10箇条
Yui Ashikaga
 
PDF
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
wintechq
 
PDF
Windows Server 2012 R2 Essentialsの魅力 - 手間暇かけずに活用しよう!
Satoru Nasu
 
PDF
active directory-slideshare
Trainocate Japan, Ltd.
 
PDF
S15 コマンドラインおよび API による Microsoft Azure の管理
Microsoft Azure Japan
 
PDF
2014年12月 ソネット bit-drive セミナー資料
wintechq
 
Interact2019 ws2019 s2d_IN05
Hiroshi Matsumoto
 
俺的 Build 2021 Update まとめ
Yui Ashikaga
 
次世代の企業ITインフラを支えるエンジニアとは
Trainocate Japan, Ltd.
 
Azure Arc 概要
Kazuki Takai
 
Azure IaaS 環境で安心してシステム開発する方法を教えます
wintechq
 
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Trainocate Japan, Ltd.
 
20170721 初めてのPowerShell
Trainocate Japan, Ltd.
 
クラウド案件の作り方 for azureしなの4周年
Kuniteru Asami
 
Tech Summit 2017 CLD007 現場目線で Azure IaaS を解説
wintechq
 
PHP on Windows Azure in Open Source Conference
Microsoft
 
Microsoft Azureから使うLinux
Trainocate Japan, Ltd.
 
[DO05] システムの信頼性を上げるための新しい考え方 SRE ( Site Reliability Engineering ) in Azure, o...
de:code 2017
 
db tech showcase 大阪 2014 C12 どうつかう?Couchbase Server
Kazumi Hirose
 
Azure Cosmos DB Always Encrypted
Yui Ashikaga
 
Azureの契約直前・直後に意識しておくこと10箇条
Yui Ashikaga
 
Azure仮想マシンと仮想ネットワークの基本 2016 ComCamp Fukuoka
wintechq
 
Windows Server 2012 R2 Essentialsの魅力 - 手間暇かけずに活用しよう!
Satoru Nasu
 
active directory-slideshare
Trainocate Japan, Ltd.
 
S15 コマンドラインおよび API による Microsoft Azure の管理
Microsoft Azure Japan
 
2014年12月 ソネット bit-drive セミナー資料
wintechq
 

Viewers also liked (9)

PPTX
日本で DevOps を ロケットスタートする方法
Puppet
 
PPTX
クラウドがシステム運用を変革させる
UNIRITA Incorporated
 
PDF
サイバー考古学@ささみ 2017.2.20
Masahiro Tabata
 
PDF
2014年06月27日 社内LT -これからITコミュニティに入る皆さんへ-
Aya Komuro
 
PDF
0からのウェブディレクション講座:設計編 v5.3
Yasuji Takase
 
PDF
Design Sprint 概要 / デザインスプリント概要
Takaaki Umada
 
PDF
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
 
PPT
IT Service Delivery Model Overview
Mark Peacock
 
PPTX
Linuxシステム管理入門
VirtualTech Japan Inc./Begi.net Inc.
 
日本で DevOps を ロケットスタートする方法
Puppet
 
クラウドがシステム運用を変革させる
UNIRITA Incorporated
 
サイバー考古学@ささみ 2017.2.20
Masahiro Tabata
 
2014年06月27日 社内LT -これからITコミュニティに入る皆さんへ-
Aya Komuro
 
0からのウェブディレクション講座:設計編 v5.3
Yasuji Takase
 
Design Sprint 概要 / デザインスプリント概要
Takaaki Umada
 
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
 
IT Service Delivery Model Overview
Mark Peacock
 
Linuxシステム管理入門
VirtualTech Japan Inc./Begi.net Inc.
 
Ad

Similar to DevOps on azure 高品質クラウドデザインを求めて (20)

PPTX
オレ流クラウドデザイン
Atsushi Kojima
 
PPTX
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
Takayuki Enomoto
 
PDF
Azuredevopsakskeda
Tsukasa Kato
 
PPTX
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
 
PDF
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
 
PDF
Automation with SoftLayer and Zabbix
softlayerjp
 
PDF
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
 
PDF
MicrosoftのOSSへの取り組み
Shinichiro Arai
 
PPT
Using Windows Azure
Shinji Tanaka
 
PDF
[Japan Tech summit 2017] DEP 005
Microsoft Tech Summit 2017
 
PDF
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
Hinemos
 
PDF
Docker on azure!進化していくcontainerを覗いてみよう!
Tsukasa Kato
 
PDF
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
Takahiro Imanaka
 
PDF
20150704 MS Azure最新 - innovation egg 第4回
Keiji Kamebuchi
 
PDF
About OpenStack DBaas (trove)
Ikuo Kumagai
 
PDF
オトナのDocker入門
Tsukasa Kato
 
PPTX
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
cloudconductor
 
PDF
Azure &lt;3 Openness
Keiji Kamebuchi
 
PDF
XDev2010 WindowsAzure
Shinichiro Isago
 
PDF
20150613 Azure最新Update
Keiji Kamebuchi
 
オレ流クラウドデザイン
Atsushi Kojima
 
Windowsシステムの AWS移行とMulti-AZ化 - JAWS DAYS 2015
Takayuki Enomoto
 
Azuredevopsakskeda
Tsukasa Kato
 
【Cloud Week 2015@Hokkaido University】Dockerとインフラ運用自働化とIoT
cloudconductor
 
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
 
Automation with SoftLayer and Zabbix
softlayerjp
 
AWSオンリーで実現するIoTクラウド基盤
Godai Nakamura
 
MicrosoftのOSSへの取り組み
Shinichiro Arai
 
Using Windows Azure
Shinji Tanaka
 
[Japan Tech summit 2017] DEP 005
Microsoft Tech Summit 2017
 
【HinemosWorld2014】B1-4_NTTデータ先端技術のOpenStack Hinemosソリューション
Hinemos
 
Docker on azure!進化していくcontainerを覗いてみよう!
Tsukasa Kato
 
DevOps時代到来!Engine YardのPaaSで変わるシステムの開発と運用のあり方
Takahiro Imanaka
 
20150704 MS Azure最新 - innovation egg 第4回
Keiji Kamebuchi
 
About OpenStack DBaas (trove)
Ikuo Kumagai
 
オトナのDocker入門
Tsukasa Kato
 
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
cloudconductor
 
Azure &lt;3 Openness
Keiji Kamebuchi
 
XDev2010 WindowsAzure
Shinichiro Isago
 
20150613 Azure最新Update
Keiji Kamebuchi
 
Ad

More from Atsushi Kojima (15)

PPTX
オペレーショナルエクセレンスの実現のためにまずやること
Atsushi Kojima
 
PDF
The Twelve Factorで実践するSaaS開発
Atsushi Kojima
 
PPTX
IT管理者が取り組むべき内製化を成功させるための技術戦略と文化醸成
Atsushi Kojima
 
PPTX
Cmc fukuoka
Atsushi Kojima
 
PPTX
Alternative Architecture DOJO
Atsushi Kojima
 
PPTX
[Devsumi2017]オルタナティブなチーム開発のすゝめ
Atsushi Kojima
 
PPTX
この先生きのこるためのメインフレーム
Atsushi Kojima
 
PPTX
機能的組織のすゝめ
Atsushi Kojima
 
PPTX
ビッグデータのクラウドデザイン
Atsushi Kojima
 
PPTX
Chaos Engineeringのススメ
Atsushi Kojima
 
PPTX
ガチリアルな修羅チーム開発
Atsushi Kojima
 
PPTX
裏クラウドデザインパターン
Atsushi Kojima
 
PPTX
Azureまるっと解説
Atsushi Kojima
 
PPTX
ふくあず#8
Atsushi Kojima
 
PPTX
PowerShell de Azure
Atsushi Kojima
 
オペレーショナルエクセレンスの実現のためにまずやること
Atsushi Kojima
 
The Twelve Factorで実践するSaaS開発
Atsushi Kojima
 
IT管理者が取り組むべき内製化を成功させるための技術戦略と文化醸成
Atsushi Kojima
 
Cmc fukuoka
Atsushi Kojima
 
Alternative Architecture DOJO
Atsushi Kojima
 
[Devsumi2017]オルタナティブなチーム開発のすゝめ
Atsushi Kojima
 
この先生きのこるためのメインフレーム
Atsushi Kojima
 
機能的組織のすゝめ
Atsushi Kojima
 
ビッグデータのクラウドデザイン
Atsushi Kojima
 
Chaos Engineeringのススメ
Atsushi Kojima
 
ガチリアルな修羅チーム開発
Atsushi Kojima
 
裏クラウドデザインパターン
Atsushi Kojima
 
Azureまるっと解説
Atsushi Kojima
 
ふくあず#8
Atsushi Kojima
 
PowerShell de Azure
Atsushi Kojima
 

DevOps on azure 高品質クラウドデザインを求めて

  • 1. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. DevOps on Azure 高品質クラウドデザインを求めて 株式会社オルターブース
  • 2. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 自己紹介 株式会社オルターブース 代表取締役 (金髪おにいさん) 小島 淳(Atsushi Kojima) とりあえずなんでもやるフルスタックエン ジニアと思っている方が多いですが本人的には OSSなミドルウェア職人と思っていてア プリケーション開発をバリバリしている人から見 ると物足りないしネットワーク超絶詳しい人 から見ても物足りないという中途半端な存在 を打破しようと日々精進しています。 Microsoft MVP(Microsoft Azure)だったりします。
  • 3. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 過去は過去。 未来は未来。 経歴なんてどうでもいい のですが、一応面白いん で読んでみてください。
  • 4. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. DevOpsとは何なのか
  • 5. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 開発部門と運用部門が協力し、ビジネスリスクを軽減させる ための仕組みのことです。
  • 6. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 原則1:無駄をなくす 原則2:品質を作り込む 原則3:知識を作り出す 原則4:デメリットを把握する 原則5:素早く提供する 原則6:人を尊重する 原則7:全体を最適化する リーンソフトウェアの原則
  • 7. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 定性(実現するために必要な質) 定量(定性を実現するために必要な量) これ考えたことありますか? DevOpsにおける目標設定
  • 8. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. ビビらず本番へデプロイできる環境を提供し システムライフサイクルの高品質化を目指す! 定性(実現するために必要な質)
  • 9. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 10 deploy per day ※確実にデプロイ出来るというところが重要 定量(定性を実現するために必要な量)
  • 10. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. DevOps on Azure
  • 11. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. AzureでDevOpsを実践する場合の技術的Tips Orchestration Infrastructure as a Code Immutable Infrastructure CI/CD 今日はこれらの技術についてAzureで実践する場 合のノウハウをお伝えします。
  • 12. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Orchestration
  • 13. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 複雑なコンピュータシステム/ミドルウェア/サー ビスの配備/設定/管理の 自動化を指す用語。 Wikipediaより オーケストレーションとは
  • 14. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 仮想マシン Storage Blob SQL Database Managed Cache こんな感じのシステムを一気につくってしまおう、そ れがオーケストレーションです。
  • 15. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 従来の構築方法 仮想サーバーの作成 SQL Databaseの作成 ストレージの作成 キャッシュサービスの作成 一つ一つ作っていくとかなり面倒くさいうえに、 リソースがグルーピングされていないため管理が 非常に乱雑になる。
  • 16. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Group Azure Resource Groupとは? 複数のサービスリソースを1つのグループで管理 し、構築や運用におけるコストを軽減することが できる仕組みのことです。 オーケストレーションの基礎 になるサービスです。
  • 17. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Group Azure管理ポータルから「リソース グループ」を 選択して、リソースグループを作成します。 このリソースグループ内にサービスで必要なリ ソースを組み込んでいきます。
  • 18. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. リソースグループは どうやって管理する?
  • 19. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager Azure Resource Managerは、リソースグループをよ り効率的にリソースを管理することができ、JSON 形式の単純なテンプレートを使ってデプロイ定義 を宣言することが出来ます。
  • 20. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager Azure Resource Managerではリソースのデプ ロイ定義だけでなく、様々なコントロール を管理することが可能です。
  • 21. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager ユーザーのAccess Controlが可能
  • 22. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager テンプレートの基本構成 { "$schema": "http://schema.management.azure.com/schemas/2015-01- 01/deploymentTemplate.json#", "contentVersion": "", "parameters": { }, "variables": { }, "resources": [ ], "outputs": { } } $schema JSONスキーマファイルの格納先 contentVersion このテンプレートのバージョン
  • 23. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager parameters セクションでは、ユーザーがリソースをデプロイす る際に入力できる値を指定します。 "parameters": { "siteName": { "type": "string" }, "siteLocation": { "type": "string" }, "hostingPlanName": { "type": "string" }, "hostingPlanSku": { "type": "string", "allowedValues": [ "Free", "Shared", "Basic", "Standard", "Premium" ], "defaultValue": "Free" } }
  • 24. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager "parameters": { "username": { "type": "string" }, "password": { "type": "secureString" } }, "variables": { "connectionString": "[concat('Name=', parameters('username'), ';Password=', parameters('password'))]" } variables セクションでは、テンプレートを簡略化するため の変数を定義できます。
  • 25. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azure Resource Manager resources セクションでは、デプロイまたは更新されるリソースを定 義します。このセクションで実際に展開するリソースを定義します。 "resources": [ { "apiVersion": "<api-version-of-resource>", "type": "<resource-provider-namespace/resource-type-name>", "name": "<name-of-the-resource>", "location": "<location-of-resource>", "tags": "<name-value-pairs-for-resource-tagging>", "dependsOn": [ "<array-of-related-resource-names>" ], "properties": "<settings-for-the-resource>", "resources": [ "<array-of-dependent-resources>" ] } ]
  • 26. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. VisualStudioからのデプロイ リソースマネージャーはVisualStudioからも作成し、 簡単に配置することが出来ます。
  • 27. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. ARMテンプレートはGitHubで公開されているんで 是非活用してみてください。 https://github.com/Azure/azure-quickstart-templates
  • 28. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Infrastructure as a Code
  • 29. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. サーバー設定を全てコード化し保守性を高める技 術です。 DevOps=Infrastructure as a Codeという認識をされ る方が多いです。 実際にはInfrastructureではなく”Configuration”とい う意味合いが強いです。 Infrastructure as a Codeとは
  • 30. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azureでよく使うツール Chef Ansible PowerShell DSC Puppet それぞれ特徴はあるにせよ、サーバー構成をコー ド化し管理するというところは同じです。
  • 31. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Azureではエージェントが用意されています。
  • 32. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 2つのデプロイ方法 IaC Server Push Pull あるべき姿を定期的に確認する あるべき姿を送り込む
  • 33. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 宣言的構文 構成管理利用するコードは宣言的構文というシンプ ルな命令語で構成されます。 package “httpd” do action :install end service “httpd” do action [ :enable, :start ] end Apacheをインストール Apacheの自動起動と起動
  • 34. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Immutable Infrastructure
  • 35. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. システム運用のリスクは本番環境への変更オペ レーションです。 本番環境ではすでにサービスが稼働しているため、 何かトラブルがあればサービスダウンの危険性が 高まります。解決策は意外と簡単で本番環境に 「触らない」ことです。 Immutable Infrastructreとは本番環境と全く同じ構 成のステージング環境を用意し、それらを交互に 入れ替えていく運用方法です。 Immutable Infrastructureとは
  • 36. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 本番サーバー ステージングサーバー 変更オペレーション
  • 37. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Blue Green Deployment Cloud Service Web Role Web Role Production Staging
  • 38. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Docker社が提供するホスト仮想コンテナ型アプリ ケーションです。 Docker
  • 39. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Dockerはホストカーネルを共有します。 なので、通常の仮想サーバーの様に扱うことは可 能ですが本来はサーバーミドルウェアの機能分離 を目的としています。 Docker
  • 40. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Container Azureの場合非常に簡単にContainer Service を作ることが出来ます。  仮想マシンに普通にDockerホストを作る  Docker VM拡張機能を使用する  Azure Container Service(Preview) コンテナを 通常の仮想サーバーと して扱う ☓ マイクロサービス として扱う
  • 41. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. CI/CD
  • 42. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 継続的インテグレーションとは、継続的にビルドを実行しソフトウェア をインテグレーションしたときに発生する様々な問題を早期に検出し、 フィードバックサイクルを短くしてソフトウェア開発の品質と生産性を 向上させる仕組みのことです。 継続的インテグレーション・デリバリ デプロイ コンパイ ル インスペ クション テスト
  • 43. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 継続的インテグレーション・デリバリ 通常バグはテスト工程で発見されます。しかし継続的インテグ レーション(以下CI)では、1日に何度でも好きなタイミングで ビルドすることが可能なのでバグを見つけるタイミングが早くな ります。結果、手戻りが少なくなり早期にバグを修正することに より品質向上へつながります。 コミット コミット コミット コミット コミット テスト 大量のバグ 発見 バグ 発見 コミット テスト バグ 発見 コミット 通常の開発 CI
  • 44. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. もっともっとDevOpsやるなら。。。。 Visual Studio Team Services
  • 45. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. フルマネージドの CIサービス Coding IaC Orchestration Build Control App / Service
  • 46. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. なぜ失敗するのか
  • 47. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. それなりに学習コストがかかる Opsのコーディング能力には限界がある Devの運用設計は壮大になりがち 結局のところ手動でサーバー構築できないと作 れない 障害対応時のコードメンテナンスが面倒 ブルーグリーンだけでなんとかしようとする アラートトリガーのアクションを壮大にする DevOpsの勘違いポイント
  • 48. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. DevOpsの目的が技術展開のみである場合、エンジ ニアの趣味で終わる。 壮大な夢が詰まった運用設計は非常に心惹かれる が、一番重要なのは「何を成し得ようとしている か」が見える仕組みである。 DevOpsの目的
  • 49. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 参考になる書籍たち
  • 50. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 告知
  • 51. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 2/27〜2/28 マイクロソフト主催のDevOpsハッカソンが 開催されます。 DevOps ハッカソン DevOpsにどっぷりハマる2日間。 チームを組んでDevOpsをハックしてみませんか? 参加資格は特になし。 DevもOpsも是非ご参加下さい!!
  • 52. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. Product Owner Ship 勉強会 POStudy
  • 53. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 現在の日本のITサービス業界において、 「 プロダクトマネジメント 」という分野が 欠落しているとも言われています。 POStudyでは、いかに「 プロダクトオーナーシッ プ 」を発揮するかについて、 普段の生活や仕事を通して自己成長を重ねていく 為のヒントを、 オフラインおよびオンラインの両方のチャネルを 通して提供していきます。
  • 54. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved.
  • 55. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 第二弾は 七つの習慣ボードゲーム 日程未定
  • 56. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. 15人〜20人参加者見込みが立てば 福岡でも開催します! 3月19日 福岡開催決定!!!
  • 57. Copyright © 2015-2015 ALTERBOOTH inc. All Rights Reserved. おわり 後ほど禁断のLTやります