MEGAZONEブログ
Advanced integration patterns & trade-offs for loosely coupled systems
高度な統合パターンとトレードオフによる疎結合システム
Pulisher : AI & Data Analytics Center チョ・ミレ
Description : 分散システムの設計の長所と短所、設計パターンでこれを探る方法、そしてクラウド自動化にこれらのパターンを取り入れる方法について紹介したセッション
はじめに
AWS サービス間の呼び出しは頻繁に発生します。2つのシステム間の関係について深めた内容を聞きたいと思っていたところ、event-driven architectureを考慮する際に重要な要素を扱っているセッションに申し込みました。 また、システム間のアーキテクチャを構成する際、coupled / decoupledの概念を定めて、well architected wayを学びたいと思います。
セッションの概要紹介
最新のアプリケーションは、APIを公開し、イベントを公開し、サードパーティのサービスを呼び出し、状態を外部化します。 (通常は)分離されたコンポーネントで構成されるこれらのアプリケーションは、誤った転送、等価性、または部分的なエラーなど、分散システムの根本的な問題を解決する必要があります。 このセッションでは、分散システムの一般的な設計上の長所と短所、設計パターンでそれらを探索する方法、およびクラウド自動化にこれらのパターンを含める方法について説明します。
分散システムにおける2つのシステム間の連携時に影響する4つの要素
- カップリング、制御フロー、メッセージの順序伝達、リトライなど存在します。
- このような側面は、後から取り入れるのではなく、基本的に組み込む必要があります。
Coupling
monolithic distributedシステムとmonolithic distributedシステム間のライフサイクルの違いについて言及します。分散システムでは、components, integration, and application development が同じリズムと同じコードベースで実行されるため、カップリングが少なくなります。
エラー処理とカップリングコスト
デカップリングの決定にもコストがかかることを強調しています。システムを最適に提供するカップリングレベルを慎重に決定する必要があることが強調されています。
企業の統合パターン
EIPは、企業内のさまざまなソフトウェアシステムを統合する際の一般的な課題を解決するために使用される一連の設計パターンとベストプラクティスです。 これらのパターンは、スケーラブルで堅牢な統合を設計、構築、維持するための共通の言語とフレームワークを提供します。
メッセージシーケンスとDelivery Semantics
メッセージのシーケンスと配信セマンティクスは、分散システムの設計と実装において重要な役割を果たします。シーケンスメカニズムと転送保証の選択は、システムの複雑さ、パフォーマンス、および特定のメッセージのシーケンスを維持することの重要性などの要素は、アプリケーションの特定のニーズに応じて考慮されます。
Control Flow
視覚的な言語とパターンの使用(企業統合パターンなど)でフローを表現し、管理する方法が言及されています。
Code(IAC)としてのインフラストラクチャからCode(AAC)としてのアーキテクチャへの移行
- インフラストラクチャーコンポーネントだけでなく、システムの全体的なアーキテクチャを管理および定義する方法の進化を示しています。
- IaCはインフラストラクチャ展開の自動化に焦点を当てていますが、AaCはこの概念を拡張してシステムの全体的なアーキテクチャをカバーしています。
セッションを終えて
このセッションでは、2つのシステムを連携する際に考慮すべき事項について、初めて深く学ぶことができました。 システム統合の進化から、分散システムにおける具体的な戦略、トレードオフや考慮事項まで、カップリングの様々な側面を知ることができました。