You are currently viewing Netflix から学ぶマイクロサービスの教訓

Netflix から学ぶマイクロサービスの教訓

マイクロサービスアーキテクチャ

Netflix は AWS 上で実行されます。彼らはモノリスから始まり、マイクロサービスに移行しました。マイクロサービスに移行する理由は次のとおりです。

  • 単一のコードベースに多くの変更が加えられているため、バグを見つけるのが困難でした
  • 縦方向のスケーリングが難しくなった
  • 単一点障害が多数ありました

マイクロサービスの利点

この投稿では、Netflix から得たマイクロサービスのレッスンの概要を説明します。

マイクロサービスの課題と解決策

マイクロサービス アーキテクチャに関する主な問題は次の 3 つです。

  1. 依存
  2. 規模
  3. 分散

1. 依存関係

依存関係の問題が発生する 4 つのシナリオを次に示します。

i) サービス内リクエスト

クライアント要求により、サービスが別のサービスを呼び出します。言い換えれば、サービス A は応答を作成するためにサービス B を呼び出す必要があります。

サービス内リクエスト

問題は、マイクロサービスの障害が連鎖的な障害を引き起こすことです。解決策は次のとおりです。

  • 使用サーキットブレーカーのパターン連鎖的な障害を防ぐため。失敗する可能性のある操作を回避します
  • 障害挿入テストを実行して、サーキット ブレーカー パターンが期待どおりに機能するかどうかを確認します。人工的なトラフィックを作成することでそれを実現します
  • システムを常に応答可能な状態に保つために、静的ページへのフォールバックを設定します。
  • 雷を伴う群の問題を防ぐために指数バックオフをインストールする

しかし、可用性の低下とシステムテストの範囲の拡大が問題になります。個々のマイクロサービスのダウンタイムが重なると可用性が低下するためです。そして、マイクロサービスの数が増加するにつれて、テスト範囲の順列はトン単位で増加します。

したがって、重要なサービスを特定し、重要ではないサービスの障害を回避するバイパス パスを作成することが重要です。

ii) クライアントライブラリ

API ゲートウェイを使用すると、さまざまな種類のクライアント間でビジネス ロジックを再利用できます。

API ゲートウェイは、 APIリクエストをルーティングする中心的なエントリ ポイントです。ただし、次の制限があります。

  • ヒープ消費の管理が難しくなる
  • 潜在的な論理的欠陥またはバグ
  • 潜在的な推移的な依存関係

したがって、解決策は、API ゲートウェイをシンプルにし、新しいモノリスにならないようにすることです。

iii) 持続性

ストレージ層の選択は、CAP 定理によって異なります。言い換えれば、これは可用性と一貫性レベルの間のトレードオフの決定です。

したがって、解決策は、データ アクセス パターンを調査し、適切なストレージを選択することです。

iv) インフラストラクチャー

データセンター全体が故障する可能性があります。したがって、解決策は、多くのデータセンターにわたってインフラストラクチャを複製することです。

Netflixのサービス停止。フォーブス.com

2.スケール

パフォーマンスを維持しながら増加するワークロードを管理するシステムの能力は、スケールと呼ばれます。水平方向のスケーラビリティの 3 つの側面は次のとおりです。

  • 可能であればサービスをステートレスにしておく
  • ステートレスにできない場合はサービスを分割する
  • サービスをレプリケートする

ステートフル サービスとステートレス サービス

スケールの問題が発生する 3 つのシナリオを次に示します。

i) ステートレスサービス

ステートレス サービスの 2 つの品質は次のとおりです。

  • インスタンス アフィニティ (スティッキー セッション) はありません。別の言い方をすると、リクエストは同じサーバーにルーティングされません。
  • ステートレス サービスの障害は顕著ではない

高可用性を実現するには、ステートレス サービスを複製する必要があります。また、オンデマンド レプリケーション用に自動スケーリングを設定する必要があります。

また、自動スケーリングにより、次の問題の影響が軽減されます。

  • 計算効率の低下
  • ノード障害
  • トラフィックの急増
  • パフォーマンスのバグ

データベースとキャッシュはステートレス サービスではありません。

カオス エンジニアリングは、自動スケーリングが期待どおりに機能するかどうかをチェックします。制御された中断を通じてシステムの復元力をテストし、信頼性の向上を保証します。

ii) ステートフル サービス

データベースとキャッシュはステートフル サービスです。大量のデータを保持するカスタム サービスもステートフル サービスです。ステートフル サービスの障害は注目に値するイベントです。

ステートフル サービスのアンチパターンは、レプリケーションを行わずにスティッキー セッションを実行することです。単一障害点が発生するためです。

解決策は、異なるデータセンターにある多数のサーバー間で書き込みを複製することです。そして、読み取りをローカル データ センターにルーティングします。

iii) ハイブリッド サービス

キャッシュはハイブリッド サービスです。ハイブリッド サービスでは、極度の負荷が予想されます。たとえば、Netflix のキャッシュは 1 秒あたり 3,000 万件のリクエストを受け取ります。

