最近非常に目にすることが多くなったDevOpsという言葉ですが、多くの場合はデリバリー(アプリケーションのリリース)の高速化・高頻度化の実現という意味で語られています。かつ、アジャイル開発とセットのテクノロジーとして語られることが多いようです。
ではDevOpsは、アジャイル開発を採用していない中大規模の企業システムには縁遠いものなのでしょうか。それは違うと考えています。
一般的な企業システムでは、サービス提供開始後のシステムへのバグ改修や機能追加は、小さな単位(数日~数週間)で改修を行い、3カ月毎や6カ月毎の定期リリースタイミングまで「出荷待ち在庫」のような形で溜めているのではないでしょうか。
DevOpsに関連するデリバリー高速化の技術を応用すれば、この出荷待ちの3~6カ月をより短くできる可能性があります。具体的には、
- クラウド/仮想化技術を使った、テスト環境の多面利用
- Chef参考1/Puppet参考2等を使った、テスト環境構築の自動化
- Jenkins参考3等を使った、テスト環境へのテスト資材デプロイ自動化
- テストツールを使った、回帰テストの自動実行
といった要素が、企業システムにおいてもリリースサイクル短縮を助けてくれるはずです。多くのプロジェクトは、「出荷待ち在庫」をリリースできる状態にする品質チェック等の手続きにボトルネックを抱えています。先に挙げた技術は、それを並行的かつ自動的に実施することを支援してくれます。
DevOps実現例としてよく語られる「1~2週間でリリースを繰り返す姿」は、コンシューマー向けでなくエンタープライズ向けのシステムを担当している人にとっては、感覚のギャップが大きすぎてなかなか…と感じる人も多いと思います。しかしビジネスのスピードが上がっている中で、6カ月毎のリリースを3カ月毎にしたい、3カ月毎のリリースを1.5カ月毎にしたい、というニーズは確実に高まっています。
DevOpsの技術は、トラディショナルな開発・運用を行っている組織にも少しずつ、確実に、影響を及ぼしていくと見込んでいます。