DevOpsとは?アジャイルとの違いやメリット、サイクルなどを解説
公開日
2023年7月27日
ソフトウェアやアプリケーションを開発し、その収益を最大化させるには、競合他社に遅れることなくできるだけ早期に市場に投入する必要があります。しかし、開発担当と運用担当のチームのそれぞれがサイロ化してしまうと、作業効率の低下やプロジェクトの停滞が発生してしまうでしょう。こうした問題を解決する開発手法として注目されているのがDevOps(デブオプス)です。
ここでは、DevOpsについて、重視される理由やアジャイル開発との違い、メリット、開発サイクルなどについて解説します。
DevOpsは開発チームと運用チームが協力する開発手法
DevOpsは開発チームと運用チームが協力する開発手法です。開発を意味する「Development」と、運用を意味する「Operation」を組み合わせた造語で、明確な定義はありませんが、一般的に開発チームと運用チームとが連携するか、または、組織を統合して開発から運用までを同じ担当者が実施することで、柔軟かつスピーディーな開発を実現する手法を指しています。
DevOpsによって、開発チームと運用チームが連携することで、ソフトウェアやアプリケーションの迅速な市場への投入が可能となります。企業はユーザのニーズに合ったソフトウェアやアプリケーションを次々と送り出し、事業を素早くスケールさせることができるでしょう。
DevOpsが重視される理由
DevOpsが重視される理由は、企業間の開発競争の激化によって、開発スピードの向上が必要となっていることです。開発スピードの向上には、開発段階から開発チームと運用チームの連携が欠かせません。
開発現場では、開発チームと運用チームとで考え方や方向性に差が生まれ、意見が対立してしまうこともあるでしょう。しかし、どちらのチームもユーザに良いソフトウェアやアプリケーションなどの製品を届けるという目的は同じですが、重要視している要素に違いがあります。
開発チームは、より良い製品をより早くユーザに届けるため、早期のリリースや機能の充実を重視し、随時改修や新機能の追加を実施しようとします。一方、運用チームは安定運用を重視するため、しっかりと準備した上でのリリースや機能の拡充を希望するでしょう。この考え方の違いが、リリースの遅れや企業の成長鈍化につながる要因となってしまう可能性があるのです。
DevOpsとアジャイル開発の違い
DevOpsのほかにも、開発スピードを向上させる開発手法はあります。その代表的なものがアジャイル開発です。DevOpsとアジャイル開発は、迅速な開発・リリースという同じ目的を持っていますが、対象となる領域が異なります。アジャイル開発は、ソフトウェアやアプリケーションの開発プロセスに着目した考え方です。一方、DevOpsは、開発の際に、開発チームと運用チームが強固に連携する体制のことです。DevOpsとアジャイル開発を組み合わせることで、より開発スピードと製品の質を向上させることができます。
また、アジャイルには「機敏な」「素早い」といった意味があり、顧客満足度を高めることを目標として短期間での開発・リリースを目指します。アジャイル開発が普及する以前は、ウォーターフォール開発が一般的でした。ウォーターフォール開発は、プロジェクトの要件を細かく定義した上で、開発プロセス全体を複数に区切り、上流工程から下流工程に向かって時系列で進める手法です。一方、アジャイル開発は、優先順位の高い機能から着手し、「開発、設計、実装、テスト」のプロセスを繰り返しながら、機能ごとに完成させていきます。仕様やニーズの変化にも柔軟に対応できる開発手法です。
DevOpsのメリット
他社との競争が激しい状況では、企業はより効率的な開発体制を模索する必要があります。DevOpsを実施すると、企業は多くのメリットを得られるでしょう。ここでは3つのメリットを紹介します。
開発スピードの向上
DevOpsのメリットは、開発スピードの向上です。開発段階から開発チームと運用チームが緊密にコミュニケーションをとることで、意見の対立が生まれる可能性が軽減され、開発スピードの向上につながります。仮に意見の対立が発生する場合でも、開発を終えてから対立が顕在化するのではなく、開発を進める中で運用面の懸念が明らかになることで、開発し直しの手戻りを押えることができます。さらに、開発チームのみで、アジャイル開発を行うよりも、より開発期間とテスト期間が短くなるため、より効率的かつ迅速な開発が可能となるでしょう。
生産性向上
生産性の向上も、DevOpsのメリットです。DevOpsは、開発からリリースまでの期間が短く、リリース後もユーザのフィードバックをもとにサービスを改善していく手法です。不具合があっても機能単位で修正できるため、開発当初のプロセスまでさかのぼって作業をする必要はありません。また、開発チームと運用チームが常に情報を共有しているため、タイムラグによって不要な作業が発生することがなく、生産性が向上します。
安定性・信頼性・セキュリティの向上
安定性・信頼性・セキュリティの向上も、DevOpsのメリットといえるでしょう。DevOpsの開発は機能単位で実施するため、開発体制が小規模になる傾向があります。それゆえ、バグや不具合があった場合にも、発見しやすく、原因の特定も容易です。また、セキュリティホールも発見しやすく、セキュリティの面でも安心できます。DevOpsの実施によって、トラブルを迅速に解決でき、信頼性の高いサービスを提供できる体制の整備が可能です。
DevOpsのサイクル
DevOpsには、計画から開発、デリバリー、運用までの4つのフェーズで構成されるサイクルがあります。このサイクルを繰り返すことで、効率的な開発を実現します。ここでは4つのフェーズについて紹介します。
計画
DevOpsのサイクルは計画のフェーズから始まります。計画フェーズでは、次にリリースする予定のソフトウェアやアプリケーションについての機能を検討し、定義します。エンドユーザからのフィードバックや、これまでの顧客の事例、株主や従業員、ステークホルダーの意見などを反映します。提供するソフトウェアやアプリケーションの価値を最大化できるよう、バックログの作成、スクラムによるアジャイル開発の管理、ダッシュボードの活用などを通して進行状況を可視化することも重要です。
開発
計画を策定できたら、開発のフェーズに入ります。このフェーズには、コードの作成やテスト、コーディング、レビューなどを経て、最終成果物を作成するまでの一連の作業が含まれます。さらに、生産性の高いツールを使用すれば、非効率で煩雑な手作業は自動化でき、品質と安定性、生産性を維持しながら開発を進められるでしょう。開発のフェーズは、自動化テストと継続的インテグレーションを繰り返し実行しながら進んでいきます。
デリバリー
開発の完了後は、DevOpsのサイクルの3つ目のフェーズであるデリバリーに着手します。デリバリーは、開発したソフトウェアやアプリケーションを運用環境のシステムに送り、インストールやデプロイが可能な状態にすることです。実際の稼働環境に向けてのリリース準備の段階といえるでしょう。デリバリーフェーズでは、リリース管理のプロセスを定義し、自動ゲートを設定して、顧客が使用できる状態にしていきます。また、この一連の作業を自動化し、制御された状態で反復的に行われるようにすることで、デリバリーの実施が容易になります。
運用
DevOpsのサイクルの最後のフェーズは運用です。運用フェーズでは、実際の稼働環境下でのトラブルシューティングや保守・管理を行います。併せて、ソフトウェアやアプリケーションの機能や動作が十分なパフォーマンスを発揮しているかモニタリングし、エンドユーザに提供する価値の最大化を図ります。さらに、セキュリティとガバナンス強化も重要です。運用のフェーズを担当するチームは、インシデントがユーザに影響を与える前に発見し、問題を特定して対処します。また、トラブルが起きた際もすみやかに対応し、影響を最小限にとどめるよう努めます。
DevOpsからDevSecOpsへ
DevOpsをさらに発展させる考え方がDevSecOpsです。DevSecOpsはDevOpsのサイクル全体でセキュリティ対策を実施します。DevSecOpsのSecは「Security(セキュリティ)」を意味し、DevOpsにセキュリティ対策を組み込んだ開発手法です。
DevOpsのセキュリティ対策には課題がありました。DevOpsは、機能単位での開発サイクルを繰り返し、頻繁にリリースしていきます。そのため、ソフトウェアやアプリケーション全体の開発が完了した後に、セキュリティ対策を実施し、脆弱性が発見されれば修正するといった対応は不可能です。重大な脆弱性が発覚した場合、修正に時間と手間がかかります。これにより、DevOpsの特徴のスピーディーかつ継続的なリリースが妨げられる点も課題でした。この課題を解決するために、DevOpsにセキュリティ対策を組み込んだ手法がDevSecOpsです。
具体的には、ソフトウェアやアプリケーションの開発に自動化ツールを導入し、テストから本番環境への適用を常時可能な状態にしておくCI(継続的インテグレーション)とCD(継続的デリバリー)のサイクルにセキュリティ対策を組み込みます。例えば、あるシステムを開発し終えてから、その段階で初めて全体に脆弱性スキャンやペネトレーションテストを行うのではなく、そのシステムで利用するアプリケーションの開発中に、そこで用いるOSやイメージ(コンテナイメージや仮想マシンイメージなど)に脆弱性スキャンなどを行います。これにより、脆弱性の発見からフィードバック、修正対応までが早いタイミングで実施でき、昔ながらの開発にありがちだった「開発終盤にセキュリティの問題が見つかってやり直す」という事態を避けることが可能です。なお、DevSecOpsを実現するには、CIやCDに統合しやすく、テスト精度が高いセキュリティツールが必要です。
DevOpsやDevSecOpsを実現しよう
DevOpsは企業の開発スピードの向上に貢献します。さらに、DevOpsにセキュリティ対策を加えることで、DevSecOpsの体制を実現すれば、より確実な開発やリリースが可能です。トレンドマイクロではDevOpsに対応できる「Trend Cloud One」のソリューションを活用するのがおすすめです。ぜひ、「Trend Cloud One」をご活用ください。
3分でわかる!製品概要はこちら
監修
福田 俊介
トレンドマイクロ株式会社 ビジネスマーケティング本部
ストラテジックマーケティンググループ
グループ長 シニアマネージャー
IPA 情報処理安全確保支援士(第000893号)、AWS Certified Solutions Architect – Professional保有。
約10年間クラウドセキュリティ領域およびエンドポイントセキュリティ領域に従事、クラウドの最新アーキテクチャに対応するセキュリティ戦略を立案、市場啓蒙を実施。これまでのセミナー登壇は100回を超える。専門領域は「クラウド」「サーバ」「仮想化」「コンテナ」「脆弱性」「EDR」「XDR」。
電子公告 | ご利用条件 | 個人情報保護方針 | Privacy and Legal |利用者情報の外部送信について | 製品使用許諾契約 |プレスリリース | サポート | サイトマップ | RSS
Copyright ©2024 Trend Micro Incorporated. All rights reserved