BT

Kevin Webber氏、エンタープライズJavaアプリのクラウド移行について語る

| 作者: Srini Penchikala フォローする 36 人のフォロワー , 翻訳者 sasai フォローする 0 人のフォロワー 投稿日 2017年12月13日. 推定読書時間: 3 分 |

原文(投稿日:2017/11/27)へのリンク

先月のReactive Summit 2017 Conferenceにおいて、Kevin Webber氏がイベントストーミング(Event Storming)ドメイン駆動設計(Domain Driven Design)Cloud Nativeなどを利用した、エンタープライズJavaアプリケーションのクラウドへの移行について語った

彼はまず、エンタープライズソフトウェアは、システムというよりアプリケーションとして少しずつ作られ続けるもので、これには複雑なインテグレーションを含んでいる、というプレゼンテーションから始めた。従来のインフラストラクチャは、雑なフェイルオーバーによるアクティブ/パッシブなもので、アクティブシステムとパッシブシステム間の複雑な状態のレプリケーションをサポートする。

現代のプロジェクトでは、アーキテクトが下さなくてはならない最初のいくつかの決定(「ファーストマイル」)が極めて重要になる。彼は、重要なアーキテクチャ決定と、そのドメイン駆動設計の原則による導き方について語った。イベントストーミングは、重要なステークホルダーを協調環境に集めて、関連するプロセスとそのイベント駆動システムへの落とし込み方を定義する。チームは、すでにビジネスで発生している、最も関心のあるイベントに注目しなくてはならない。

Anti-corruption Layer (ACL) パターンStranglerパターンといったコンセプトも、レガシーシステムをリアクティブシステムに移行するのに役立つ。

オニオンアーキテクチャ(Onion architecture)はドメイン駆動設計の概念にうまくフィットする。このアーキテクチャのレイヤーは、さまざまなものを実装するのに役立てることができる。

  • インフラストラクチャ: このレイヤーを使って、ヘルスチェック、トラッキング、認証などの横断的な要件を実装する。
  • API: ルーティングとデータ検証に役立つ。
  • Domain: このレイヤーでコンテキスト境界(Bounded Context)管理する
  • Core: ここでアグリゲート(Aggregate)を管理する。

Webber氏は、アプリケーションにとってCloud Nativeが何を意味するのか説明した。アプリケーションには、パッケージ化されて動的に管理される、マイクロサービス指向のコンテナが必要だ。

彼はマイクロサービスアーキテクチャについても語った。まずはモノリスモデルから始めて、リファクタリング手法としてマイクロサービスを用いて、システムを複数のマイクロサービスに分割することをチームにすすめた。マイクロサービスモデルは、分散システムだけでなく分散したチームにも役に立つという。

多くのチームは、サービスレベルでのシステムの分割に注目しているが、データレイヤーは結合したままだ。このアーキテクチャだと、データモデルの変更が複数のサービスに影響を与えることになる。

カンファレンス後、彼にインタビューして、Javaアプリケーションのクラウドインフラストラクチャへの移行についてさらに尋ねた。

マイクロサービスにポイントツーポイントの相互作用がある場合、サービスのガバナンスという面でカオスになるだろう、と彼はいう。心に留めておくべき重要なことは、一方のマイクロサービスの変更がもう一方のマイクロサービスに影響を与えるなら、それらは実際には独立しておらず、2つは結合されているべきだということだ。

マイクロサービスの合成はPub/Subモデルで実現できる。Kafkaのようなサーバーを用いてイベントをキューにポストし、CassandraのようなNoSQLデータベースを用いたイベントログストアに格納する。

こうしたトピックについて詳しく知りたければ、O’Reillyから出ているWebber氏のミニブック『Migrating Java to the Cloud』を読んでみよう。

 

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT