BT

モノリシックアプリケーションのマイクロサービスアーキテクチャへの移行

| 作者: Jan Stenberg フォローする 29 人のフォロワー , 翻訳者 編集部T フォローする 0 人のフォロワー 投稿日 2017年1月17日. 推定読書時間: 3 分 |

原文(投稿日:2016/12/31)へのリンク

既存のシステムをマイクロサービスに移行するのは、新しいシステムを構築するのとは全く異なる。Joris Kuipers氏はプレゼンテーションで、大規模なモノリシックアプリケーションを分散型あるいはマイクロサービスベースのアーキテクチャ向けにリファクタ中であると述べている。

Trifork AmsterdamのアーキテクトであるKuipers氏は、6年前に作成された、ヘルスケアのための電子カルテシステムが、最初の2年間はいくつかの企業間(B2B)インテグレーションのある一枚岩のモノリシックアプリケーションであったと述べている。最初はAxonを使用するCommand Query Responsibility Segregation(CQRS)に基づいて構築された。CQRSはTriforkが開発したオープンソースフレームワークである。それは非常にうまく機能したが、システムと顧客数が増えるにつれて新たな要件が発生した。その1つが保険料についての要件であり、それは別のアプリケーションでなければならないが、現在のアプリケーションからのデータを必要とする。状態を共有する複数アプリケーションに移行する必要があったため、これは大きな変更であった。

現在、コアアプリケーションは依然として比較的大きく、その周りに、保険料のための3つの個別のアプリケーションと、12のデプロイ可能なアプリケーションに実装されている約40のサードパーティ・インテグレーションがある。約65のテナントと12,000人のユーザーを収容している。

多くのインテグレーションは、コアアプリケーションよりもはるかに短いライフサイクルとなるため、マイクロサービスに移行する主な理由は、これらの異なるライフサイクルに応じて開発が対応できる必要があることであった。開発チームの規模を拡大することで開発のペースを高速化できることが、この移行の大きな要因となった。

彼らはリファクタリングを開始するときにCQRSとイベントに基づいたアプリケーションを持っていたので、イベントをインテグレーションのポイントとして使用し、すべてのイベントをメッセージブローカを通じて他の関心を持つアプリケーションにブロードキャストした。彼らは、既存のB2Bのインテグレーション関連のコードをすべて別々のアプリケーションに分離し、それらをブローカに接続した。それによりブローカ経由で発信されたイベントをすべて取得可能となる。分離されたアプリケーションがコアアプリケーションと通信する必要があるとには、コアにすでに存在するCQRSコマンドを使用する。

データフローの典型的な例は、ユーザがコアアプリケーションを使用して一部のデータを変更するときである。この変更によりイベントが公開され、インテグレーションアプリケーションが非同期にそれを読み取り、また、変更にトリガされたロジックに基づいて外部パートナーに通知が送信される。Kuipers氏はこれを、コアアプリケーションをハブに見立て、それを小さなアプリケーションが囲むハブ&スポークアーキテクチャと見ている。彼は、利用者による、このタイプの分離が、非常にうまく適合するマイクロサービスへの移行方法の1つであると述べている。

Kuipers氏にとっては、イベントは本質的に非同期であるため、システムを分離する際の大きな助けとなる。イベントとは、起こったことを記述し、他のシステムがそれを聞いて、それに対して何等かのアクションを取るものである。彼は、イベントの使用にはいくつかの課題があり、特に、イベントがインテグレーションの中核になるときに検討することが重要であると述べている。

  • それらは共有データ構造であるため、連携させるかもしれない
  • 一部のイベントは、アプリケーションまたはサービス内でプライベートにする必要があるかもしれない
  • イベントハンドラがより多くのデータを要求するのを防ぐために必要なデータの量と型の粒度
  • クライアントを妨げることなく時間の経過とともにイベントがどのように進化するか

結論として、Kuipers氏はコアアプリケーションとは独立して新しいインテグレーションを迅速に開発しデプロイできるようになると述べている。また、コアシステムを触らずに済みためリスク軽減になると述べている。Kuipers氏が述べていることは、重要な競争上の優位性となる。

 
 

Rate this Article

Relevance
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でリプライする

ディスカッション

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


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

Follow

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

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

Like

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

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

Notifications

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

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

BT