MTC2018 - Microservices Platform at Mercari

92cdcff298e89e2fcd2fb705155c2d4b?s=47 mercari
October 04, 2018

MTC2018 - Microservices Platform at Mercari

Speaker: 中島 大一(Taichi Nakashima)

Mercariではサービスと組織の拡大に合わせてMonolithアーキテクチャからMicroservicesアーキテクチャへの移行を進めています.Microservices Platform TeamはこのMicroservicesのためのPlatformの構築を行っています.開発者のDeveloper Productivityを最大限に高め各チームがオーナーシップを持ち独立して高速にサービス開発サイクルを回せるようなPlatformを目指しています.本セッションではMicroservices Platform Teamの取り組みを紹介します。

As Mercari continues to grow as a service and organization, we decided it was time to make the move from a monolith architecture to microservices. The Microservices Platform Team is the team responsible for building the platform for this. The goal is to create a platform that allows developers to maximize their productivity for a rapid service development cycle where teams are independent and have ownership over their projects. In this session, Nakashima will introduce the initiatives the Microservices Platform Team are taking to achieve this goal.

92cdcff298e89e2fcd2fb705155c2d4b?s=128

mercari

October 04, 2018
Tweet

Transcript

  1. 12.

    Test Deploy Operate Backend Team QA team SRE team Develop

    Service B Develop Service A Develop Service C
  2. 13.

    Test Deploy Operate Backend Team SRE team Develop Service B

    Develop Service A Develop Service C QA team
  3. 14.

    Test Deploy Operate Backend Team SRE team Develop Service B

    Develop Service A Develop Service C QA team
  4. 15.

    Test Deploy Operate Backend Team SRE team Develop Service B

    Develop Service A Develop Service C QA team
  5. 16.

    Develop Service B Test Deploy Operate Service B Team Develop

    Service A Test Deploy Operate Service A Team Develop Service C Test Deploy Operate Service C Team
  6. 18.

    Develop Service B Test Deploy Operate Service Team B Develop

    Service A Test Deploy Operate Service Team A Develop Service C Test Deploy Operate Service Team C
  7. 19.

    Develop Service B Test Deploy Operate Service Team B Develop

    Service A Test Deploy Operate Service Team A Develop Service C Test Deploy Operate Service Team C Developers need to act as SWE, SET and SRE
  8. 20.

    Develop Service B Test Deploy Operate Service Team B Develop

    Service A Test Deploy Operate Service Team A Develop Service C Test Deploy Operate Service Team C Too much expected
  9. 21.
  10. 22.
  11. 33.
  12. 37.
  13. 38.
  14. 41.
  15. 42.
  16. 46.

    API gateway Authority Service A CloudSQL Spanner MySQL Solr Kubernetes

    Service B Monolith API Service Team B Service Team A
  17. 50.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes IAM

    RBAC Container A Container A Container A Service A Team
  18. 51.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes IAM

    RBAC Container A Container A Container A GCP Project: Service A IAM Service A Team
  19. 52.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes IAM

    RBAC Container A Container A Container A Spanner GCP Project: Service A IAM Service A Team
  20. 53.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes IAM

    RBAC Container A Container A Container A Spanner GCP Project: Service A IAM Service B Team Service A Team
  21. 54.

    GCP Project: Kubernetes Platform Team Spanner Namespace: Service A Kubernetes

    GCP Project: Service A Namespace: Service B GCP Project: Service B RBAC IAM RBAC IAM IAM Container A Container A Container A Service B Team Service A Team
  22. 58.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes GCP

    Project: Service A RBAC IAM IAM Service A Team Spanner
  23. 60.
  24. 61.
  25. 63.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes GCP

    Project: Service A Service A Team RBAC IAM IAM
  26. 64.
  27. 65.

    GCP Project: Kubernetes Platform Team Namespace: Service A Kubernetes GCP

    Project: Service A Service A Team RBAC IAM IAM Spanner
  28. 67.

    Service B Team Service A Team Service C Team PR

    PR PR Plan & Apply Platform Team Review microservices-terraform CircleCI
  29. 68.

    PR Plan & Apply PR PR Platform Team Review microservices-terraform

    CircleCI Service B Team Service A Team Service C Team
  30. 69.

    PR Plan & Apply PR PR Platform Team Review microservices-terraform

    CircleCI Service B Team Service A Team Service C Team CODEOWNERS
  31. 70.

    Plan & Apply PR Platform Team Review microservices-terraform CircleCI Service

    B Team Service A Team Service C Team PR & Review PR & Review
  32. 71.
  33. 72.
  34. 74.
  35. 75.

    GCP Project: Kubernetes Namespace: Service A Kubernetes Namespace: Service B

    Container A Container A Container A Container A Container A Container B Service A Team Service B Team
  36. 76.
  37. 78.
  38. 79.
  39. 82.
  40. 83.

    GCP Project: Kubernetes Namespace: Service A Kubernetes Namespace: Service B

    Container A Container A Container A Container A Container A Container B Service Team A Service Team B PR PR Sync Platform Team Review microservices-kubernetes
  41. 84.

    GCP Project: Kubernetes Namespace: Service A Kubernetes Namespace: Service B

    Container A Container A Container A Container A Container A Container B Service Team A Service Team B PR PR Sync Platform Team Review microservices-kubernetes Developers can learn k8s YAML, too
  42. 91.
  43. 92.