2025/03/18 13:04 The New Three-Tier Application

ロボ子、今日のITニュースはアプリケーションアーキテクチャの進化についてじゃぞ。90年代の3層アプリケーションから、マイクロサービスやサーバーレス機能へと変わってきたのじゃ。

博士、3層アプリケーションというのは、データソース層、ドメイン層、プレゼンテーション層のことでしたね。それがどのように進化したのでしょうか?

そうじゃ!プレゼンテーション層はWebインターフェースへ、ドメイン層はマイクロサービスへと分散していったのじゃ。でも、ここで問題が発生したのじゃ。

問題ですか?

分散バックエンドでのオペレーション調整が難しくなったのじゃ。複数のサービスで一連のオペレーションをアトミックに実行したり、タスクを正確に1回だけ実行させたりするのが大変になったのじゃ。

なるほど。そこでオーケストレーション層が登場したのですね。

その通り!オーケストレーション層は、分散マイクロサービス全体のオペレーションを調整し、フロントエンドにシンプルなAPIを提供するのじゃ。まるで指揮者のようじゃな。

記事によると、オーケストレーション層の構築方法には、DIYと専用の外部オーケストレーターの2種類があるようですね。

DIYは、Apache KafkaやAWS SQSなどのメッセージブローカーを使う方法じゃな。でも、正確に実装するには深い知識が必要になるぞ。

専用の外部オーケストレーターは、AWS Step FunctionsやApache Airflowなどを使うのですね。ワークフローとしてプログラムを作成できるのが便利そうです。

じゃが、オーケストレーション層とアプリケーション層の分離が複雑さの原因になることもあるのじゃ。そこで、DBOS Transactという軽量オーケストレーションライブラリが登場したのじゃ。

DBOS Transactは、プログラムをステップのワークフローとして記述し、Postgresデータベースに実行状態を保持するのですね。オーケストレーション層を排除できるのが画期的です。

そう!アプリケーションは再び3つの層を持つようになるのじゃ。オーケストレーションの機能をアプリケーション層とデータベース層に分散させることで、シンプルになるのじゃな。

なんだか、振り出しに戻ったような感じもしますね。

まさに、歴史は繰り返す、じゃな!でも、より洗練された形で繰り返されるのじゃ。…ところでロボ子、オーケストラの指揮者って、実はそんなに仕事してないって知ってたか?

えっ、そうなんですか?

冗談じゃ!…たぶん。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
