概要
オンプレミスを前提とし特定ベンダ製品に依存する従来のアプリケーションアーキテクチャを、クラウドネイティブなアーキテクチャへと刷新するプロジェクトの支援。
ベンダーフリーな豆蔵の強みを生かした製品選定、アーキテクチャ構築を実施した。マルチクラウド、ハイブリッドクラウドのため 可搬性の高いコンテナアーキテクチャを採用し、アプリ開発者の裁量の制約とならない規約を The Twelve-Factor App をベースとして作成した。
顧客の目的
- オンプレミスを前提する従来アーキテクチャからクラウドに対応した新アーキテクチャへの刷新
- セキュリティに優れるオンプレミス環境と拡張性や柔軟性に優れるクラウド環境とのシームレスな連携
- ベンダーロックインを回避すると同時に各クラウドベンダの強みを個別に活用(マルチクラウド)
顧客のビジネスドメイン
- 通信
支援方針
- クラウドベンダーに依存しないアーキテクチャスタイルの提案
- 可搬性の高いコンテナアーキテクチャの提案(クラウド、オンプレの環境差異による影響最小化)
- クラウドと親和性の高いアプリケーション規約の策定
課題とソリューション
結果的に高コストになる特定ベンダに依存したソリューションからの脱却
- ベンダーフリーの立場でクラウドネイティブ製品・アーキテクチャ普及を推進する CNCF ホスティングプロジェクトを中心に製品選定を行う
従来のアーキテクチャは自由度が低く、改修にもコスト・時間を要するため陳腐化が著しく、開発現場からはやりたいことができないとの不満が強い
- 最低限守るべき規約として The Twelve-Factor App を定めるものの、採用するフレームワーク、ライブラリ等は各システム別である程度の自由度は許容し、トップダウンとボトムアップのバランスを調整する
※ The Twelve-Factor App は抽象的なのでそのままでは適用できない。採用技術に合わせた具体化が必要となる。
複雑度の低いものや開発者のスキルが低いシステムでは、開発要員がインフラやコンテナを意識せず、ビジネスロジックの開発のみに注力したい
- マニフェストの記述が必要な Kubernetes だけでなく、CloudFoundry ベースの PaaS 製品の活用についても盛り込んだアーキテクチャを策定
スキルの高い開発要員はいるが、大部分はスキルが低く、とりあえずコードが書けるレベルで難しいことはできない。
- 現段階の開発スキルに合わせて、成熟度が高くコミュニティが活発なフレームワーク・ライブラリを標準として採用
- 標準外のフレームワーク・ライブラリを採用する場合の採用基準をガイドラインとして盛り込む
効果
- コンテアーキテクチャを採用した開発ガイドラインの策定
適用技術
- 実行基盤
- Pivotal (現VMware)製品群
- Pivotal Application Service
- Pivotal Container Service
- Concourse CI
- Pivotal (現VMware)製品群
- 推奨アプリケーションアーキテクチャ
- The Twelve-Factor App as アプリケーション実装規約
- Spring Boot as Backend Service Tier
- Node.js as Backend for Frontend Tier
- Vue.js as Frontend Tier