Upload
-
View
322
Download
1
Embed Size (px)
Citation preview
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
OSSを使ったAzureでのDevOps
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
自己紹介
• 荒井 裕貴(あらいひろき)
– クリエーションライン株式会社のChefエンジニア
– Chef Serverの設計・導入支援
– 講演、トレーニング
– COOKBOOK開発(Linux / Windows)
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
会社紹介
クリエーションライン株式会社通称:CL (しーえる)
・プライベートクラウド基盤構築
・パブリッククラウドのコンサル
・Management Service Provider
OSS、クラウド系に強いSIer
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
Chefについて
• 構成管理ツールChefの開発元の会社
• 8年以上DevOpsの世界を牽引
• 日本でもDevOpsのツールといえばChefで認知
• DevOpsのインフラを支える製品が多数
– Chef Server
– Chef Anaytics
– Chef Delivery
– Chef Compliance
• クリエーションラインはChef社のパートナー
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
de:code2016
de:code 2016に海外からDevOpsの黒船が襲来
Sam Guckenheimer (Microsoft Corporation)
James Casey (Chef)
Aaron Williams (Mesosphere)
Mitchell Hashimoto (Hashicorp)
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
目次
• DevOpsについて
• DevOpsの実践
• アプローチや文化の話
• DevOps on Azureのご紹介
• デモ
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
Dev ♡ Ops
DevOpsとは
これがDevOpsという明確な定義は存在していない。
wikiによると・・・『DevOps(デブオプス)は、ソフトウェア開発手法の一つ。
開発 (Development) と運用 (Operations) を組み合わせたかばん語であり、開発担当者と運用担当者が連携して協力する開発手法をさす。』
⇒開発と運用がビジネスの価値提供のスピードを速めるために協力する活動
Value
ユーザ
Value
speed
アイデア
引用:Wikipedia (https://ja.wikipedia.org/wiki/DevOps)
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの起源
引用: 10 deploys per day (http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr)
ツール• 自動化されたインフラ• バージョン管理システムの共有• ワンステップでビルドとデプロイ• フィーチャーフラグ• 測定データの共有• IRCとボット
文化• 尊敬• 信頼• 障害に関する健康的な態度• 非難を避ける
ツールによる自動化/効率化と組織の文化
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
ユーザDevとOpsの目的の違い
• Development
– 新しいものを作る
– ユーザの要望に応える
⇒変更は出来るだけ早く、頻繁に適用したい
• Operations
– 安定した運用
– SLAを守る
⇒スピードよりも確実性
⇒安定しているシステムには変更を加えたくない
DevOps
変更変更変更
要望/フィードバック 安定稼働
SLA
衝突
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの要素
• Dev
– アジャイル開発
– 継続的インテグレーション/継続的デリバリー
– 自動テスト
• Ops
– Infrastructure as code
– 自動テスト
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
継続的インテグレーション : CI
• ソフトウェアのテストを短いスパンで頻繁に行うことで問題を早期発見して、手戻
りを減らしたり、ソフトウェアの品質向上を目指す取り組み
• テストを手動で頻繁に行うのは、コストがかかるが、専用のツールを利用すること
で作業コストを削減
• コードをコミットしたタイミングや、予めスケジュールしたタイミングで
ビルド⇒単体テスト⇒結合テストが走って結果が通知されるような仕組みが可能
コミット
コミット
コミット
コミット
コミット
テスト
大幅な手戻り
コミット
コミット
コミット
手戻り少
テスト
テスト
テスト
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
• 手順をベースに手作業でやっていたインフラに関わる作業や管理をコードで実現できるようにしようという手法や考え方
Infrastructure as Code とは(略:IaC)
12
作業者
手順書 コード
コンピュータ
開発
検証
本番
開発
検証
本番
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
• 冪等性 (再適用、差分の更新)
• 迅速性
• 再現性
• 正確性
• 再利用性
• アプリケーション開発の現場で培われてきた様々なワークフローをインフラの世界にも取り入れられる
– バージョン管理システム
– CI/CD
– 自動テスト
IaCによるメリットと変化
13
従来 IaC
作業手順 コード
手順書レビュー コードレビュー
手作業による構築 自動構築
手動によるテスト 自動テスト
Excelによる変更管理 バージョン管理システム
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの実践
認識 分析 計画 実施 評価
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの実践
• DevOpsというものを認識する
– ※関係者間でDevOpsの認識のずれがないようにする
• 目的を明確にする
– マーケットにおける先行者利益を獲得するため、ソフトウェアのリリースを早める
– 顧客からの要望に早く対応して顧客満足度を高めるために、ソフトウェアの更新サイクルを早める、など(ビジネスの視点が入ることが重要)(『DevOpsをやる』ではダメ)
認識
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの実践
• 現状を分析
– アジャイル
– 自動化(テストやリリース)
– インフラ(環境/自動化/IaC)
– 承認プロセス
– 会社ルール
– ⇒どんなことに時間がかかっているか?
– ⇒阻害要因はどんなものがあるか?
分析
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの実践
• まずは一つのプロジェクトに対して適用
• 効果が出やすい部分から改善
• 承認プロセスや会社ルールの変更も検討
• 効果測定のために改善前の時間を測定
計画
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの実践
• アジャイル導入
• インフラ環境整備
• ツールの導入
– 細かいパーツに分かれていて、組み換え可能であることが理想
• 自動化
– 繰り返し行われる業務は自動化を検討
• 承認プロセス、フローの変更
実施
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの実践
• 実施した結果を評価
• 数値で明確に表現
• 開発工数と短縮した時間の比較は慎重に
– 開発工数と短縮した時間で評価することよりも、ビジネスのスピードアップにどれだけ寄与したかが重要
評価
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
アプローチ
• トップダウンアプローチ
– 経営やビジネスといった目線から全体を俯瞰
– 承認プロセスや会社のルールに対しても視点を向けやすい
• ボトムアップアプローチ
– 現場レベルで自動化や効率化に取り組む
– 成果を組織内にアピールして、組織全体に活動を広げる
トップダウン
ボトムアップ
Dev ♡ Ops Dev ♡ Ops
Dev ♡ Ops
Dev ♡ Ops
Dev ♡ Ops
Dev ♡ Ops
Dev ♡ Ops
Dev ♡ Ops
Dev ♡ Ops
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
開発と運用の関係の変化
従来 DevOps
開発 運用 開発 運用
責任分界点
開発と運用の役割と責任は明確に分化
共有、競業。開発と運用の歩み寄り
ITチーム
明確な境界がなくなって一つのチーム
将来
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOpsの文化
• 尊敬
• 信頼
• 障害に関する健康的な態度
• 非難を避ける
• コラボレーション
• ムダの排除
• 変化に対しての柔軟さ
• 評価制度
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOps関連のツール
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOps on Azure
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOps on Azureのご紹介
• DevOpsコンサルティングサービス
– DevOps導入に向けた課題の整理
– 開発、運用のフローやポリシーの見直し
– 導入計画
• DevOps導入支援サービス
– 選定されたツールの導入支援
• DevOpsクイックスタートサービス
– Microsoft Azure上で素早く展開できるように予め用意されたDevOpsツールをワンセットにして提供
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
DevOps on Azureのイメージ
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
デモ環境の構成
①コードをpush
②変更を通知 ③リポジトリをクローン
④自動テスト
➅結果を通知
➆通知
Azure App Service
➄デプロイ
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
参考:Azure Container Service
• Azure 向けに最適化されたコンテナ環境をデプロイ
• オーケストレーションツールとしてApach MesosかDocker Swarmが利用可能
• Azureのポータルから簡単な操作で、クラスタ化されたコンテナ実行環境とオーケストレーションツールが容易に利用開始できる
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
デモ
DevOps on Azure
Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved
まとめ
• DevOpsの導入は大変
– ツールを導入すれば実現するような簡単なものではない
• DevOps = 自動化 + 文化 => ビジネスの迅速性
– 自動化やツールの導入を進めるのに合わせて、組織の文化を変えていく
ことも大切
• 実施結果の数値化と横展開
• 実行環境の準備にAzureが便利
• まずやってみましょう