アプリケーション開発に必要な共通制御部品をアセット化し、多様なお客様のアプリケーション開発プロジェクトに適用、生産性向上と品質確保に貢献。ハイブリッドクラウド環境におけるDevSecOpsとアセットの適用をリードしている。流通・製造業のお客様を中心に、大規模クラウドソリューションのアーキテクチャー策定や、クラウドネイティブ開発におけるコンサルティングなどを担当している。Transformation)という言葉ですが、そのDXを支える立場にあるITシステムの開発や運用そのものにも実はDXが必要とされており、リモート体制の整備やDevOps、自動化などの技術を取り込んでこれを実現する、という考え方がまさにダイナミック・デリバリーの根幹です。本稿では、まずクラウド時代のアプリケーション開発を取り巻く環境、およびクラウド時代の新技術・考え方について概観したのちに、本論であるDevSecOps開発とダイナミック・デリバリーについてプロセス、技術、組織文化の観点で多角的に分析を行い、最後にIBM®が持つオファリングとソリューションについて解説します。経済産業省によるDXレポート[1]をはじめとして、かねてからDXの必要性とそのアプローチについては広く議論されてきていましたが、コロナ禍を契機としてより一層その重要性、緊急性が認識されるようになってきています。DXを支えるITシステムの開発や運用についてはDX推進の機運、技術の進歩、そしてコロナ禍によるワークスタイルの変化を受けてこの数年で少しずつ変化が始まっています。3つの観点で少し掘り下げてみると、クラウド時代のアプリケーション開発を取り巻く環境の変化について以下のようにまとめることができます。クラウドの利点を余すところなく活用してアプリケーションを構築・実行するアプローチのことを指しますが、図1に示すように従来型のアプリケーション開発と対比しながら4つの軸で分析してみましょう。システム基盤(インフラ)従来の物理サーバーや仮想マシン(VM)を中心としたシステム基盤から、コンテナ技術をはじめとするより高度な仮想化技術を採用したシステム基盤にシフトします。これによりシステム基盤の仮想化(IaC)がより加速し、PaaSやSaaSといった汎用・共通サービスの適用範囲拡大と合わせて開発スピードの向上に寄与します。従来のアプリケーション開発では典型的な構造であった全機能一体型(モノリシック)なアプリケーション構造から、細分化したサービスの組み合わせで開発することによる開発スピード向上、サービスの粒度を小さくすることによる保守性向上、サービス単位での最適なスケーラビリティー実現など、開発スピードと変更に対する強さを兼ね備えたマイクロサービス・アーキテクチャーの採用が進みます。開発方法論ビジネス要件が変化し、またITシステムがそれに素早く追従することが求められるようになってきていることもあり、アプリケーション開発の単位はより小さく、開発期間もより短くなる傾向にあります。Engineer)ロールの設置など「素早く変化し続けること」に重きを置いた方法論や考え方の導入が進んできています。その一方で、アプリケーション開発プロジェクトにおける品質(Quality)、コスト(Cost)、納期(Delivery)を管理するためのプロジェクト管理技法は開発方法論によらず依然として必要であり、その重要度は従来と変わりません。ツール従来は設計文書の作成、コーディングなど目的に応じてそれぞれ独立してツールを活用するケースがほとんどでしたが、オープンソース・ソフトウェア(OSS)を活用したツール適用範囲の拡大とツール同士の連携(Toolchain)による自動化の加速により、アプリケーションの開発効率が向上します。考え方が重要になるのですが、図2に示すように複数のツールを組み合わせてパイプラインを構成し、ビルドやテストを自動化することで短いリリースサイクルで品質の高いアプリケーションを継続的にリリースすることが可能になります。ダイナミック・デリバリーの取り組みこのようにクラウド技術やオープンソースの普及によりDevOpsツールの導入は容易になりましたが、単にテクノロジーを導入するだけでは継続的にビジネス価値を提供することは出来ません。ニューノーマル時代、リモートからでも開発・運用が出来る環境が求められています。IBM®ではダイナミック・デリバリー[3]と呼ぶ取り組みの中で新しい働き方を推進し、コロナ禍のような緊急時でもお客様のデジタル変革のスピードを落とすことなくITサービスを継続して提供しています。Security従来のDevOpsにセキュリティ設計や実装・評価を統合することでアプリケーション開発や品質改善のスピードを加速させる手法はDevSecOpsと呼ばれています。マルチクラウドやハイブリッドクラウドなど複雑化するシステムではセキュリティ対策を後回しにせず、ライフサイクルの初期段階から継続的に対応することが益々重要となっています。図4を用いてDevSecOpsの各プロセス概要を説明します。DevSecOpsのプロセス・継続的ビジネス計画リーン原則に基づく手法を採用し、初期段階では規模を広げずに、顧客からのフィードバックに基づいて継続的に計画を調整します。機能要件だけでなくセキュリティ要件を含む非機能要件もバックログで管理することも重要です。要求者である事業部門と実現者であるIT部門が効果的に協業して開発を進めます。ツールを活用し、要求や作業、成果物を共有・管理します。早期に実装しテストし要求の実現を評価します。・継続的テスト、・継続的リリースおよびデプロイメント開発からテスト、デプロイメントを一気通貫で自動化します。各社クラウドにはCI/CDで利用可能なサービスが標準で用意されており、開発者は要求管理からソースコードの並行開発、ビルド、各種テスト、デプロイなどを自動実行するパイプラインを構築することが可能です。単体テスト、結合テスト、セキュリティテストなど各種テストではオープンソースや商用ソフトウェアを組み合わせた自動化が迅速なリリースと品質の確保、工数の削減の観点で重要となってきます。コンテナ技術を活用することでテスト環境と本番環境の違いを吸収することも有効な手段です。・継続的顧客フィードバックおよび最適化サービスの価値を向上させるため、ユーザーの振る舞いを分析し把握します。ビジネスに影響を及ぼす顧客の振る舞いを把握し速やかに対応します。統合サービス管理を実施します。行い、問題を速やかに解決します。クラウド上のサービスを組み合わせることでアプリケーションや基盤を監視しメールやチャットでアラートを受け取ることができます。第三者による定期的なペネトレーションテストなどを実施します。Engineering(SRE)やAI技術を活用し、IT運用の自動化、高度化が進んでいくでしょう。業界やお客様が定義するセキュリティ基準やコンプライアンス基準に準拠しているか、継続的に評価し、不備があれば改善します。DevSecOpsプロセスと代表的なソフトウェアやサービスを示します。従来の開発チームと運用チームはそれぞれ異なったマインドセットを持っています。開発チームは新しい商品・サービスを早くリリースしようとしますが、運用チームはシステムの安定稼働を求められるため、なるべく変更を避ける傾向があります。システムライフサイクル全体を改善するために協業しお互いを助け合う協働が必要になります。DevSecOpsに求められる企業文化のベストプラクティスを示します。まとめご説明した通り、クラウド時代のDevOpsではSecurity考慮したDevSecOpsの開発・運用プロセスとテクノロジー、企業文化を適切に組み合わせることが重要となります。IBM®はお客様のDevSecOps適用を支援するため、上記3つの観点からDevSecOps成熟度を評価して現状の課題を洗い出し、次に目指すべきTo-Beモデルを定義、施策を実現するためのロードマップ策定を行う「DevSecOps構想策定サービス」を実施しています。AIOpsを活用した運用の高度化」、IBMリモートセンターからの「統合運用サービス」などIBMの知見と経験を活かした各種DevSecOpsサービスを提供していますので是非ご活用ください。Corp.の商標または登録商標です。