30
Copyright 2016 CREATIONLINE, INC. All Rights Reserved OSSを使ったAzureでのDevOps

Ossを使ったazureでのdev ops

  • Upload
    -

  • View
    322

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

OSSを使ったAzureでのDevOps

Page 2: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

自己紹介

• 荒井 裕貴(あらいひろき)

– クリエーションライン株式会社のChefエンジニア

– Chef Serverの設計・導入支援

– 講演、トレーニング

– COOKBOOK開発(Linux / Windows)

Page 3: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

会社紹介

クリエーションライン株式会社通称:CL (しーえる)

・プライベートクラウド基盤構築

・パブリッククラウドのコンサル

・Management Service Provider

OSS、クラウド系に強いSIer

Page 4: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

Chefについて

• 構成管理ツールChefの開発元の会社

• 8年以上DevOpsの世界を牽引

• 日本でもDevOpsのツールといえばChefで認知

• DevOpsのインフラを支える製品が多数

– Chef Server

– Chef Anaytics

– Chef Delivery

– Chef Compliance

• クリエーションラインはChef社のパートナー

Page 5: Ossを使ったazureでのdev ops

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)

Page 6: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

目次

• DevOpsについて

• DevOpsの実践

• アプローチや文化の話

• DevOps on Azureのご紹介

• デモ

Page 7: Ossを使ったazureでのdev ops

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)

Page 8: Ossを使ったazureでのdev ops

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とボット

文化• 尊敬• 信頼• 障害に関する健康的な態度• 非難を避ける

ツールによる自動化/効率化と組織の文化

Page 9: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

ユーザDevとOpsの目的の違い

• Development

– 新しいものを作る

– ユーザの要望に応える

⇒変更は出来るだけ早く、頻繁に適用したい

• Operations

– 安定した運用

– SLAを守る

⇒スピードよりも確実性

⇒安定しているシステムには変更を加えたくない

DevOps

変更変更変更

要望/フィードバック 安定稼働

SLA

衝突

Page 10: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの要素

• Dev

– アジャイル開発

– 継続的インテグレーション/継続的デリバリー

– 自動テスト

• Ops

– Infrastructure as code

– 自動テスト

Page 11: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

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

• ソフトウェアのテストを短いスパンで頻繁に行うことで問題を早期発見して、手戻

りを減らしたり、ソフトウェアの品質向上を目指す取り組み

• テストを手動で頻繁に行うのは、コストがかかるが、専用のツールを利用すること

で作業コストを削減

• コードをコミットしたタイミングや、予めスケジュールしたタイミングで

ビルド⇒単体テスト⇒結合テストが走って結果が通知されるような仕組みが可能

コミット

コミット

コミット

コミット

コミット

テスト

大幅な手戻り

コミット

コミット

コミット

手戻り少

テスト

テスト

テスト

Page 12: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

• 手順をベースに手作業でやっていたインフラに関わる作業や管理をコードで実現できるようにしようという手法や考え方

Infrastructure as Code とは(略:IaC)

12

作業者

手順書 コード

コンピュータ

開発

検証

本番

開発

検証

本番

Page 13: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

• 冪等性 (再適用、差分の更新)

• 迅速性

• 再現性

• 正確性

• 再利用性

• アプリケーション開発の現場で培われてきた様々なワークフローをインフラの世界にも取り入れられる

– バージョン管理システム

– CI/CD

– 自動テスト

IaCによるメリットと変化

13

従来 IaC

作業手順 コード

手順書レビュー コードレビュー

手作業による構築 自動構築

手動によるテスト 自動テスト

Excelによる変更管理 バージョン管理システム

Page 14: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの実践

認識 分析 計画 実施 評価

Page 15: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの実践

• DevOpsというものを認識する

– ※関係者間でDevOpsの認識のずれがないようにする

• 目的を明確にする

– マーケットにおける先行者利益を獲得するため、ソフトウェアのリリースを早める

– 顧客からの要望に早く対応して顧客満足度を高めるために、ソフトウェアの更新サイクルを早める、など(ビジネスの視点が入ることが重要)(『DevOpsをやる』ではダメ)

認識

Page 16: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの実践

• 現状を分析

– アジャイル

– 自動化(テストやリリース)

– インフラ(環境/自動化/IaC)

– 承認プロセス

– 会社ルール

– ⇒どんなことに時間がかかっているか?

– ⇒阻害要因はどんなものがあるか?

分析

Page 17: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの実践

• まずは一つのプロジェクトに対して適用

• 効果が出やすい部分から改善

• 承認プロセスや会社ルールの変更も検討

• 効果測定のために改善前の時間を測定

計画

Page 18: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの実践

• アジャイル導入

• インフラ環境整備

• ツールの導入

– 細かいパーツに分かれていて、組み換え可能であることが理想

• 自動化

– 繰り返し行われる業務は自動化を検討

• 承認プロセス、フローの変更

実施

Page 19: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの実践

• 実施した結果を評価

• 数値で明確に表現

• 開発工数と短縮した時間の比較は慎重に

– 開発工数と短縮した時間で評価することよりも、ビジネスのスピードアップにどれだけ寄与したかが重要

評価

Page 20: Ossを使ったazureでのdev ops

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

Page 21: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

開発と運用の関係の変化

従来 DevOps

開発 運用 開発 運用

責任分界点

開発と運用の役割と責任は明確に分化

共有、競業。開発と運用の歩み寄り

ITチーム

明確な境界がなくなって一つのチーム

将来

Page 22: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOpsの文化

• 尊敬

• 信頼

• 障害に関する健康的な態度

• 非難を避ける

• コラボレーション

• ムダの排除

• 変化に対しての柔軟さ

• 評価制度

Page 23: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOps関連のツール

Page 24: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOps on Azure

Page 25: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOps on Azureのご紹介

• DevOpsコンサルティングサービス

– DevOps導入に向けた課題の整理

– 開発、運用のフローやポリシーの見直し

– 導入計画

• DevOps導入支援サービス

– 選定されたツールの導入支援

• DevOpsクイックスタートサービス

– Microsoft Azure上で素早く展開できるように予め用意されたDevOpsツールをワンセットにして提供

Page 26: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

DevOps on Azureのイメージ

Page 27: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

デモ環境の構成

①コードをpush

②変更を通知 ③リポジトリをクローン

④自動テスト

➅結果を通知

➆通知

Azure App Service

➄デプロイ

Page 28: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

参考:Azure Container Service

• Azure 向けに最適化されたコンテナ環境をデプロイ

• オーケストレーションツールとしてApach MesosかDocker Swarmが利用可能

• Azureのポータルから簡単な操作で、クラスタ化されたコンテナ実行環境とオーケストレーションツールが容易に利用開始できる

Page 29: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

デモ

DevOps on Azure

Page 30: Ossを使ったazureでのdev ops

Copyright ⓒ2016 CREATIONLINE, INC. All Rights Reserved

まとめ

• DevOpsの導入は大変

– ツールを導入すれば実現するような簡単なものではない

• DevOps = 自動化 + 文化 => ビジネスの迅速性

– 自動化やツールの導入を進めるのに合わせて、組織の文化を変えていく

ことも大切

• 実施結果の数値化と横展開

• 実行環境の準備にAzureが便利

• まずやってみましょう