Just SoftwareのCTOであるSusanne Kaiser氏は、QCon New York 2017 カンファレンスで自身のチームが辿ったモノリシックアプリケーションアーキテクチャからマイクロサービスモデルへのトランスフォーメーションプロセスについて講演した。
マイクロサービスには、複数の独立したサービス、運用・通信複雑性、分割されたデータ、結果整合性の複雑性といったことがつきものである。これに異なるスキルやツールの必要性、コア機能の整理といった、マイクロサービスへのトランスフォーメーションの課題が伴う;チームはさらに既存のシステムを片付ける必要もあり、トランスフォーメーションは予想以上に時間が掛かる。
Kaiser氏はモノリスからマイクロサービスへの旅は、実は漸進的であると述べた。彼らのマイクロサービスへのアプローチには、次のようなステップがある:
- 対象を特定する
- 対象を分解する
- マイクロサービスエコシステムを確立する
マイクロサービスの設計のキーとなるコンセプトは、サービスとその中にある高い結合を解くことである。チームはまた、明確に定義されたビジネス機能を持つコンテキスト境界を特定した。対象のサービスを分解するには、次に示すようなステップが必要となる:
- ウェブアプリケーションを抽出する
- ビジネスロジックを抽出する
- データストレージを抽出する
彼女はまた、サービスの認可をどう管理したかについて説明した。彼らはまずモデルの分散化から始めたが、認可が分野横断的な懸念だったため、それ以上分散化しなかった。認可はドメインオブジェクトレベルに基づいており、各ドメインオブジェクトはそれぞれで認可操作を持っていた。
マイクロサービスエコシステムは、CI/CDパイプライン、モニタリング、ログトレース、セントラルコンフィギュレーション、APIゲートウェイ、サービスディスカバリ、障害を見据えた設計、テスト(APIを含む)、そして開発サンドボックス環境などを含む。彼らはエコシステムをサポートするため、Jenkins、Ansible、Prometheus、Grafana、Spring Cloud (Sleuth、Zipkin、Config)、Pact (CDC-Testing)、Netflix OSS framework (Hystrix、Zuul、Eureka、Ribbon)、Vagrant、VirtualBoxといったツールを利用している。
Kaiser氏はディスカッションを、マイクロサービストランジションでの学びで締めくくった。マイクロサービスエコシステムを確立することは時間をや異なるスキル、ツールが必要となる;系統だったインフラストラクチャチームなしではプロセスが遅くなる。また、大きな塊を分解することから始めるのはオススメしない。概して、マイクロサービストランジションは当初の予想よりも長い時間が掛かるものだ。
Rate this Article
- Editor Review
- Chief Editor Action