概要
マイクロサービスアーキテクチャやクラウドネイティブ技術をパッケージ開発に適用するための PoC を実施。次世代サービスのアーキテクチャの ToBe 像を描き、必要な技術の選定・評価を行った。
プロジェクト後半からは従来のオフショア発注により空洞化していた開発スキル向上のため PoC を顧客社員主体で実施するようにして、豆蔵は支援に周り、モデリング教育・技術サポートをしながらプロジェクトを進めている。
顧客の目的
ビジネス環境の変化に迅速に対応できる次世代サービスの基礎を確立する
- マイクロサービスアーキテクチャやクラウドネイティブ技術を適用する
次世代サービスの開発・保守に耐えうる技術力を獲得する
- オフショア発注により発生しているスキル空洞化を解消する
顧客のビジネスドメイン
- 生命保険
支援内容
当初は PoC 作業主体として参画。プロジェクトが進むにつれ、実施主体は顧客社員としてスキルトランスファーに移行。
次世代サービスの ToBe 像の検討
- アーキテクチャ、プロセス、環境、組織の観点で実施
技術検証および方針策定の支援 (アーキテクチャ、プロセス、環境が対象)
- 高難易度などの理由で顧客社員で対応できない部分の対応
- 方針策定における大方針の提示
- 難易度が高い部分の検証コードの実装
- 顧客社員の知見を補うための各種説明やQA対応
ビジネス適正検証の支援 (生保のシミュレーション機能の開発)
- アプリケーションの対象ドメイン分析とサービス設計
- 検証用アプリの開発
- 開発基盤の確立、知見を補うための各種説明や QA 対応
- アプリケーションそのもの、CI/CD 周り、クラウド・Kubernetes 周りなど
モデリングを中心とした教育
- 現場コンサルタントのメンバーが勉強会を主催し、モデリングに関する教育を実施
- 豆蔵教育チームも参画し、モデリング、設計原則の教育を実施
- オンラインでも、実プロジェクトベースの素材で教育を実施
- 他にもオブジェクト指向開発基礎などの教育を実施
実案件への技術検証結果を適用に着手
課題とソリューション
知見がなく社内だけではクラウドネイティブ技術を採用できない
- グローバルスタンダードな要素技術を中心に ToBe 像を作成
- ToBe を踏まえた候補技術の一次スクリーニングを行い新規技術の障壁を低減
- スキルを蓄積するための情報共有会実施や Wiki 整備
- GitOps による開発から運用までの自動化
開発経験の豊富な社員がおらず、決められた手順に沿った開発しかできない
- 検証や開発を顧客主体とすることで技術に触れる/考える機会を提供
- 考えさせることを重視した開発のサポート
- こちらで考えたことをただ展開するのではなく、まず自身で考えてもらう
- レビューなどの際に問いを繰り返し、可能な限り自身で問題点の是正を行ってもらう
- どうしても解決できないような場合は実演するなどして叩き台を提供する
- 高難易度の部分については豆蔵側で担当を巻き取り、手本を提供
- 基礎力を上げるためのティーチング
- オブジェクト指向開発教育の実施
- 開発過程で見えた不足している技術力を補完するための勉強会実施
コロナ禍に伴うリモートワーク化により顧客側メンバへの技術支援チャネルが限定されている
- チャットツール上での勉強会 (課題を投げての任意参加) の実施
- チャット、Web 会議 (WebEx、Discord) ツールを状況に応じて使い分けた QA 対応
効果
- ビジネス変化に迅速に対応可能なクラウドネイティブアプリケーションの基礎を確立した
- 参画した顧客社員の技術力が向上、他の社員への展開が可能となった
- 20 歳台の若手メンバーを中心に定量的な指標は出せないが確実にスキルアップしている
- まだまだエレガントではないが実装できるようになっている
- モデリングについても基礎レベルはクリアしている
今後の展望
- 生命保険パッケージ全体への技術適用
- 一気に MSA を適用するのではなく、少しずつ適用していく
- 親会社の基幹システム刷新への技術適用
- 同社保有の別パッケージへの技術適用
- 参画していない社員に向けた技術展開
- オフショア利用に対するスキーム検討
適用技術
実行基盤
- クラウド
- AWS (実案件以降)
- Kubernetes
- Istio (技術検証まで)
開発言語
- TypeScript
- Java
アプリケーション
- React
- Spring Boot
デプロイ
- Helm
- Kustomize
CI/CD
- GitLab CI
- Argo CD
ビルドツール
- Maven
- Docker
運用監視 (最初のビジネス適正検証までで以降はスコープアウト)
- Prometheus/Grafana
- ElasticSearch/Fluentd/Kibana
- Jaeger
- DataDog (最初のビジネス適正検証時のみ)