ITインフラの環境は刻々と変化し続けている。ジェーシービー(以下、JCB)では、2020年からクラウドネイティブ環境を用いてサービスの新規開発に取り組んでいるが、そこで重視しているのがSRE(Site Reliability Engineering:サイト信頼性エンジニアリング)の考え方だ。

12月13日、14日に開催された「TECH+フォーラム クラウドインフラ Day 2022 Dec. 変革を支えるニューノーマルのITインフラとは」に、同社 システム本部 デジタルソリューション開発部 DXテックグループ 主査の笹野真平氏が登壇。新規サービスを展開する際のシステム化・デジタル化のスピードアップを図るために同氏が立ち上げたクラウドネイティブの新規プロジェクトにおいて、どのようにSREに取り組んでいるかを紹介した。

【あわせて読みたい】「TECHフォーラム クラウドインフラ Day 2022 Dec. 変革を支えるニューノーマルのITインフラとは」その他のレポートはこちら

“出島戦略”で構築された「JCB Digital Enablement Platform」

笹野氏が冒頭、クラウドネイティブを活用した新規プロジェクトのコンセプトとして掲げたのは「出島戦略」だ。これはゼロベースでデザインし、スモールスタートで母体(全社)とは異なるルールを適用することを意味している。期待されるプロセスやマネジメント、チーム体制、クラウドネイティブのアーキテクチャ、さらには開発手法についてもプロジェクトの中で新しく作り上げているという。

笹野氏がこうした戦略を選んだのは、プロジェクトのスピードを上げていくには、以下のようなことが必要だと考えたからだ。

  • ・時間をかけずに低コストで安全なサービスを提供すること
  • ・制約のない自由な開発をすること
  • ・運用を安定化し、自動化することなどを目的として、パブリッククラウド運用のマネージドサービスを極力使うこと
  • ・運用面の効率化で自動化(IAC)を取り入れること
  • ・CI/CDにより開発スピードを上げること
  • また、これらの項目を満たす「新規サービスの高速開発のためのプラットフォーム」として構築されたのが「JCB Digital Enablement Platform(JDEP)」だ。同プラットフォームは、Google Cloudをベースに、GKE(Google Kubernetes Engine)環境でサービスメッシュの「Istio」をコアプロダクトとする。笹野氏によれば「載せるサービスによってはミッションクリティカルなものもある」ため、同社では東京と大阪で負荷を分散する両現用構成(負荷分散構成)にしているという。

    • JCB Digital Enablement Platformのイメージ図

    アプリ開発については、ドメイン駆動設計やマイクロサービスアーキテクチャを導入。また統合的な監視のできるツールや、CWPP(Cloud Workload Protection Platform)/CSPM(Cloud Security Posture Management)を管理できるセキュリティサービスを導入しているという。さらに、オープンソースソフトウエアも積極的に活用することで、「低コストで柔軟なプラットフォームを構築している」と、同氏は話す。

    プロジェクトのチーム体制 - SREチームの役割とは?

    笹野氏は次に、プロジェクトのチーム体制について説明した。基本的には、作りたいサービスに応じて専用のチームを作っていく方針だが、土台の部分となるプラットフォームだけは、横断的な管理を行うプラットフォームチームを組成しているという。また、サービスの信頼性を上げるためのSREチームや最初にデザインを行うアーキテクチャチームなどが、横串になって全体のサポートをする役割を担う。

    • JCBにおける開発体制

    クラウド環境の信頼性を高めていくために立ち上げたSREチームだが、その役割には、さまざまなチームやプラットフォーム全体にSREの考え方や手法を注入し、社内に知見を広げていくことも含まれている。

    「サービスに対して適切な信頼性を担保していくことで、顧客の満足度を維持することもSREチームの目的の1つです」(笹野氏)

    SREの定義は幅広いため、ターゲットを絞って定義する必要があると笹野氏は説明する。実際、同氏のプロジェクトの場合、ターゲットは「主要なインフラサービス構築や改善をアプリチームに対して支援すること」と、「障害訓練や運用ポリシーの策定・展開等横断的な取り組みを行いサービス全体の信頼性を保つこと」の2つに絞られているそうだ。

    また、SREチームの役割はあくまでもアプリチームへのSRE支援であるため、「やらないこと」を定義することも必要だという。ツールの導入やコード設計、端末のトラブル対応など、本来は他のチームが手掛けるべきことに対応しないよう、線引きをすることも重要なのだ。

    「SREはアプリチームと関係が近いメンバーも多いので、頼まれたからといって便利屋にならないように注意することが必要です」(笹野氏)