Slide 1

Slide 1 text

DevOps概論 onodera

Slide 2

Slide 2 text

はじめに 近年のプロダクト開発においては、システムに求められる要件は高度化/多様化の一途 を辿っており、それらを実現するための開発のアプローチは数多く存在します。 その中 で、企業が市場で競争優位性を確保するためには、サービスの立案から設計、開発、テ スト、リリース、安定稼働、そしてユーザーからフェードバックを獲得するまでのリードタイ ムをいかに短縮し、かつそのサイクルをいかに効率良く、素早く回すことができるかが鍵 となります。 今日は、そうしたIT業界の変遷の中で生まれ、近年よく知られるようになった「DevOps」 という概念についてご説明します。 「DevOps」の定義は、人によって異なる部分もあるため、今日はあくまでわたしの解釈 に基づく形となります。ご了承ください。

Slide 3

Slide 3 text

DevOps誕生の背景 ・開発期間の短縮 ・システム要件に対する柔軟な対応の必要性 ・仮説検証型のプロダクト開発の普及

Slide 4

Slide 4 text

DevOps誕生の背景 柔軟かつ短納期を求める開発側と、システムの安定稼働を求める運用側の 対立 システムの安定稼働は大事だけど 新機能を開発してどんどんリリースしたい! 新機能開発の大事なのはわかるけど システムが安定して稼働することの方が大事!

Slide 5

Slide 5 text

DevOps

Slide 6

Slide 6 text

[出典元] Romexsoft LTD 「What is AWS DevOps?」https://www.romexsoft.com/blog/what-is-aws-devops/

Slide 7

Slide 7 text

DevOps 開発(Development)と運用(Operations)が協力 しあって、ユーザーに迅速かつ継続的にプロダクト やサービスの提供を行うことで、ビジネスの価値を 高めるための様々な取り組み

Slide 8

Slide 8 text

DevOpsプロセスの例 1. PLAN(計画) 2. BUILD(ビルド) 3. TEST(テスト) 4. DEPLOY(デプロイ) 5. OPERATION(運用) 6. FEEDBACK(改善要求)

Slide 9

Slide 9 text

DevOpsプロセスの例 1. PLAN(計画) 開発する要件、難易度、優先度などを整理して、開発対象やそのアプローチ を計画します。

Slide 10

Slide 10 text

DevOpsプロセスの例 2. BUILD(ビルド) 計画に基づいて実装をおこない、実行可能なファイルを作成します。ビルドプ ロセスは、ツールを活用して自動化することが多いです。

Slide 11

Slide 11 text

DevOpsプロセスの例 3. TEST(テスト) ビルドしたプログラムを試験して、プロダクトの品質を確保します。バグが発 見された場合は、実装/ビルドプロセスに差し戻される場合があります。 テストプロセスは、ツールを活用して自動化することが多いです。

Slide 12

Slide 12 text

DevOpsプロセスの例 CONTINUOUS INTEGRATION(継続的インテグレーション) 2. BUILD(ビルド) 3. TEST(テスト) 開発したプログラムなどを、プログラムの保管場所にアップロードして、ビルド やテストのプロセスを自動的に実行させること → 不具合の早期発見、一定のプロダクト品質の確保、ビルド/テストプロセス の短縮、ケアレスミス/属人化の防止、人的資源の解放

Slide 13

Slide 13 text

DevOpsプロセスの例 4. DEPLOY(デプロイ) ビルドしてテストで品質が保証されたプロダクトを、実際に使える状態にしま す。 デプロイプロセスは、ツールを活用して自動化することが多いです。

Slide 14

Slide 14 text

DevOpsプロセスの例 CONTINUOUS DELIVERY(継続的デリバリー) 4. DEPLOY(デプロイ) ビルドおよびテストされ品質が担保されたプロダクトを、自動的に使える状態 にすること。 → ケアレスミス/属人化の防止、人的資源の解放

Slide 15

Slide 15 text

DevOpsプロセスの例 5. OPERATION(運用) デプロイしたプロダクトを安定して稼働させるため、サーバーを監視して、シ ステムのパフォーマンスやアクセスの状況をモニタリングします。 運用プロセスは、目的に応じて専用のツールを導入する場合があります。

Slide 16

Slide 16 text

DevOpsプロセスの例 6. FEEDBACK(改善要求) システムの運用中に、ユーザーからの改善の要求を吸い上げます。 改善要求プロセスは、カスタマーサポート、ユーザーインタビュー、または、ア プリケーション内部にフィードバックの仕組みを設けるなどして、継続的に良 いフィードバックが受けられるように工夫します。 受け付けたフィードバックの内容は「1. プラン」プロセスにて精査します。

Slide 17

Slide 17 text

DevOpsをサポートするツール・技術 ・コンテナによる実行環境の仮想化技術(Docker) ・ソースコード管理サービス(GitHub/GitLab/GitBucket) ・CI/CDサービス(Jenkins/CircleCI/TravisCI/Bitrise) ・APMサービス(NewRelic/Datadog/Zabbix) ・Infrastructure as Code(Terraform) ・コミュニケーションサービス(Slack/Chatwork) etc.

Slide 18

Slide 18 text

DevOpsの理解を深めるために... DevOpsプレゼンテーション 「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr(1日10回 以上のデプロイ: Flickrにおける開発と運用の協力)」 (2009年オライリー主催の「Velocity 2009」というイベントにおける、当時 Flickrに所属していたJohn Allspaw氏とPaul Hammond氏のプレゼンです。 DevOpsの概念の原典と言われています。) https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-a nd-ops-cooperation-at-flickr

Slide 19

Slide 19 text

DevOpsの理解を深めるために... DevOps参考書籍 - The DevOps ハンドブック 理論・原則・実践のすべて - The DevOps 逆転だ! - Effective DevOps - 継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイ メントの自動化

Slide 20

Slide 20 text

おわりに DevOpsには様々な解釈があると思いますが、大事なことは、何が課題で、何のために おこなう取り組みなのかを捉えて、組織の中で共有し、認識を合わせることだと思いま す。 DevOpsに関わる一連の取り組みは手段であり、それ自体が目的ではないので、現状と あるべき姿のギャップをみんなで共有して、そのためのアプローチは柔軟に選択できる と良いと思います。 DevOpsの活用によって、対立しがちな開発者と運用者の問題が解消され、協力し合 い、市場やユーザーのニーズに迅速に応えていける組織づくりができたらいいなと思い ます。