Amazon.comがモノリシックな構造からSOAへ移行したときに気がついた間違い。同社CTOが語る

2016年8月16日

ニューヨークで開催されたイベント「AWS Summit 2016 New York」。基調講演で同社CTOのWerner Vogels氏は、Amazon.comのシステムがモノリシックな構造からSOAへ、そしてマイクロサービスへ移行する際に得た教訓について手短に紹介しています。

機能ドリブンでサービスを分解するべきだった

Werner Vogels氏。

fig

10年前の話をしよう、Amazon.comは巨大なモノリシックな構造から転換してきた。私たちのお客様もおそらく、似たような経験をこれからするはずだ。

fig

Amazon.comは、モノリシックな構造からSOAに転換すると決めた、それはいわゆるSOAが登場するよりも前の時期だ。

さまざまなコンポーネントをサービス化し、APIでつなげるようにした。これは非常にうまくいったが、しかし私たちは間違いにも気づき始めていた。

それは、データドリブンにサービスを分解していったことだ。

そのため、最大規模のデータ群のいくつかは、あらゆるコードがその周囲に存在していた。

特に「商品一覧(アイテム)」「顧客(カスタマ)」「注文(オーダー)」この3つの大規模データを例にすると、例えば顧客マスターサービスの周囲には、ロギング、アドレスブックなどあらゆる機能が組み入れられていた。

私たちはデータドリブンにサービスを分解するのではなく、機能ドリブン(Functional Driven)に分解するべきだったのだ。

なぜなら、たとえば顧客マスターサービスの中にあるさまざまなサービスはそれそれ異なるスケーラビリティ要求がある。アドレスブックサービスは顧客が買い物の勘定を済ませるときにしか使われないのに対し、ロギングサービスはもっと頻繁に使われる。

サービスごとに異なる可用性、スケーラビリティ、性能が要求されるのだ。

そこで私たちは、いま「マイクロサービス」として知られている手法を採用することにした。こうして私たちはモノリシックからマイクロサービスへ転換してきたのだ。

あわせて読みたい

AWS クラウド Microservices SOA




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本