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

Good programmer copies, Great programmer pastes

Good programmer copies, Great programmer pastes

琉球大学の情報産業社会学言論Iの講話で呼ばれたので、1年間こんな感じだったという話をしました

Kei Kamikawa

July 26, 2019
Tweet

More Decks by Kei Kamikawa

Other Decks in Programming

Transcript

  1. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities.
  2. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities.
  3. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. Availability If one part is dead, everything is dead...
  4. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Availability
  5. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Availability
  6. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Availability
  7. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Complexity Difficult to add new feature Difficult to try new technologies Difficult to on-boarding Availability
  8. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Complexity Difficult to add new feature Difficult to try new technologies Difficult to on-boarding Velocity Communication overhead Max 32 deployment per day Availability
  9. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Complexity Difficult to add new feature Difficult to try new technologies Difficult to on-boarding Velocity Communication overhead Max 32 deployment per day Availability
  10. Listing Shipping Notification Review Purchase Login Timeline Search Search MySQL

    Mercari Monolith Solr Scalability Need to scale everything for one part of functionalities. If one part is dead, everything is dead... Complexity Difficult to add new feature Difficult to try new technologies Difficult to on-boarding Velocity Communication overhead Max 32 deployment per day Availability
  11. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team
  12. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work
  13. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work
  14. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work
  15. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work
  16. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work Flexible scaling Each service can scale independently on demand
  17. Listing DB Listing team User DB User team Item DB

    Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work Flexible scaling Each service can scale independently on demand
  18. Item Item Listing DB Listing team User DB User team

    Item DB Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work Flexible scaling Each service can scale independently on demand
  19. Item Item Listing DB Listing team User DB User team

    Item DB Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work Flexible scaling Each service can scale independently on demand Simplicity Easy to add new feature Easy to use well suited technology (DB)
  20. Item Item Listing DB Listing team User DB User team

    Item DB Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work Flexible scaling Each service can scale independently on demand Simplicity Easy to add new feature Easy to use well suited technology (DB) Agility Independent deployement Independent decision in small context
  21. Item Item Listing DB Listing team User DB User team

    Item DB Item team Shipping DB Shipping team Timeline DB Timeline team Resilient If one service is dead, others can continue to work Flexible scaling Each service can scale independently on demand Simplicity Easy to add new feature Easy to use well suited technology (DB) Agility Independent deployement Independent decision in small context
  22. Listing Item User Shipping Shipping A Shipping B Shipping C

    DB DB DB DB DB Service A Service B DB DB
  23. 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 Release Flow
  24. w d·Ͱ͕ίΞλΠϜ w ͜ͷ࣌ؒͷؒۈ຿͍ͯ͠Ε͹޷͖ͳ࣌ؒʹग़ࣾɺୀࣾͰ͖Δ w ޷͖ͳ֨޷Ͱग़ࣾ w ͍͍ͩͨδʔϯζɺՆ͸αϯμϧ w ෭ۀਪ঑ͳͷͰ෭ۀ΋ͯ͠Δ

    w ࠷ॳ͸ࣗਬ͚ͯͨ͠Ͳɺ࠷ۙ໘౗ʹͳͬͯ֎৯͹͔Γ w ۙྡͷҿ৯ళ͍͍͕ͩͨৗ࿈ w ԕ͘ͷ͓ళʹߦ͘Α͏ʹͯ͠Δ w ձࣾͷਓͱͷҿΈձ΋૿͑ͨ w ޷͖ͳ͚ͩίʔυΛॻ͍͕ͯ΋Β͑Δ
  25. w ࣾձਓҰ೥໨ w ॳΊͯͷࣾձਓͳͷͰܦݧ͕ͳ͍ w ؀ڥʢӡʣΛྑ͘͢Δํ๏͕͋Δͷ͔ʜ  w ͋Δ͔΋͠Εͳ͍͚Ͳ๻͸஌Βͳ͍ w

    ػձΛ૿΍ͨ͢Ίʹ৭Μͳਓʹग़ձ͏ͷ͸༗Γͩͱࢥ͏ w ࣮ྗͳΒ஁͑ํ࣍ୈͰ޲্͢Δ