- 会員限定
- 2013/12/10 掲載
DevOpsの基礎・基本を事例で解説、「アジャイルサンドイッチ」防ぐ開発と運用の連携
開発部門と運用部門のギャップを埋める「DevOps」とは?
2010年ごろより「DevOps」というキーワードが注目されている。DevOpsとは「開発者(Developer)と運用者(Operations)が協力して、開発したものを、すばやくリリースできるようにする取り組み、思想、コンセプト(概念)」のこと。たとえば、開発者がシステムやプログラムをつくった後、本番環境でリリースする際に何か問題があれば運用者に大きな負担がかかってしまう。そのため、「運用者からすれば、現在の環境をなるべく安定させたいというマインドが働き、新しいものを受け入れることに対する抵抗感が働いてしまう」(田中氏)。
しかし、それでは新しいビジネスの展開に合わせたサービス開発は遅々として進まなくなってしまう。そこで開発者と運用者がお互いに歩み寄り、開発したものをスムーズにリリースさせよう、という取り組みから始まった。
競合他社に打ち勝つためには、ビジネス部門は新しい商品やサービスをいち早く投入したいと常に考えている。そのため彼らは開発部門に対して迅速な開発を要求する。市場ニーズを引き出し、要件を固め、それに基づいて開発し、運用した後に市場へ投入するのが、従来からの一連の流れだ。だが、そこにはいくつかのギャップも存在する。それは、市場とビジネス部門の間でニーズやウォンツが掴みきれなかったり、ビジネス部門が要求仕様を開発側にうまく伝えられなかったりといったことが少なくないからだ。
「しかし、ここで問題になるのは、せっかくアジャイルで早く開発したものが、なかなかリリースされないということです」(田中氏)
運用側では現在のシステムを安定稼動させたい、半年あるいは3ヶ月ごとなど決められたサイクルでのリリースを守りたい、という力学があり、早く開発してもすぐに稼動できないことも多い。そこで冒頭のようなDevOpsの概念が登場したわけだ。
ただしDevOpsには決まった定義はない。「DevOpsだけでは、開発スピードや品質を向上するために不十分なところもあります。他の方法論と組み合わせて、開発スタイルを全体的に変えていく必要があります」(田中氏)。
それでは、DevOpsの具体的な内容とは何か。1つはツールであり、もう1つは体制・人材の話だという。先行して話題となるのは「継続的デリバリの自動化」を行うためのツールだろう。迅速な開発をするためには、短いサイクルで小さなプログラムをつくり足していく手法が取られる。「プログラムをコンパイルし、結合テストをしてデリバリする場合には、何度も小さなモジュールを繰り返し開発するため、手作業でなく自動化していく必要があるのです」(田中氏)。
そしてもう1つ、体制・人に関しては、アジャイル開発においても初期段階から部門横断で手を組んでいく取り組みがあった。田中氏は「DevOpsでは、これらビジネス部門と開発部門に加えて、運用や基盤、さらにテストの専門家も開発初期時から二人三脚で協力しながら取り組んでいかなければなりません」と説明する。
【次ページ】DevOpsで開発スタイルの変革につなげた先進事例
関連コンテンツ
PR
PR
PR