$30 off During Our Annual Pro Sale. View Details »

Microservices - CADDi STUDDi

Microservices - CADDi STUDDi

[email protected]

February 17, 2022
Tweet

Other Decks in Technology

Transcript

  1. Microservices
    2022/02/15

    View Slide

  2. What is Microservices
    ● Microservicesとは?
    ○ 一つのアプリケーションを小さなサービスの集合体として開発するアプローチ
    ○ 1つのことに集中しそれらを組み合わせる
    ○ 正確な定義はない
    ● pros
    ○ Independently Deployable
    ○ Technology Diversity
    ○ Owned by a small team
    ● cons
    ○ Complexity
    ○ Complexity
    ○ Complexity

    View Slide

  3. Microservices Patterns
    ● Patterns
    ○ API Gateway
    ○ Choreography
    ○ Microservice Chassis
    ○ Service Discovery

    View Slide

  4. Microservices Patterns
    ● API Gateway
    ○ 外部クライアントからのすべての APIリクエストを受け付ける
    ○ Backend serviceのAPIを合成して1つのAPIとして提供する
    ○ Edge Functionの提供
    ■ 流量制御
    ■ キャッシング
    ○ 課題
    ■ パフォーマンス
    ■ スケーラビリティ

    View Slide

  5. Microservices Patterns
    ● Choreography
    ○ 非同期メッセージングパターンを使用してビジネス操作をコーディネートする
    ○ サービスの数が増加しメッセージが増えると、サービス間のワークフローは複雑になる傾向がある
    ○ ピタゴラスイッチ職人の誕生

    View Slide

  6. Microservices Patterns
    ● Microservice Chassis
    ○ 各サービスで共通で必要な基盤を提供する
    ○ サービスの新規作成が早く・簡単に
    ○ 認証/認可, Observability, build設定など

    View Slide

  7. Microservices Patterns
    ● Service Discovery
    ○ サービスのネットワークロケーションをクライアント( API Gateway や他のサービス)が、どうやって見
    つけるか?
    ○ DNSも伝統的なService Discovery
    ○ k8sが内部的に行っている

    View Slide

  8. Real World Microservices
    ● API Gateway @Uber
    ○ https://eng.uber.com/architecture-api-gateway/

    View Slide

  9. Real World Microservices
    ● Orchestrator @Netflix
    ○ https://netflixtechblog.com/netflix-conductor-a-microservices-orchestrator-2e8d4771bf40

    View Slide

  10. Real World Microservices
    ● Microservice Chassis @Wantedly
    ○ マイクロサービス共通ライブラリで “Governance through code” を実現する

    View Slide

  11. Real World Microservices
    ● Service Discovery @Netflix
    ○ https://netflixtechblog.com/netflix-shares-cloud-load-balancing-and-failover-tool-eureka-c10647
    ef95e5

    View Slide

  12. Real World Microservices
    ● Microservicesは複数のServiceを協調させてひとつの系を成す

    View Slide

  13. Real World Microservices
    ● Microservicesは複数のServiceを協調させてひとつの系を成す
    ソフトウェアの枠組みに収まる概念ではない

    View Slide

  14. Real World `like` Microservices
    ● 具体的に考えてみる
    ○ 食器メーカー
    ○ 食品メーカー
    ○ 水道局
    ○ 家具メーカー

    View Slide

  15. The social division of labor
    ● 社会的分業
    ○ 労働が社会のさまざまな生産分野に専門化することによってつくりだされる社会経済的編成
    ○ 現実社会もまた専門性を組み合わせるひとつの系である

    View Slide

  16. CADDi as Microservices

    View Slide

  17. CADDi as Microservices

    View Slide

  18. CADDi as Microservices
    ● Patterns
    ○ API Gateway
    ○ Choreography
    ○ Microservice Chassis
    ○ Service Discovery

    View Slide

  19. CADDi as Microservices
    ● API Gateway
    ○ 顧客からの発注(Request)に対して、複数のSP(Service)に発注し製品を納品 (Response)する
    ○ キャッシュはCADDiでかかえる在庫と置き換えることができる
    ■ 似たようなリクエスト = リピート品?
    ■ Cache Hit Ratio = 在庫引当率?
    ○ 流量制御はSPの負荷を考慮して発注を行うこと
    CADDi
    SP
    SP
    SP
    顧客
    顧客

    View Slide

  20. CADDi as Microservices
    ● Choreography
    ○ メッセージを製品と置き換えることができる?
    ○ 各SPで加工(Process)を行って次の工程を行う SP(Service)に発送(Publish)する
    ○ Service数が増えてくると複雑度が増すということを考えると、 SC設計/運用はChoreographyよりも
    CADDiを中心にしたOrchestrationの方が良さそう

    View Slide

  21. CADDi as Microservices
    ● Microservice Chassis
    ○ サプライチェーンを構成する全 SPに共通した機能 = SPP?
    ○ AnchorをSPに配布することでSP側での在庫情報などの Observabilityを上げることを考えられるか
    もしれない

    View Slide

  22. まとめ
    ● Microservicesは1つの系である
    ● Microservicesの考え方はソフトウェアの枠を超える
    ● CADDiをMicroservicesと置く思考実験

    View Slide