「DevOps(デブオプス)」という言葉、最近よく耳にする言葉です。エンジニアやIT業界に従事する人にとってはほとんどの方が知っていると答えるのではないでしょうか。しかし、詳しく説明しろと言われたら、結構難しいかもしれません。
なんとなく「システム構築・運用体制のこと」と理解しているだけでは、情報システムのトレンドでもあるDevOpsを理解し実現することはできません。ここではDevOpsに関する説明と重要なポイントを解説いたします。
DevOpsって何?
まずは「DevOpsとは何か」という定義を理解することが大切です。
DevOpsとは英語の「Development」と「Operations」が組み合わさった造語で、「開発チーム」と「運用チーム」を指しています。
なぜ、Dev(開発チーム)とOps(運用チーム)を一まとめに呼んでいるかというと、DevOpsで重要なことは開発チームと運用チームが強力に連携することでシステムやビジネスの価値を高め、それを迅速かつ適切にユーザーに届けることだからです。
しかしDevとOpsの関係というのは、往々にして対立関係にあります。なぜなら、Devの役割はユーザーにとって便利に使用できる新しい機能を開発することであり、Opsの役割は現在稼働しているシステムやサービスを安定的に稼働させること、というそもそもが対立した役割を持っているためです。
Devは、矢継ぎ早に新しい機能を追加して、システムやサービスをより便利に使ってほしい。しかしOpsは安定稼働という役割があることから、頻繁な機能追加を嫌う。こうした構図が、今のDevとOpsの対立した関係を築いています。
ところが、DevとOpsが目指す最終的な目標はシステムやそれを活用したサービスによってユーザーの利便性を高めるだけでなく、その価値をより適切かつ迅速にユーザーに届けるというところで共通しています。
従って、DevとOpsは対立関係ではなく、その垣根を取って払い、協力することで初めて最高の情報システムチームが誕生します。DevOpsとはそうしたチームを構成し、ビジネス価値をより高めていくための概念及びアプローチなのです。
[RELATED_POSTS]
DevOpsを成功させるための組織文化とは
DevOpsという概念が誕生したのは、2009年の「Velocity 2009」という米国メディア企業オライリー社が主催したイベントでのことです。同イベントに登壇したFlickr社のエンジニアであるJohn Allspaw氏とPaul Hammond氏は、「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr(1日10回以上のリリース:Flickr社の開発と運用の協力)」というプレゼンテーションの中で、DevとOpsが協力することで、1日10回以上の機能リリースも可能だと説明しています。
同プレゼンテーションの中ではDevOpsを成功するための組織文化についても、次のように説明しています。
DevOpsを成功させる組織文化
①DevとOpsが互いに尊重する
「自分たちは対立すべき関係ではない」と理解し、相手を一人の人間として尊重し、各人の能力や功績を評価する。
②DevとOpsが互いに信頼する
「自分以外の人間は優秀である」と信じ、信頼して仕事を任せる。
③互いの失敗を責めない
しいことにチャレンジすれば、失敗は常に付いてまわる。その失敗を責めるのではなく、次に失敗をおこさず成功するための対応を一緒に考える。
④互いを避難しなし
チーム間で大きな失敗が生じた際は、互いに責任転換をするのではなく、自分にも非がある事を認めて対応へのアクションを考える。
要点をまとめてると、互いに信頼し合って前向きにチームを運用する、というのがDevOps成功のための企業文化だと言えます。
DevOpsの構築に欠かせないもの
DevOpsを成功させるためには、企業文化を整えるだけではいけません。他にも、様々な必要なものがあります。
まず大切なのは、DevとOpsを繋ぐコミュニケーションツールと情報共有基盤です。DevOpsで大切なことは双方が密なコミュニケーションを取り、すべての情報を迅速に共有することにあります。同じチームとして活動するのですから、コミュニケーションが円滑でなければ成功は有り得ません。
情報共有基盤のためには様々なツールを活用します。先述したJohn Allspaw氏とPaul Hammond氏のプレゼンテーションによると、 Flickr社のDevOpsでは6種以上の情報共有基盤が活用されています。
Flickr社が活用した情報共有基盤のためのツール
- インフラ構築を自動化するツール
- Githubなどのバージョン管理システム
- ビルドとデプロイの自動化ツール
- ソースコードにある機能の有効/無効を設定するツール
- 取得したメトリクスを共有するためのダッシュボード
- ビルドやデプロイのログが自動的に通知されるチャットツール
Flickr社のようにここまで情報共有基盤を整える必要は実際ないかもしれません。しかし、提供するシステムやサービス、DevOpsの運用体制によって、情報共有基盤のためのツールを複数導入する必要があるでしょう。
DevOpsのよくある誤解
現在、数々の企業がDevOpsの実現に取り組んでいます。今では新たな概念も追加された、DevOpsがより昇華されたものになりました。しかし、DevOpsを構築しようという企業の中には、DevOpsの意味を理解しないままに取り組んでしまうことがあります。
よくある誤解としては、DevとOpsを繋ぐ情報共有基盤を整えれば大丈夫と考えてしまっていることです。
先述したDevOpsのためのツールを真っ先に導入する企業も多く存在します。しかし、DevOpsとはあくまでDevとOpsの協力によって、システムやサービスのビジネス価値を高めてそれをより迅速にユーザーへ届けることです。それに向けて解決すべき課題が何も定まっていないのに、情報共有基盤のためのツールを導入してもDevOpsは実現しません。
まずはビジネス価値を高めるための課題を明確にして、そのためにはDevとOpsがどのように協力すれば良いかを定義します。その上で適切なツールを導入し、企業文化を変革することで初めて適切なDevOpsが実現します。
関連記事:DevOpsとは?ストレージ管理者が知っておきたいトレンド
まとめ
DevOpsにおけるストレージ技術者の役割は、システムやサービスのビジネス価値を高めるためのシステム処理性能を確保することと、安定稼働を実現するだけのストレージを確保することです。開発チームとのコミュニケーションを円滑にして、情報共有を怠らず、一丸となってビジネスの成長を目指していきましょう。
以下のネットアップ総合カタログでは、ネットアップのDevOps環境における貢献がわかりやすく記述されています。ぜひこの機会にダウンロードください。
- カテゴリ:
- トレンド