全3801文字

 今回はDevOps・CI/CD(継続的インテグレーション/継続的デリバリー)に関連した事例として、「GitLab」を導入した東京海上日動システムズを紹介する。保険金融グループである東京海上グループのシステムを支える同社は業務分析からビジネスプロセスの構築、幅広いソリューションの提案によって最適なシステムをつくり上げ、安定稼働させることを企業ミッションとしている。

 以前のホスト中心のシステムから、今後はクラウドを活用した開発案件の増加が予想される中、同社はビジネススピードの加速によって必然的に求められる開発スピードの向上を実現するため、新たな開発支援ツールとしてGitLabを導入し多くの効果を得た。

集団での開発に不可欠な排他制御の実現

 多くの開発者がシステム構築に従事する東京海上日動システムズは、開発時の「排他制御」が大きな課題となっていた。1990~2000年代、同社はホスト主体の基幹システムを使用しており、ホスト内で各種資源を管理し、「悲観的排他制御」つまりチェックアウトロックによる開発形態を取ってきた。2000年代半ばごろからは、フロントエンドにサーバーを使用し、ホストと連携させる形態へのシフトを推進。この段階で開発形態の変化への対応を考え、バージョン管理ツールを導入してプログラム資源の管理に乗り出す。

 しかしその結果は想定外のものだった。東京海上日動システムズの中原大佑ITインフラサービス本部インフラソリューション二部課長代理は「これまでのようなチェックアウトロックではなく『楽観的排他制御』、つまりブランチ管理のような形での排他制御を考えたが、ホスト対応をしてきた開発者たちがこの変化についていけず、ツールを導入したものの、これまで通りのチェックアウトロックによる排他制御に甘んじる状況が続いた」と話す。

 そして2017年、同社にとって2度目となるツール導入の計画が浮上する。「今後想定されるホスト縮小、サーバー主体のシステム環境への流れの中、1度は断念した『楽観的排他制御』へ開発の方向をシフトしていきたいと考え、その仕組みとしてGitLabの導入を考えた」(中原氏)。

CI/CDを含めた総合的な開発支援ツールとしてGitLabを採用

 GitLabは、分散型バージョン管理を実現するGitサービスをベースにしたDevOpsプラットフォームだ。Gitによる排他制御はもちろんのこと、CI/CDや他のサービスとの連携、プロジェクト計画、ソースコード管理、セキュリティーなどの機能を兼ね備えており、総合的な開発支援ツールとして活用できる。

 特にCI/CDと他のサービスへの連携によって、ソースコード開発からテスト、デプロイまでの自動化や、承認プロセス設定などが可能なため、DevOps全体として効率化やスピード化を図ることができる。

 東京海上日動システムズは具体的なソリューション選定にあたり、Gitそのものや、他社ツールの採用という案も検討したが、GitLabの採用を決定した。「CI/CDを含め総合的な利用が可能な点やコストなどを評価した」(中原氏)という。最終的に日本国内でのGitLab代理店であるクリエーションラインへコンタクトした。

リスクを最小限に抑えた導入戦略

 GitLabの導入工程では、金融機関にふさわしい、リスクを最小限に抑えた導入戦略を取った。中原氏は「最初は2018年に小規模な個別システムにGitLabを適用し、2019年に大規模なものの影響度がそれほど大きくないドキュメント管理システムをGitLabで刷新した。そして2020年から2021年にかけて、基幹システムの資源管理に向けGitLabを適用した」と話す。

 最終ターゲットである基幹システムへ適用する前に、ユーザーは多いが仮に問題が発生しても本番環境に影響を与えないドキュメント管理システムを挟むことで、ユーザーの習熟度向上を図り、スムーズかつ安全なシステム移行を実現するという工夫だった。そしてドキュメント管理システムへ導入した段階で、同社全社員の約8割がGitLabの経験を積んだ。

国内最大規模となる4000ユーザーのGitLab環境を実現

 東京海上日動システムズは2021年から基幹システムへGitLabの適用を開始し、現状ではこのシステムはGitLabのユーザー数が国内最大規模の4000ユーザーとなっている(パートナーも含むユーザー数)。

 コロナ禍の影響もあり、GitLabの実運用は当初の計画より若干開始が遅れた。だが、「アプリケーション品質を向上」「開発ツール改定コストを7割削減」「システム連携により運用フローを一本化」「在宅でのリモートワークを可能に」といった面で既に効果が出ているという。

東京海上日動システムズにおけるGitLab導入の成果
東京海上日動システムズにおけるGitLab導入の成果
[画像のクリックで拡大表示]

■アプリケーション品質を向上
 総合開発支援ツールとして一括した環境を提供することによって、環境間の差異が生じなくなり、結果としてアプリケーション品質が向上した。「以前はソース環境と実行環境をツールによって連携していたため、ステージング環境に反映した時に差異が発生するといった障害が見られた。GitLabを導入したことにより、ソースからモジュールを作って配備するまでの流れを一元管理することが可能となり、ソースとプレ本番環境の資源の差異が無くなり、品質向上につながった」と中原氏は話す。