ハイブリッド サービスを構築するための最良のアプローチは次のとおりです。

  • コンシステントハッシュなどの手法を使用してワークロードを分割する
  • リクエストレベルのキャッシュを有効にする
  • データベースへのフォールバックを許可する

また、カオス エンジニアリングを使用して、極端なワークロード下でもハイブリッド サービスが機能し続けるかどうかを確認します。

3. 分散

ソフトウェア アーキテクチャの多様性は差異と呼ばれます。分散が増加すると、システムの複雑さも増大します。

スケールの問題が発生する 2 つのシナリオを次に示します。

i) 運用上のドリフト

運用ドリフトは、時間の経過とともに発生する意図しない変動です。これは通常、システムに追加された新機能の副作用です。運用上のドリフトの例は次のとおりです。

  • アラートしきい値の増加
  • タイムアウトの増加
  • スループットの低下

これに対する解決策は、継続的な学習と自動化です。

継続的な学習と自動化

ワークフローは次のとおりです。

  1. インシデントの解決策を確認する
  2. 再発を防ぐために適切な修復策を講じる
  3. 多くのインシデントを分析してパターンを特定する
  4. インシデント解決からベストプラクティスを導き出す
  5. 可能であればベストプラクティスを自動化する
  6. ベストプラクティスの採用を促進する
  7. そして繰り返します

ii) 多言語

エンジニアが意図的に導入した差異はポリグロットと呼ばれます。これは、異なるプログラミング言語を使用して異なるマイクロサービスを作成した場合に発生します。

これには次のような欠点があります。

  • 生産的なツールを入手するには大量の作業が必要
  • 運用がさらに複雑になる
  • サーバー管理の難しさ
  • 多くのテクノロジーにわたるビジネス ロジックの重複
  • 専門家になるための学習曲線が長くなる

この問題の解決策は、実証済みのテクノロジーを使用することです。

さらに、ポリグロットは API ゲートウェイの分解を強制しますが、これは良いことです。したがって、Polyglot アーキテクチャを使用する最良の方法は次のとおりです。

  • 各テクノロジーのコストに対するチームの意識を高める
  • 一元化されたサポートを重要なサービスに限定する
  • 影響に基づいて優先順位を付ける
  • 実績のあるテクノロジーのプールを提供することで、再利用可能なソリューションを作成します

以下は、Netflix のマイクロサービス アーキテクチャのベスト プラクティスのチェックリストです。

  • タスクを自動化する
  • アラートのセットアップ
  • 動的負荷を処理するための自動スケール
  • カオスエンジニアリングによる信頼性の向上
  • 一貫した命名規則
  • 健康診断サービス
  • ブルーグリーン展開による迅速なロールバック
  • タイムアウト、再試行、フォールバックを構成する

また、変化は避けられず、変化によって物事は常に壊れます。したがって、最善のアプローチは、より迅速に、ただし互換性を損なう変更を少なくすることです。

さらに、ソフトウェア アーキテクチャをサポートするためにチームを再構築することも役立ちます。

出典 : https://medium.com/@mananshah3654/microservices-lessons-from-netflix-50cc66d8fd45

Please follow and like us:
Pin Share

16件のコメントがあります

  1. zoritoler imol

    Good day! Do you use Twitter? I’d like to follow you if that would be ok. I’m absolutely enjoying your blog and look forward to new updates.

  2. Good day! Do you know if they make any plugins to assist with Search Engine Optimization?
    I’m trying to get my site to rank for some targeted keywords but I’m not
    seeing very good success. If you know of any please share.
    Many thanks! I saw similar blog here: Eco product

  3. Lonnie Legore

    Thanks for the sensible critique. Me and my neighbor were just preparing to do some research about this. We got a grab a book from our area library but I think I learned more clear from this post. I am very glad to see such magnificent information being shared freely out there.

  4. It touches each the Atlantic and Pacific Oceans and spans a vast amount of remote territory in between – in some locations, gasoline isn’t even out there.

  5. Slottica PL

    This blog was… how do I say it? Relevant!! Finally I have found something that helped me. Cheers.

  6. pandora jewelry

    You are so awesome! I don’t suppose I have read anything like that before. So wonderful to find somebody with a few original thoughts on this issue. Really.. thanks for starting this up. This site is one thing that is required on the internet, someone with a little originality.

  7. 파라존카지노

    I would like to thank you for the efforts you’ve put in penning this website. I really hope to view the same high-grade content by you later on as well. In fact, your creative writing abilities has motivated me to get my very own blog now 😉

  8. 라카지노

    Excellent site you have got here.. It’s hard to find excellent writing like yours nowadays. I seriously appreciate people like you! Take care!!

  9. Everything is very open with a precise clarification of the challenges. It was really informative. Your website is extremely helpful. Many thanks for sharing.

  10. kitty pendants

    The town of Daytona Beach made national headlines when it designated the a number of-mile radius round Primary Road on the barrier island portion of town as a blighted space and has focused it for redevelopment by personal builders.

  11. Thus, though White possesses the bishop pair, it’s normally advisable for Black to open the sport quickly to exploit their lead in development.

コメントを残す