Skip to Content
分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計
book

分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計

by Brendan Burns, 松浦 隼人
April 2019
Intermediate to advanced
200 pages
2h 16m
Japanese
O'Reilly Japan, Inc.
Content preview from 分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計

第Ⅰ部シングルノードパターン

この本の主題は、分散システムです。分散システムとは、多数の別々のマシン上で動く、複数の異なるコンポーネントから構成されるアプリケーションです。しかし、この本の最初の部分では、1台のマシンで動く場合のパターンを取り上げます。その理由は簡単です。コンテナはこの本に書かれているパターンの基礎になる構成要素であり、1台のマシン上に一緒に配置されたコンテナのグループは、分散システムのパターンのアトミックな要素を構成するものだからです。

Ⅰ.1 シングルノードパターンを使う理由

分散アプリケーションを別々のマシン上で動く別々のコンテナの集まりに分割する必要性については分かりやすいでしょう。しかし、1台のマシン上で動いているコンポーネントを別々のコンテナに分割する必要性は分かりにくいかもしれません。この動機を理解するには、コンテナ化のゴールを考える必要があります。一般的には、一定のリソース(このアプリケーションは2 CPUコアと8GBのメモリが必要、と言った例)に境界を設けるのがコンテナのゴールです。これは、チームのオーナーシップの境界(このチームはこのコンテナイメージを管理している、など)でもあります。さらに、関心の分離(separation of concerns)のための境界(あることだけをやるためのコンテナイメージ、など)でもあります。

これらが、1台のマシン上のアプリケーションをコンテナの集まりに分割する理由です。リソースの分離をまず最初に考えましょう。例として、あるアプリケーションが、ユーザ向けのアプリケーションサーバと、バックグラウンドの設定ファイル読み込みサーバという、2つのコンポーネントから構成されているとします。エンドユーザに対するリクエストのレイテンシが最優先なのは明らかなので、ユーザ向けのアプリケーションは、常に応答可能なように十分なリソースを確保している必要があります。一方で、ユーザからのリクエストが多い時には少しぐらい処理が遅れてもシステムとしては問題ないという点で、バックグラウンドの設定読み込みサーバは、普通はベストエフォートなサービスだと考えられます。また、バックグラウンドの設定読み込みサーバは、エンドユーザに対するサービス品質に影響を及ぼさないようにするべきです。このような理由から、ユーザ向けのサーバとバックグラウンドの読み込みサーバは、別々のコンテナとして分離しなければなりません。コンテナを分けると、それぞれに異なるリソース必要条件や優先順位を付けることができ、ユーザ向けサーバが空いている時に、バックグラウンドの設定読み込みサーバが邪魔することなくリソースを使えるようにできます。また、2つのコンテナに対するリソース必要条件を分けることで、メモリリークやメモリのオーバーコミットなどでリソース競合を起こした際に、ユーザ向けサーバよりも設定読み込みサーバが先に停止されるようにもできます。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける

プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける

Melissa Perri, 吉羽 龍太郎
レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

David Scott Bernstein, 吉羽 龍太郎, 永瀬 美穂, 原田 騎郎, 有野 雅士

Publisher Resources

ISBN: 9784873118758Other