SOAとマイクロサービスの実際の違い
免責事項 私は誰かのつま先を踏んだり、どちらかのコンセプトの愛好家を怒らせたりしていないことを願っています バックグラウンド 私は明確な答えを見つけることなく、サービス指向アーキテクチャとマイクロサービスの真の違いを探していました。 私は次のようなものを読みます: SOAの副作用 SOAはアンチパターン マイクロサービスはSOAの障害を修正するようになりました ESBは実際にはESBではなく、EAIです。 メッセージブローカーへの過度の依存 ベンダーはSOAの概念を悪用し、自社製品の販売を試みています SOAが制御不能に成長する しかし、それでもなお、サービス指向アーキテクチャー(概念として)とマイクロサービス(概念として)の間のアーキテクチャーの違いを明確に定義するものはありません 私が理解したところによると、彼らはどちらも持っています: 1つのことだけを行うサービスプロバイダー これらのサービスをコンシューマーに公開するService Gateway / ESB ESB / Service Gatewayを介してサービスにアクセスするサービスコンシューマー 質問 では、SOAをマイクロサービスに再ラベル付けする以外に何か違いはありますか?マイクロサービスがマクロになることを制限するために配置されたテクノロジーの制約ですか? 注:箇条書きで意見を探すのではなく、難しい事実を探しています。 参考文献 ソフトウェア工学の質問 マーティン・ファウラーのサイト(彼はそれが大いに嫌いだと思う) 情報の世界 マイケル・フェザースのウェブサイト スタックオーバーフローの質問 更新 スタックオーバーフローの質問でも同様の議論が起こったようです。意見が分かれるかどうかにかかわらず、マイクロサービスは変装したサービス指向アーキテクチャーです。 SOの質問からの結論: MSはSOAの特殊なケースです MSは、サービスをホスティングするアプリケーションのより小さなサイズを推奨します MSはテクノロジーに依存します(オープンプロトコルオプションではなくHTTPの使用) MSはテクノロジーを利用して規律を強化します(サービスの自動展開) MSはESB(悪)を考慮しますが、IMHOがESBの一種である APIゲートウェイを使用します 次の条件に当てはまる場合、MSはSOAであると結論付けます。 MSはオーケストレーションの概念をサポートしていますか?ワークフローを管理する1つ以上のマスタープロセス MSにメッセージブローカーレイヤーはありますか?メッセージフォーマットをサービスプロデューサーのメッセージスペースからサービスコンシューマーに変換する一連のアダプター マイクロサービスはモノリシックエンタープライズアプリケーションからデータを読み取ることができますか?モノリシックアプリケーションのAPIにすることはできますか?それとも独立して動作できるスタンドアロンの自己完結型アプリケーションでなければなりませんか? 最後の質問に対する答えが「いいえ」であることが判明した場合、マイクロサービスは、クレジットカード管理システムや照合システムなどの複雑なワークフローシステムを処理することができません。