こんにちは、サイオステクノロジー 技術2部 水倉です。
Microsoft Build 2019 初日のセッション「Java and .NET – Together at Scale」をレポートします。
Pivotal 社のセッションで、2つの会社が合併し、それぞれ異なるアーキテクチャのシステムを統合するシナリオで Pivotal Application Service(PAS)がどのように機能するかを解説した内容でした。
実は思っていた内容と違っていて(セッション内容をちゃんと読んでいなかった己のせいです、はい・・・)、PAS 自体の事前知識なしで若干理解が怪しいですが、お届けします。
合併前の A 社・B 社のアーキテクチャ
システム | OS | 言語/フレームワーク | DB | 備考 |
---|---|---|---|---|
A 社「ローン管理アプリケーション(ローンプロセス管理」 | Windows | .NET Core | SQL Server | マイクロサービスアーキテクチャ |
B 社「ローン承認アプリケーション(ローン適用可否チェック」 | Linux | Java/Spring Boot | (※) 永続化無し | REST API |
ゴール
システム統合の非機能要件です。
- 既存言語を維持する (CI/CD パイプライン、IDE などそのまま使えること)
- 単一の クラウドプロバイダ (Azure 前提)
- 単一のプラットフォームで全てのランタイムをサポートすること
- .NET(Win)、Java(Linux)双方を単一プラットフォームでサポート
- セルフサービスマーケットプレース?
Pivotal Application Service(PAS)とは?
異なるビジネス要求に対して最適なランタイムを1つのプラットフォームで提供できる Azure Marketplace のサービスのようです。内部アーキテクチャの詳細は語られていませんでしたが、コンテナオーケストレータに相当すると理解しました。
PAS は Pivotal Services Marketplace と組み合わせることでフレキシブルに拡張可能ということでした。
- Pivotal Services Marketplace で提供される機能
- Spring Cloud Services
- サービスレジストリ
- Configサーバ
- サーキット・ブレーカ ダッシュボード
- Azure Service Broker
- Azure Storage
- Azure Redis Cache
- Azure Service Bus
- Azure Event Hubs
- Azure SQL, MySQL, PostgreSQL
- Azure SQL DB Failover Group
- Azure CosmosDB
- Spring Cloud Services
それぞれ統合を進めていく流れは説明よりも資料がわかりやすいので写真を貼りますね。
それぞれの CI/CD パイプラインは下記で実現していました。
– .NET(ローン管理アプリ)は Azure DevOps
– Java(ローン承認アプリ)は concourse
さらに本番運用に向けて考慮すべきこととして、下記の導入について言及。
- 高可用性
- オートスケーリング
- 設計改善
- メッセージングによるイベント
- サーキットブレーカ(耐障害性の向上)
- APIゲートウェイ(セキュアなエンドポイント)
他オーケストレータとの比較については触れられていませんでしたのでなんとも言えないところですが、Kubernetes では過剰という時に Marketplace Service で比較的手軽に使えるというのはいいのかもしれません。
それにしても海外の方々の作る資料はわかりやすい。センスあるなぁと感心します。
STI 水倉