近年注目を集めるDevOpsやDevSecOpsは、新規システムの開発で広く採用されているが、ウォーターフォールなど従来型手法が根強い大規模システム開発における現状はどうだろうか。日立製作所のアプリケーションサービス事業部では、DevOpsプラットフォームの「JFrog」を導入して、システム開発に利用している。DevOpsやDevSecOpsの現状を同社アプリケーションサービス事業部 Lumadaソリューション推進本部 担当本部長の広瀬雄二氏と、JFrog Japan ジャパン・ジェネラル・マネージャーの田中克典氏に聞いた。
DevOpsは、開発と運用の異なるプロセスを密に連携させ、スピードや高頻度の変更などに対応し得るシステムを実現する手法だ。ここには頻繁なテストやビルドを実行する継続的なインテグレーション/デリバリー(CI/CD)も含まれる。DevSecOpsは、DevOpsの要素に加え、運用開始後に問題となりがちな脆弱性対策などのセキュリティ品質を開発プロセスの中でも担保していく手法になる。
ウォーターフォールなど従来型の手法では、リリース時における確実性や高い品質などが重視され、決められた仕様通りのシステムを実現することが目標になる。DevOpsやDevSecOpsは、多くの仕様変更が予見されるなど不確実性を伴うシステムを実現するための手法と言える。新旧の違いはあるが、開発するシステムの性質の違いや各フェーズの状況に応じて、全面的にあるいは部分的に利用していくものだろう。
日立製作所 アプリケーションサービス事業部 Lumadaソリューション推進本部 担当本部長の広瀬雄二氏
広瀬氏によれば、システム開発でもそうした観点で以前からこれらの手法を使い分けている。ただ明示的にDevOpsやDevSecOpsを取り入れる必要性が生じているのは、日本でも多くの企業や組織が取り組み始めた「デジタルトランスフォーメーション(DX)」があるという。
当初のDXは、新規ビジネスが主目的で、新しいゆえにビジネスモデルが明確でなく、そのためのシステムの仕様も固定的ではない。必然的に開発手法は、DevOps、アジャイルになる。だがDXのテーマに、既存ビジネスの大きな変革も含まれるようになってきた。ビジネスモデルがある程度明確であり、システムの仕様を定めやすい。よって、ウォーターフォールやDevOpsを使い分けたり、セキュリティの重要性が高まったりしたことでDevSecOpsを採用するケースが広がってきている。
「既存システムのモダナイズ(刷新化の開発)でも、フロントエンドのユーザーインターフェース(UI)開発は、ユーザーのフィードバックを取り入れながら改善していくため、DevOpsになる。また、新規システムを含めて現在は数多くのオープンソースを利用している。ほぼ全てに脆弱性が存在するので、頻繁に脆弱性検査を行うなどDevSecOpsを取り入れていくことなる」(広瀬氏)
広瀬氏によると、日立では以前からシステム開発における自動化手法の活用に取り組み、テクノロジーのトレンドや顧客の要求の変化を踏まえて、さまざまなソリューションを選択している。JFrogの導入は、特にCI/CDによる自動化やセキュリティ強化への対応が目的になる。
「CIとCDに分けた場合、CIについては以前から進めていたが、CDは顧客やプロジェクトによってセキュリティポリシーや開発の進め方が異なったり、顧客の中でも対応が複数の部門にまたがったりするため、マニュアルの作業が多く残されていた。個別対応もあるが、こうした状況を改善する必要性から大規模開発で実績のあるツールでCDを整備している」(広瀬氏)
人材面におけるDevOpsやDevSecOpsへの対応では、これらが必要とされるプロジェクトに応じて、従前から開発の効率化をリードしてきたエンジニアがコア人材となって参加し、実践を通じてプロジェクトメンバーのスキルの醸成を図ってきたという。プロジェクトで蓄積された経験をナレッジ化し、ベストプラクティスとしてその利用や活用の幅を広げている。
DevOpsやDevSecOpsを推進するポイントは、やはりそれらが必要とされるシーンの各所において適用する意義や効果を見極めることだ。「例えば、追加で開発した機能や、結合テストで判明したバグの幾つかをその日のうちに修正して、翌日の再ビルドとテストに反映させるといったことを繰り返すような場合、CI/CDパイプラインに乗せて効率的に作業を進めることをしている。プロジェクト全体としてはウォーターフォール型であっても、部分的にCIやCDの基盤を利用するなど、要素としてDevOpsのような進め方を実践している」(広瀬氏)
よくDevOpsやDevSecOpsか、ウォーターフォールかといった大局的な議論が起りがちだが、当然ながら優劣があるわけではなく、プロジェクトチームの文化も考慮しながら適材適所で実践していくことが望ましい。「テクノロジーの水準自体が向上しているだけに、そうした議論に陥ってしまうのはもったいない」と広瀬氏は話す。
JFrogの田中氏も、DevOpsやDevSecOpsはセキュリティを担保しながら迅速に製品をリリースできることがメリットであるとする。一方で、それらの導入そのものがデメリットになってしまいかねないとも指摘する。
「例えば、分かりやすいのは製造での組み立てラインや自動化といったケース。同業種でも工場によって違う製品あるいはサイズが異なるとすれば、それぞれのシーンで取り組み方が異なってくる。100社あれば100種類のやり方があり、1つのやり方を100社に導入すれば大きな成果を手にできるというものではない。それぞれの課題や目標を見極めて、それぞれのケースに合わせたやり方や工夫、それに慣れることや人材の対応などが課題になってくる」(田中氏)
JFrog Japan ジャパン・ジェネラル・マネージャーの田中克典氏
DevOpsやDevSecOpsの行方はどうか。広瀬氏は、その必然性から今後もウォーターフォールを採用するシーンが残るだろうとしつつ、パッケージソフトウェアやSoftware as a Service(SaaS)を取り入れる動きなども広まってきていることから、DevOpsやDevSecOpsの利用シーンが拡大すると予想している。
「パッケージやSaaS、オープンソースなどの採用が増えていることで、開発者側でバージョンアップをコントロールできないなどの状況が生じつつあり、そうした状況に対応する必要性からアジャイルやDevOpsなどのやり方が利用されていくだろう」(広瀬氏)
ただ、実績あるウォーターフォールなど従来型手法の価値観を優先する傾向は根強くあり、従来型手法を前提とする取引や商慣習もいまだ主流とあることがDevOpsやDevSecOpsの普及でボトルネックになることが予想される。
田中氏は、「DXの動向を見ると、日本ではようやく受け入れられてきたが、海外では既にDXが日常化している。日本は、デジタル人材が少なく、かつ、セキュリティリスクが高まっている中で、これから新しいモノをたくさん開発していかなければならないため、DevOpsやDevSecOpsといった新しいやり方を取り入れていくべきだろう。多くのシーンで従来のやり方による課題が表面化した時には、一気に新しいやり方が受け入れられるかもしれない」と述べる。
広瀬氏が紹介するように、大規模システムの開発においてもDevOpsやDevSecOpsは、さまざまなシーンで既に利用されており、実績も高まりつつある。田中氏は、DevOpsやDevSecOpsが今後さらに定着していくには、新しい手法を一緒に推進していけるパートナーのような関係性が鍵になると語っている。