DevOpsとは、「システム開発チーム(Dev)と運用チーム(Ops)が協調し合うことで、確実かつ迅速にシステムがユーザーにビジネス価値をもたらし続ける」概念のことです。この言葉は、2009年の「Velocity2009」というイベントで、写真共有サービスのFlickrのエンジニアが発表したプレゼンテーションがきっかけで生まれたとされています。

 多くの企業がデジタルトランスフォーメーション(DX)への対応を加速させている今、システムの新機能を素早く市場に投入(リリース)して顧客や市場の反応を見ながらプロダクト開発を進めるDevOpsが、DX実現の1つの要素として注目を集めています。

なぜDevOpsにセキュリティーを追加するのか

 システムの開発と(リリースを含む)運用のサイクルを短縮する中で、セキュリティー対策についてはどう考えるべきでしょう。多くの企業では、インターネットに公開するシステムのアプリケーションをリリースする前に、セキュリティー診断を実施するよう義務付けています。

 システムの開発と運用のサイクルを短縮できたとしても、セキュリティー対策がボトルネックになったのでは、素早いリリースは難しくなります。そこでシステム開発チームと運用チームにセキュリティーチーム(Sec)を加えた「DevSecOps」という言葉が使われるようになりました(図1)。

図1●DevSecOpsの全体像

 今回は、システム開発でDevSecOpsを実現するための課題や解決策などについて解説します。DevSecOpsは特定のツールやソリューションを導入すれば実現できるものではありませんが、実現のための基盤整備や自動化の取り組みは、セキュリティー対策レベルの向上に寄与します。

DevOpsとアジャイル開発の関係

 ここでDevOpsと一緒に語られることが多い、「アジャイル開発」について説明します。アジャイル(Agile)は直訳すると「機敏な」「迅速な」という意味です。アジャイル開発では1~2週間といった非常に短いサイクルで、機能は少ないながらも「完全に動作する」システムをリリースしていきます。

 初期リリースの段階からこうした提供形態をとることで、ユーザーに価値を(正しく)届けられているのか、無駄な機能を作りこんでいないかなどを検証していきます。DevOpsが開発と運用のチーム協調に焦点を当てているのに対し、アジャイル開発では開発チームに焦点を当てています。

 DevOpsに取り組む組織は、まず開発チームがアジャイル開発に取り組むところから始めるケースが多いようです。アジャイル開発を導入する過程では、まずソフトウエア構成管理システムの採用による、アプリケーションのビルド(開発したソースコードを実行可能な状態にすること)やテストの自動化と言う手順を踏むのが一般的です。その次の段階として開発チームと運用チームの協調、さらにセキュリティーチームとの協調に進む企業が多いようです。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。