Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サービスアーキテクチャの話(V0.1)

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

 サービスアーキテクチャの話(V0.1)

サービスアーキテクチャについてまとめた資料を公開します。
とりあえず、モノリシック・マイクロ・サーバーレスについてまとめてみました。

Avatar for さいろす

さいろす

April 14, 2020

Other Decks in Technology

Transcript

  1. モノリシックサービスアーキテクチャ サービス A サービス B サービス C ・サービス全体を構成するための構造のひとつ ・各サービスをひとまとめにした構成 ・サービス間で依存関係がある(DBやWebサーバなど)

    ・旧来のWebサービスを提供しているところが多く採用 要は従来の形式 メリット ・設計しやすい ・データの共有化が容易 ・サービス全体の一体感を出せる デメリット ・障害が起こると他サービスへの影響が大きい ・サービスをアップデートしようとすると、 他サービスへの影響も思案する必要がある ・サービスの構成を変える際にも思案する必要がある
  2. マイクロサービスアーキテクチャ サービス A サービス B サービス C HTTP API ・サービス全体を構成するための構造のひとつ

    ・各サービスが独立して存在し、結合が疎 ・各サービスはの連携は通常HTTP APIで行う ・スタートアップが採用したり、 大企業が巨大化したシステムを置き換える傾向が見える メリット ・障害が起きたときの影響を最小限にできる ・各サービスのアップデートが容易になる ・サービスの構成を変えやすい デメリット ・モノリシックから移行する際の切り分けが難しい ・データ共有のさじ加減が難しい ・サービス全体の一体感をもたせるコストが増える 採用企業 ・Amazon、LINE、Cookpad、全日空、モノタロウ等 [補足] 混同を避けるために補足しておくと、 ここで切り分けるのはユーザに提供する 「サービス」の単位であり、サービス内の構成要素 (WebサーバやDB)を別にするというような話ではない
  3. サーバーレスアーキテクチャ ・サービス全体を構成するための構造のひとつ ・実際サーバーは存在しているが、利用者がゼロから構築したり 管理する必要がないことからこの名がついた ・API処理を実装して、関数として登録する形式(FaaS)と、 必要な機能を持ったサーバを事前に用意しておく形式(BaaS)がある メリット ・ユーザー側のサーバー管理コストが殆どない ・設計がシンプルになりやすい(スケーラビリティを考える必要がない) ・ユーザーはロジック実装により注力できる

    ・ロジックのアップデートも容易 デメリット ・クラウドベンダーへの依存が大きい(ベンダーロックイン) ・最初のリクエスト(コールドスタート)処理は遅延になりがち ・バグが発生したときにデバッグしづらい 採用プラットフォーム ・GS2(=Game Server Services) ・AWS(Lambda) ・GCP(Google Cloud Functions) ・Azure(Azure Functions) FaaS BaaS (ユーザーから見えないサーバー)上で関数を実行 関数A 関数C 関数B ユーザー ベンダー 登録・APIアクセス 提供・管理 サーバー A サーバー C サーバー B ユーザー ベンダー APIアクセス 提供・管理