/note/tech

実践マイクロサービス ─ コンポーネント分割やトラブル回避の考え方をLINEの導入事例に学ぶ

目次

  • マイクロサービスの基本的な考え方
  • マイクロサービスアーキテクチャのメリットとデメリット
    • 障害発生時の影響を少なくし、分業して開発にあたることができる
    • 見るべき範囲が狭まる反面、属人性が高まるデメリットも
    • 分断しないためのコミュニケーション
  • LINEでなぜマイクロサービスが導入されたのか
  • 事例1. Shopのアーキテクチャ 〜 ユーザー視点にそって入口を分割する
    • マイクロサービスのメリット「拡張性の高さ」を生かす
    • コンポーネントを挟み、使いたい機能を分かりやすく使う
  • 事例2. Channelサービス
  • 分割の粒度をどう決めていくか?
    • 共有化したい部分はどこにあるのか? を明確にする
  • マイクロサービスアーキテクチャ運用の注意点 〜 ハマりやすい「落とし穴」とその解決策
    • Cascading Failure(ドミノ倒し)
    • Cyclic Dependency:同期処理から非同期処理へ
    • 解決テクニック1. Retry Strategy, Rate Limit & Throttling:流量制御
    • 解決テクニック2. Tracing:処理追跡ツールによる全体像の把握
  • Armeriaを利用した簡潔なサンプルコード
  • 関連記事