Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Mercari Micorservices Platform Team

Introduction to Mercari Micorservices Platform Team

taichi nakashima

July 19, 2018
Tweet

More Decks by taichi nakashima

Other Decks in Technology

Transcript

  1. View Slide

  2. @deeeet / @tcnksm
    Blog / deeeet.com
    Tech Lead at Mercari
    Microservices Platform Team

    View Slide

  3. Microservices at Mercari

    View Slide

  4. 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?

    View Slide

  5. 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

    View Slide

  6. 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)

    View Slide

  7. 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!

    View Slide

  8. Microservices Platform Team

    View Slide

  9. Why Platform Team?

    View Slide

  10. 10
    Organization in Monolith
    Develop
    Monolith
    QA Deploy Operate
    QA

    View Slide

  11. 11
    Organization in Monolith
    Develop
    Monolith
    QA Deploy Operate
    QA
    Backend Team A
    Backend Team B
    Backend Team C

    View Slide

  12. 12
    Organization in Monolith
    Develop
    Monolith
    QA Deploy Operate
    QA
    Backend Team A
    Backend Team B
    Backend Team C QA team

    View Slide

  13. 13
    Organization in Monolith
    Develop
    Monolith
    QA Deploy Operate
    QA team SRE team
    QA
    Backend Team A
    Backend Team B
    Backend Team C

    View Slide

  14. 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

    View Slide

  15. 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

    View Slide

  16. 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.

    View Slide

  17. 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

    View Slide

  18. 18
    Role of Platform Team
    ● Kubernetes cluster admin
    ● Providing core components and tools
    ○ e.g., API gateway, Kubernetes controller
    ● Support development of reliable Microservices

    View Slide

  19. 19
    Principle of Platform Team
    ● We utilize cloud service
    ● We automate everything
    ● We document everything

    View Slide

  20. 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

    View Slide

  21. 21
    Work style
    ● Use 50% for platform improvement
    ● Use 50% for support & operations

    View Slide

  22. 22
    Work style
    We follow OSS development style
    ● Everything is in GitHub Issue base
    ● Everything is reviewed by GitHub PR

    View Slide

  23. 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

    View Slide

  24. 24
    Project management
    We are trying ZenHub for project management

    View Slide

  25. 25
    Team
    @deeeet @masartz
    Tech Lead Engineering
    Manager

    View Slide

  26. 26
    Team
    @b4b4r07 @spesnova @dtan4 @vbanthia_

    View Slide

  27. 27
    Team from
    @_zchee_ @tjun_ @knnksk

    View Slide

  28. Technical Stack

    View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. Work In Progress

    View Slide

  33. Work In Progress

    View Slide

  34. We’re hiring!

    View Slide

  35. View Slide