|
谷松 清孝 Kiyotaka Tanimatsu 日本アイ・ビー・エム株式会社 グローバル・ビジネス・サービス, ハイブリッド・クラウド・サービス アソシエイト・パートナー
|
|
前田 幸一郎 Koichiro Maeda 日本アイ・ビー・エム株式会社 グローバル・ビジネス・サービス, ハイブリッド・クラウド・サービス アソシエイト・パートナー |
アプリケーション開発に必要な共通制御部品をアセット化し、多様なお客様のアプリケーション開発プロジェクトに適用、生産性向上と品質確保に貢献。ハイブリッドクラウド環境におけるDevSecOpsとアセットの適用をリードしている。
|
流通・製造業のお客様を中心に、大規模クラウドソリューションのアーキテクチャー策定や、クラウドネイティブ開発におけるコンサルティングなどを担当している。 |
Cloudの利用を促進するための阻害要因(取り巻く背景)
今や目にしない日はないというぐらいに日常的に使われるようになったデジタル変革(DX : Digital Transformation)という言葉ですが、そのDXを支える立場にあるITシステムの開発や運用そのものにも実はDXが必要とされており、リモート体制の整備やDevOps、自動化などの技術を取り込んでこれを実現する、という考え方がまさにダイナミック・デリバリーの根幹です。
本稿では、まずクラウド時代のアプリケーション開発を取り巻く環境、およびクラウド時代の新技術・考え方について概観したのちに、本論であるDevSecOps開発とダイナミック・デリバリーについてプロセス、技術、組織文化の観点で多角的に分析を行い、最後にIBM®が持つオファリングとソリューションについて解説します。
1. クラウド時代のアプリケーション開発を取り巻く環境
経済産業省によるDXレポート[1]をはじめとして、かねてからDXの必要性とそのアプローチについては広く議論されてきていましたが、コロナ禍を契機としてより一層その重要性、緊急性が認識されるようになってきています。特に、DXを支えるITシステムの開発や運用についてはDX推進の機運、技術の進歩、そしてコロナ禍によるワークスタイルの変化を受けてこの数年で少しずつ変化が始まっています。3つの観点で少し掘り下げてみると、クラウド時代のアプリケーション開発を取り巻く環境の変化について以下のようにまとめることができます。
a. ビジネスの変化に対する対応力
これまで以上にビジネスの変化に対してITシステムの迅速な追従が求められるようになり、従来のような重厚長大で長期間を要するウォーターフォール型のシステム開発から、Time-to-Marketを意識しつつビジネス優先度やエンドユーザーの反応を都度考慮しながらリリースを積み重ねていく開発にシフトしつつあります
b. 新技術を活用した開発スピードの向上
クラウドはもとより、コンテナを活用したシステム基盤の仮想化(IaC : Infrastructure as Code)の加速、マイクロサービス・アーキテクチャーに代表される変化に強いアプリケーション構造の採用、生産性向上を狙った各種自動化ツールの活用と相互連携など、アプリケーション開発のスピードを加速するための技術が広く活用されるようになってきています
c. 開発スタイルの変化
New Normalの定着ともにリモートワークを前提としたアプリケーション開発も広まりつつあり、大部屋で顔を合わせながらのコミュニケーション、お客様先〜ニアショア〜オフショアといった拠点単位の開発といった従来の当たり前のように行われていた開発スタイルから、ツールを活用したリモートのコミュニケーション、場所を意識しない自由度の高いチーム編成といった新しい取り組みが加速しています
2. クラウド時代の新技術・考え方
クラウド時代のアプリケーション開発を端的に表す用語として、クラウドネイティブ[2] があります。クラウドの利点を余すところなく活用してアプリケーションを構築・実行するアプローチのことを指しますが、図1に示すように従来型のアプリケーション開発と対比しながら4つの軸で分析してみましょう。
図1 : 従来型アプリケーション開発とクラウドネイティブ開発の対比
a. システム基盤(インフラ)
従来の物理サーバーや仮想マシン(VM)を中心としたシステム基盤から、コンテナ技術をはじめとするより高度な仮想化技術を採用したシステム基盤にシフトします。これによりシステム基盤の仮想化(IaC)がより加速し、PaaSやSaaSといった汎用・共通サービスの適用範囲拡大と合わせて開発スピードの向上に寄与します。
b. アプリケーション構造
従来のアプリケーション開発では典型的な構造であった全機能一体型(モノリシック)なアプリケーション構造から、細分化したサービスの組み合わせで開発することによる開発スピード向上、サービスの粒度を小さくすることによる保守性向上、サービス単位での最適なスケーラビリティー実現など、開発スピードと変更に対する強さを兼ね備えたマイクロサービス・アーキテクチャーの採用が進みます。
c. 開発方法論
ビジネス要件が変化し、またITシステムがそれに素早く追従することが求められるようになってきていることもあり、アプリケーション開発の単位はより小さく、開発期間もより短くなる傾向にあります。従来はウォーターフォールで開発して本番稼働後は定期的な小規模改修を重ねて一定の周期で大規模改修・再構築という流れが一般的でしたが、ビジネス価値の早期特定と優先度に沿ったインクリメンタルな開発を実現するアジャイルやDevOpsの採用、アプリケーションの機能拡張と運用品質の適正なバランスを実現するためのSRE(Site Reliability Engineer)ロールの設置など「素早く変化し続けること」に重きを置いた方法論や考え方の導入が進んできています。
その一方で、アプリケーション開発プロジェクトにおける品質(Quality)、コスト(Cost)、納期(Delivery)を管理するためのプロジェクト管理技法は開発方法論によらず依然として必要であり、その重要度は従来と変わりません。
d. ツール
従来は設計文書の作成、コーディングなど目的に応じてそれぞれ独立してツールを活用するケースがほとんどでしたが、オープンソース・ソフトウェア(OSS)を活用したツール適用範囲の拡大とツール同士の連携(Toolchain)による自動化の加速により、アプリケーションの開発効率が向上します。
前述のアジャイルやDevOpsでは継続的インテグレーション (CI) や継続的デリバリー (CD) の考え方が重要になるのですが、図2に示すように複数のツールを組み合わせてパイプラインを構成し、ビルドやテストを自動化することで短いリリースサイクルで品質の高いアプリケーションを継続的にリリースすることが可能になります。
図2 : CI/CDパイプライン
3. ダイナミック・デリバリーの取り組み
このようにクラウド技術やオープンソースの普及によりDevOpsツールの導入は容易になりましたが、単にテクノロジーを導入するだけでは継続的にビジネス価値を提供することは出来ません。またニューノーマル時代、リモートからでも開発・運用が出来る環境が求められています。
IBM®ではダイナミック・デリバリー[3]と呼ぶ取り組みの中で新しい働き方を推進し、コロナ禍のような緊急時でもお客様のデジタル変革のスピードを落とすことなくITサービスを継続して提供しています。(図3)
図3. ダイナミック・デリバリーの取り組み
4. DevOps + Security
従来のDevOpsにセキュリティ設計や実装・評価を統合することでアプリケーション開発や品質改善のスピードを加速させる手法はDevSecOpsと呼ばれています。マルチクラウドやハイブリッドクラウドなど複雑化するシステムではセキュリティ対策を後回しにせず、ライフサイクルの初期段階から継続的に対応することが益々重要となっています。
図4を用いてDevSecOpsの各プロセス概要を説明します。
図4. DevSecOpsのプロセス
・継続的ビジネス計画
リーン原則に基づく手法を採用し、初期段階では規模を広げずに、顧客からのフィードバックに基づいて継続的に計画を調整します。機能要件だけでなくセキュリティ要件を含む非機能要件もバックログで管理することも重要です。
・コラボレーティブ開発
要求者である事業部門と実現者であるIT部門が効果的に協業して開発を進めます。ツールを活用し、要求や作業、成果物を共有・管理します。早期に実装しテストし要求の実現を評価します。
・継続的テスト、・継続的リリースおよびデプロイメント
開発からテスト、デプロイメントを一気通貫で自動化します。
各社クラウドにはCI/CDで利用可能なサービスが標準で用意されており、開発者は要求管理からソースコードの並行開発、ビルド、各種テスト、デプロイなどを自動実行するパイプラインを構築することが可能です。
特に単体テスト、結合テスト、セキュリティテストなど各種テストではオープンソースや商用ソフトウェアを組み合わせた自動化が迅速なリリースと品質の確保、工数の削減の観点で重要となってきます。またコンテナ技術を活用することでテスト環境と本番環境の違いを吸収することも有効な手段です。
・継続的顧客フィードバックおよび最適化
サービスの価値を向上させるため、ユーザーの振る舞いを分析し把握します。ビジネスに影響を及ぼす顧客の振る舞いを把握し速やかに対応します。ツールを活用しインシデント管理や問題管理、変更管理など統合サービス管理を実施します。
・継続的モニタリング
サービスレベルを維持・向上させるためにアプリケーションや基盤の性能監視、障害監視を行い、問題を速やかに解決します。クラウド上のサービスを組み合わせることでアプリケーションや基盤を監視しメールやチャットでアラートを受け取ることができます。また第三者による定期的なペネトレーションテストなどを実施します。さらにこれからの運用ではSite Reliability Engineering(SRE)やAI技術を活用し、IT運用の自動化、高度化が進んでいくでしょう。
・継続的コンプライアンス評価
業界やお客様が定義するセキュリティ基準やコンプライアンス基準に準拠しているか、継続的に評価し、不備があれば改善します。
DevSecOpsプロセスと代表的なソフトウェアやサービスを示します。(表1)
表1. DevSecOpsプロセスと代表的なソフトウェアやサービス
DevSecOpsのプロセス
|
代表的なソフトウェアやサービス
|
継続的ビジネス計画
|
n/a
|
コラボレーティブ開発
|
Redmine、JIRA Software、Trello
|
継続的テスト
|
GitLab、Jenkins、Tekton、JUnit、SonarQube、OWASP ZAP
|
継続的リリースおよびデプロイメント
|
Ansible®、Chef、Terraform、ServiceNow
|
継続的顧客フィードバックおよび最適化
|
ServiceNow、JIRA Service Management
|
継続的モニタリング
|
LogDNA、SysDig、Instana®、Slack、Teams
|
継続的コンプライアンス評価
|
PCI DSSやGDPR等の規制に対応したコンプライアンス管理サービス
|
5. DevSecOpsに求められる企業文化
従来の開発チームと運用チームはそれぞれ異なったマインドセットを持っています。開発チームは新しい商品・サービスを早くリリースしようとしますが、運用チームはシステムの安定稼働を求められるため、なるべく変更を避ける傾向があります。システムライフサイクル全体を改善するために協業しお互いを助け合う協働が必要になります。
DevSecOpsに求められる企業文化のベストプラクティスを示します。(表2)
表2. DevSecOpsに求められる企業文化
品質特性
|
ベストプラクティス
|
コミュニケーション
|
オープンで正直なフィードバックを提供する
|
参加姿勢
|
多様性を認め合い、活かし合う(インクルージョン)
|
意思決定
|
全員を巻き込んだ意思決定
|
対立(軋轢)
|
問題に厳しく、人間に優しく
|
リーダーシップ
|
自律的チームを作る
|
目標
|
完全ではなく、ベターを目指す
|
役割
|
結果に共同の責任を持つ
|
グループ規範
|
頼まれなくても担う
|
問題解決
|
失敗から学ぶ
|
風土
|
助け合いの精神
|
個人の振る舞い
|
「私」ではなく「私たち」の精神
|
6. まとめ
ご説明した通り、クラウド時代のDevOpsではSecurity考慮したDevSecOpsの開発・運用プロセスとテクノロジー、企業文化を適切に組み合わせることが重要となります。
IBM®はお客様のDevSecOps適用を支援するため、上記3つの観点からDevSecOps成熟度を評価して現状の課題を洗い出し、次に目指すべきTo-Beモデルを定義、施策を実現するためのロードマップ策定を行う「DevSecOps構想策定サービス」を実施しています。
またマルチクラウド/ハイブリッドクラウド環境へのデプロイを想定した「アプリケーション開発環境構築サービス」や「Watson AIOpsを活用した運用の高度化」、IBMリモートセンターからの「統合運用サービス」などIBMの知見と経験を活かした各種DevSecOpsサービスを提供していますので是非ご活用ください。
[参考文献]
[1] 経済産業省 : DXレポート2(中間取りまとめ) , https://www.meti.go.jp/press/2020/12/20201228004/20201228004.html
[2] IBM THINK Blog Japan : クラウド・ネイティブという考え方――これからのIT基礎知識 Vol.1,
https://www.ibm.com/blogs/think/jp-ja/cloud-native-concept-01/
[3] IBM:IBM Dynamic Delivery,https://www.ibm.com/jp-ja/services/dynamic-delivery
IBM、IBMロゴ、Ansible® 、Instana® は、米国やその他の国におけるIBM Corp.の商標または登録商標です。
*ProVISION 記事一覧はこちらから
#Cloud#Highlights#Highlights-home#ProVision#ProVISION#ProVision-Cloud