Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JFokus 2015 - Hacking the-monolith

5,053 views

Published on

Terrifying and fun both describe our head-on rapid transformation towards a microservice architecture. We will give you a live report from the trenches with our main choices, mistakes and takeaways concerning design principles, orchestration, ownership etc. SVT interactive is expanding rapidly which increases the complexity rapidly and increase the demands on modularisation. How do you at the same time keep a culture of freedom, experimentation and innovation.

Published in: Software
  • Be the first to comment

JFokus 2015 - Hacking the-monolith

  1. 1. Hacking the Monolith A Case Study SVT interaktiv - JFokus 2015 Gereon Kåver @gereonk Rickard Andersson
  2. 2. Keep the bar low
  3. 3. 2009 2011 2014TEAM 2015 Core Video Core
  4. 4. ≈120 man-year code
  5. 5. New Architecture!
  6. 6. Culture
  7. 7. Autonomy
  8. 8. Opt-in
  9. 9. Free vs standardized tech choices Custom API:s vs standardized API:s Common operations, infrastructure, logging,… Reusability vs versatility Distributed vs centralized ownership …
  10. 10. Free over standardized tech choices Custom API:s over standardized API:s Recommended over common operations, infra, logging Versatility over reusability Distributed over centralized ownership …
  11. 11. Microservice Architecture
  12. 12. 1. Easier to create team autonomy 2. Simplify scaling and maintenance 3. Improve resilience and monitoring 4. Make it more fun to develop Why micro services?
  13. 13. “Create greater ownership” - LinkedIn Give the team full control, no central rules
  14. 14. Create a platform 1. You should (from a newly installed computer) be able to modify and deploy an existing project to production in less than 6 hours. 2. It should take less than two hours to create a new service with CI, monitoring, logging.
  15. 15. Automated deploy at SVT Jenkins deploys to Heroku or internal to “Molnet”
  16. 16. Automated deploy at SVT - “Molnet” $> moln app create crash-course $> moln app image set crash-course /hello-world:1.0 $> moln app targets set crash-course sto.molnet.svt.se=stomoln01-agent01 drs.molnet.svt.se=drsmoln01-agent01 $> moln app deploy crash-course:v1 $> moln app undeploy crash-course:v1
  17. 17. Automated deploy at SVT - “Molnet” - Docker. Packaging and running services - Helios. Orchestration of services. - Consul. System for configuration and service discovery.
  18. 18. Automated deploy at SVT - “Molnet” Open source: https://github.com/SVT/helios-consul
  19. 19. Micro services gives (new) requirements 1.Automated deploy - Contious Integration 2.Monitoring 3.Resilience
  20. 20. Resilience at SVT Hystrix from Netflix. 1.Isolate network interaction using Circuit- Breakers, BulkRequests, Timeouts 2.Fallbacks and graceful degradation 3.Metrics. req/sec, failures, responsetimes https://github.com/Netflix/Hystrix
  21. 21. SVT services
  22. 22. API-guidelines at SVT 1.We do not violate HTTP 1.1 2.We uses rest, Richardson Maturity Model up to and including level 2 3.All API:s uses swagger for documentations. (swagger.io) 4.All clients adds ‘user-agent’ to create traceability 5.We uses CORS (not JSONP)
  23. 23. Keep the bar low
  24. 24. Follow us on blogg.svt.se/testbild Gereon Kåver gereon.kaver@svt.se @gereonk Rickard Andersson rickard.andersson@svt.se

×