@deeeet / @tcnksm
Blog / deeeet.com
Tech Lead at Mercari
Microservices Platform Team
Slide 3
Slide 3 text
Microservices at Mercari
Slide 4
Slide 4 text
4
While we had lots of benefits of monolith architecture,
its codebase is getting larger and complex...
● Difficult to implement new idea
● Difficult to on-boarding
● Difficult to try new technologies
Why Microservices?
Slide 5
Slide 5 text
5
Even business & organization growth, we want to
● Avoid velocity stalled but rather provide new features faster
● Increase each developer productivity
Why Microservices?
Started to migrate Microservices architecure
Slide 6
Slide 6 text
6
Microservices?
An application is built as independent components that
run each function as a service.
● Autonomous
○ Developed, deployed, operated and scaled independently
● Specialized
○ Do one thing well (UNIX philosophy)
Slide 7
Slide 7 text
7
Benefits of Microservices
● Easy to test
● Easy to deploy
● Easy to on-boarding
● Easy to isolate failure
We can achieve great agility of service development!
Slide 8
Slide 8 text
Microservices Platform Team
Slide 9
Slide 9 text
Why Platform Team?
Slide 10
Slide 10 text
10
Organization in Monolith
Develop
Monolith
QA Deploy Operate
QA
Slide 11
Slide 11 text
11
Organization in Monolith
Develop
Monolith
QA Deploy Operate
QA
Backend Team A
Backend Team B
Backend Team C
Slide 12
Slide 12 text
12
Organization in Monolith
Develop
Monolith
QA Deploy Operate
QA
Backend Team A
Backend Team B
Backend Team C QA team
Slide 13
Slide 13 text
13
Organization in Monolith
Develop
Monolith
QA Deploy Operate
QA team SRE team
QA
Backend Team A
Backend Team B
Backend Team C
Slide 14
Slide 14 text
14
Organization in Microservices
Develop
Service B
QA Deploy Operate
QA team SRE team
Backend Team A
Backend Team B
Backend Team C
Develop
Service A
Develop
Service C
Slide 15
Slide 15 text
15
Organization in Microservices
Develop
Service B
QA Deploy Operate
Service Team A
Service Team B
Service Team C
Develop
Service A
Develop
Service C
QA Deploy Operate
QA Deploy Operate
Slide 16
Slide 16 text
16
Why Microservices Platform?
To help each service team to reliably develop, deploy
and operate by themselves
To automate things done by SRE like infra bootstrap &
provisioning, monitoring setup and so on.
Slide 17
Slide 17 text
17
Microservices Platform
We build our platform top on Kubernetes
● Deploy containerized application
● Prepare required resources like DB
● Integrated with logging, monitoring & on-calling service
Slide 18
Slide 18 text
18
Role of Platform Team
● Kubernetes cluster admin
● Providing core components and tools
○ e.g., API gateway, Kubernetes controller
● Support development of reliable Microservices
Slide 19
Slide 19 text
19
Principle of Platform Team
● We utilize cloud service
● We automate everything
● We document everything
Slide 20
Slide 20 text
20
Work style
Our SRE organization has an advertised goal of keeping
operational work (i.e., toil) below 50% of each SRE’s time.
At least 50% of each SRE’s time should be spent on
engineering project work that will either reduce future toil
or add service features.
https://landing.google.com/sre/book/chapters/eliminating-toil.html
Slide 21
Slide 21 text
21
Work style
● Use 50% for platform improvement
● Use 50% for support & operations
Slide 22
Slide 22 text
22
Work style
We follow OSS development style
● Everything is in GitHub Issue base
● Everything is reviewed by GitHub PR
Slide 23
Slide 23 text
23
Project management
We also improve project management style by
ourseflves for each Q
In this Q, we’re trying 2 week sprint agile style project
management
Slide 24
Slide 24 text
24
Project management
We are trying ZenHub for project management
Slide 25
Slide 25 text
25
Team
@deeeet @masartz
Tech Lead Engineering
Manager