DevOpsってなに?

目的

DevOpsの概要を知る
DevOpsが流行ったあとの世界を知る

内容

概要

DevOps:
「開発チーム(Development)と運用チーム(Operations)がお互いに協調し合うことで、開発・運用するソフトウェア/システムによってビジネスの価値をより高めるだけでなく、そのビジネスの価値をより確実かつ迅速にエンドユーザーに届け続ける」という概念

画像1

要するに、ITシステムを作る人(SIerとか)と運用する人(事業会社とか)が一体化しやすい環境を作ることで、よりビジネス価値の高いシステムを作ろうぜ、という考え方

※これまではDevの役割が“システムに新しい機能を追加する”である一方、Opsの役割は“システムの安定稼働”であるという背景から、開発チーム(Development)と運用チーム(Operations)は対立構造にあった...

DevOpsの考え方が流行りだしたのは以下の2つの要因が大きい
・ユーザ目線のシステムが大事である風潮が生まれたこと
・技術の発展により様々な課題が解決されたこと

それぞれ簡単に説明すると

■ユーザ目線のシステムの重要性
ITシステムの利用目的が、問題解決型(マイナス→0)から課題達成型(0→プラス)に変化してきたことや不確実性の高い社会の様々な課題を解決することにシフトし、真に解決すべき課題が不明確になってきたことがある。真に解決すべき課題=真にユーザに刺さるシステムを開発するには、迅速にシステムをリリース→検証→リリース→…を繰り返す必要があり、開発と運用が一体化したDevOpsの考え方が重要となった。ちなみに、Agile開発が流行ったのも同じような背景。

■技術の発展
DevOpsを支える技術として、下記のようなものが挙げられる
・Docker:コンテナ型の仮想システム
・Jenkins:どんな環境でもCI/CDが可能になる
・CloudFormation:JSONでクラウドリソース定義をしてそれを展開することで一気にクラウド内にシステムを作れる
要は、今まで人手でたくさん時間かけてやっていた作業(当然ミスも多い)を、ミスなく短時間で自動でやってくれるツールがたくさんできて、リリースにかかる負担が開発者運用者ともに大きく減った。

【参考】DevOpsは概念

DevOpsは概念。つまり「こういう考え方でITシステムの開発と運用をすればいいよ」という考え方
そのため、DevOpsを支えるベストプラクティスとして「ツール」と「組織文化」から下記のような考え方が提唱されている。

【 ツール 】
1.自動化されたインフラストラクチャ(Automated infrastructure): インフラの構築を自動化する。よく使われているツールにはAnsibleやChef、Dockerなどがある
2.バージョン管理システムの共有(Shared version control): GitやMercurialなどの同じバージョン管理システムをDevとOpsで共有する
3.ワンステップによるビルドとデプロイ(One step build and deploy): 手順書などを使い、手動でビルドやデプロイをするのではなく、ビルドやデプロイを自動化する。よく使われているツールやサービスにはJenkinsやCapistranoなどがある
4.フィーチャーフラグ(Feature flags): 詳細は後述のコラムで説明。コード中の機能の有効/無効を設定ファイルで管理する
5.メトリクスの共有(Shared metrics) : 取得したメトリクスの結果をダッシュボードでお互いに共有する。よく使われているサービスにはNew RelicやApplication Insightsなどがある
6.IRCとインスタントメッセンジャーのBot(IRC and IM robots): SlackやHipChatなどのチャットツールに自動的にビルドやデプロイのログ、アラート内容を投稿する仕組みを作ることで情報をお互いに共有する

【 組織文化 】
A.お互いを尊重する(Respect): 一緒に働く相手のことを心から思いやる、相手を一人の人間として扱い、能力や功績を評価する
B.お互いを信頼する(Trust): 自分以外の人は優秀で、正しいことをすると信じる。信じて仕事を任せる
C.失敗に対して健全な態度を取る(Healthy attitude about failure): 新しいことに挑戦すれば自ずと失敗は起こってしまうもの。失敗は起こるものであり、相手のミスだと責めるものではない
D.相手を非難しない(Avoiding Blame): 相手に非があると断じて言葉で責めるのではなく、次に同じ問題が起こらないように建設的な批判を行う

よりAgileな開発を行うためには、失敗を許容するTry&Eror的な考え方が重要だと考えている。そのためには、上から指示されたことに対して100点を出すような軍隊的な組織ではなく、各人が自律してやるべきことを考えて行動できる組織が理想であり、そのような組織作りを目指す上記の「組織文化」は素晴らしいものだと感じている。

DevOpsが流行ったあとの世界

「いろんなITサービスが世の中にたくさんでてくるよ」
DevOpsのそもそもの背景が「開発チーム(Development)と運用チーム(Operations)がお互いに協調し合うことで、ビジネスの価値をより確実かつ迅速にエンドユーザーに届け続けることだから、その通りで様々なITサービスが迅速に開発され世の中に提供されることにある。
また、様々なITシステムの成長スピードも加速し、新たな価値が指数関数的に生まれるような世界となることが予測される。

「システムの内製化が進むよ」
DevOpsは開発と運用の一体化、つまり開発者と運用者の障壁を取り去ることを目指している。
だいたいのシステムはITシステムを作る人(SIerとか)と運用する人(事業会社とか)という棲み分けになっているから、これを一体化するということは、事業会社が自社でITシステムを作る(=内製化)方針に移り変わっていくのではないかと予想される。
※クラウドのところでも書いたけど、いよいよSIerの仕事が...




この記事が気に入ったらサポートをしてみませんか?