Ameba Ownd

アプリで簡単、無料ホームページ作成

NA Free Online Books Directory 2021

電子ブック分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計無料ダウンロード

2021.01.06 06:16

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

によって 松浦 隼人



4.9 5つ星のうち(2人の読者)


電子ブック分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計無料ダウンロード - 内容紹介 本書は、コンテナを使った分散システムのデザインパターンについて解説する書籍です。コンテナとコンテナオーケストレーションを使うことで、分散システムの設計をパターン化でき、スケーラブルで信頼性の高いサービスをすばやく構築できます。はじめにシングルノードパターンとして、分散システム内の個別ノード上に存在する再利用可能なパターンやコンポーネントについて説明し、次にWebアプリケーションのように継続的にサービスを提供するシステムを対象にしたマルチノードの分散パターンを紹介します。さらにイベント駆動処理、ワークフローの統合を含む大規模なパッチデータ処理の分散システムパターンを解説します。可用性の高い分散システムの開発が効率的に行えるパターンを多数紹介する本書は、開発及びインフラエンジニア必携の一冊です。 内容(「BOOK」データベースより) 本書は、コンテナを使った分散システムのデザインパターンについて解説する書籍です。コンテナとコンテナオーケストレーションを使うことで、分散システムの設計をパターン化でき、スケーラブルで信頼性の高いサービスをすばやく構築できます。はじめにシングルノードパターンとして、分散システム内の個別ノード上に存在する再利用可能なパターンやコンポーネントについて説明し、次にWebアプリケーションのように継続的にサービスを提供するシステムを対象にしたマルチノードの分散パターンを紹介します。さらにイベント駆動処理、ワークフローの統合を含む大規模なバッチデータ処理の分散システムパターンを解説します。可用性の高い分散システムの開発が効率的に行えるパターンを多数紹介する本書は、開発及びインフラエンジニア必携の一冊です。 著者について Brendan Burns(ブレンダン・バーンズ):マイクロソフトのDistinguished Engineerであり、Kubernetesオープンソースプロジェクトの共同創設者。マイクロソフトではAzureを担当しており、特にコンテナとDevOpsに焦点を当てている。マイクロソフトの前はGoogleのGoogle Cloud Platformチームで、Deployment ManagerやCloud DNSといったAPI構築を支援していた。クラウドコンピューティングの世界で働く前は、GoogleのWeb検索インフラ、特に低レイテンシなインデックス構築に取り組んでいた。ロボティクス分野での専門性に対してマサチューセッツ大学アマースト校からコンピュータ科学のPhDを受けている。現在は、妻であるRobin Sanders、2人の子供、鉄の前足で家庭を取り仕切る猫のMrs. Pawsとシアトルで暮らしている。

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

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

作者 : 松浦 隼人

ISBN-10 : 4873118751

発売日 : 2019/4/20

カテゴリ : 本

ファイル名 : 分散システムデザインパターン-コンテナを使ったスケーラブルなサービスの設計.pdf

ファイルサイズ : 25.76 (現在のサーバー速度は18.05 Mbpsです

以下は 分散システムデザインパターン ―コンテナを使ったスケーラブルなサービスの設計 の最も正直なレビューです。 この本を読んだり購入したりする場合は、これを検討してください。

シンプルなシングルノードから、マルチノード(リアルタイム処理、バッチ処理)のパターンまで順を追って最適なデザインパターンを紹介してくれている。どれも、シンプルな構造まで落とし込んだもので纏められている。Dockerを利用してミドルウェアを水平分散クラスタ構成などにして簡易的な環境をつくるまでコマンド、コードで示している。マルチノードのリアルタイム処理システムにおいては、システムのどの部分をマイクロサービスとしての部品に分割し、それらをスケール可能な構成にするため、どの技術を採用すべきか等の俯瞰的な思考を学ぶことができる。近年のコンシューマ向け大規模Web開発に携わっていればお馴染みのパターンが多く、前提知識として必須の内容を網羅している、逆に言えば真新しい解釈のものはなかったのが少し残念。具体的なコードレベルでスケール可能な分散システム開発を知りたければ、一例のみの記載になるが、同オライリーより出版されている「スケーラブルリアルタイムデータ分析入門:ラムダアーキテクチャによるビッグデータ処理」もおすすめ。以下、内容メモ。--------------------------シングルノードパターン・サイドカー一台のマシンで動く2つのコンテナから構成アプリケーションコンテナ:コアロジック含むサイドカーコンテナ:拡張改善用例:レガシーなHTTPウェブサービスをHTTPSに対応させるレガシーWebをローカルホスト接続のみに対応させ、HTTPSに対応したnginxをサイドカーコンテナとして配置。ローカルホストで動くサービスに接続できるようにする。すると、nginxが外部からのHTTPSトラフィックを終端できる。 nginx=SSLプロキシ→レガシーHTTPSサーバ・アンバサダ色々なアプリケーションコンテナと組み合わせ可能。シャーディングアンバサダプロキシ:アプリを複数のサーバにデプロイするための仕組みtwemproxy(redis, memcache 向けプロキシ)を使ったdocker環境での実践。アプリケーションコンテナと、サービスブローカアンバサダのロジックを分離できる。・アダプタ外部利用者→外部インタフェース→アダプタコンテナ→アプリケーションコンテナPrometheusを使ったコンテナの監視例、redisのスロークエリを監視できるようにする。アダプタでログをイベントの標準セットに正規化する。--------------------------マルチノードパターン・マイクロサービス;マルチノードの分散ソフトウェアアーキテクチャ。別々のプロセスとして動作し、定義済みのAPIを通じて通信する多くのコンポーネントからなる。モノリシックの対極がマイクロサービス・レプリカがロードバランスされたサービス各サーバは全く同じ構成、処理。接続先のサーバを固定する方法:IPアドレスなどをコンシステントハッシュ関数をとって接続先を決定する。Varnishのキャッシュサーバ、SSL終端にしたい場合は、nginxを追加する。ステートレスなサービス向け。・シャーディングされたサービスシャーディングされたサーバごとに扱えるリクエスト、データが異なる。ステートフルなサービス向け。保存すべき状態データが大きくなった時にスケールする。・スキャッタ・ギャザー処理時間をスケールさせる:リクエスト処理の並列化(上述までは、リクエスト数をスケールする方法であった)リクエストを受け持つリーフ構造で各リーフは処理の一部を行いルートに返す。シャーディング配置されたデータの検索など。レスポンスが一番遅いノードに性能が引きずられる問題がある。・ファンクションイベントとイベント駆動処理負荷が大きく、巨大なデータをメモリに保持していたり、なんらかのバックグラウンド処理を行うアプリに適している。・オーナシップの選出役割の割り当てをスケールさせる方法。--------------------------バッチ処理パターン・MapReduceパターン・ワークキューシステム・イベント駆動バッチ処理バッチの分割、連結、統合・協調的バッチ処理以上。