国内企業においてDevOpsの取り組みが進んでいる。しかし、開発からデプロイにおける作業では成果をあげていても、運用の自動化/効率化で成果をあげている企業は少ない。システム総コストの低減のためには運用効率化を推進する必要があるが、現状は外部ベンダ―に運用を委託している企業が多いため、その実現は容易ではない。「Site Reliability Engineering(SRE)」は運用をソフトウェア・エンジニアリングとして捉えるものであり、ユーザー企業にとっても価値のある取り組みとなる。
DevOpsで全てが解決するのか
企業アプリケーションは、DX(デジタル・トランスフォーメーション)、イノベーション、業務改革、事業継続、顧客満足、従業員満足などの多くの企業活動に不可欠であるだけでなく、革新的なアプリケーションなしで企業が生き残るのは困難な時代になったといえる。しかし、アプリケーションがどんなにユニークで斬新なユーザー体験を提供できても、頻繁にシステムが停止したりパフォーマンス遅延が発生していたら誰も使わなくなるだろう。アプリケーションの革新性は、信頼性や可用性を具備して初めて有効になる。アプリケーションの信頼性や可用性は、ビジネスそのものの信頼性や継続性に直結しているといっても過言ではない。
アジャイル開発やDevOpsといった要求に迅速に適応し高頻度で機能の追加・修正を行うことができる開発プロセスが、多くの国内企業で採用されているが、アジャイル開発/DevOpsを推進すればアプリケーションの信頼性や可用性は獲得できるのであろうか。答えはノーである。
アジャイル開発およびDevOpsは開発プロセスであるため、考え方、思想、基本方針などを提示しているにすぎない。自社でアジャイル開発/DevOpsを推進する場合は、より具体的な方法を策定する必要があり、多くのコンサルティング会社やITベンダーがアジャイル開発/DevOpsのためのフレームワークを考案し、採用ツールやサービスを規定している。それらがアプリケーションの信頼性や可用性を向上するための仕組みを提供していればよいが、そのような仕組みを提供せずにアプリケーションの開発運用を支援する機能を提供するだけのフレームワークも少なくない。
アプリケーションの開発保守はソフトウェア・エンジニアリングそのものであるため、ツールを活用して開発プロセス全体を包括する自動化を進めることも困難ではない。一方、運用に関しては、自動化ツールの導入は進んでいるものの、仮想マシンやコンテナの管理、デプロイの自動化といった個々の領域には個別のツールが適用されていることが多く、全体を俯瞰した運用のソフトウェア・エンジニアリングは未成熟であった。