Microsoft Build 2019レポート 1日目〜「Java and .NET – Together at Scale」

build2019_entrance

こんにちは、サイオステクノロジー 技術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)とは?

build2019_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

それぞれ統合を進めていく流れは説明よりも資料がわかりやすいので写真を貼りますね。

まずはローン管理アプリケーション。
build2019_loan_management_app

続いて、ローン承認アプリケーション
build2019_loan_approval_app

最終的な構成。
build2019_system_overview

それぞれの CI/CD パイプラインは下記で実現していました。
– .NET(ローン管理アプリ)は Azure DevOps
– Java(ローン承認アプリ)は concourse

さらに本番運用に向けて考慮すべきこととして、下記の導入について言及。

  • 高可用性
  • オートスケーリング
  • 設計改善
    • メッセージングによるイベント
    • サーキットブレーカ(耐障害性の向上)
    • APIゲートウェイ(セキュアなエンドポイント)

他オーケストレータとの比較については触れられていませんでしたのでなんとも言えないところですが、Kubernetes では過剰という時に Marketplace Service で比較的手軽に使えるというのはいいのかもしれません。

それにしても海外の方々の作る資料はわかりやすい。センスあるなぁと感心します。

STI 水倉

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です