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.

The Agile Roots of Microservices

912 views

Published on

Slides from my talk at Agile Vancouver's "Agile in the Cloud" Conference on May 16, 2016.

Published in: Technology
  • Be the first to comment

The Agile Roots of Microservices

  1. 1. May 16, 2016 #AgileInTheCloud Extreme Architecture The Agile Roots of Microservices Matt McLarty Vice President, API Academy CA Technologies @mattmclartybc
  2. 2. 2 #AgileInTheCloud Topics in this talk… Background on CA and the API Academy What are microservices and where did they come from? Why do microservices matter? How and when can an organization get started with microservices? Who has implemented microservices effectively? Where are the trouble spots?
  3. 3. 3 #AgileInTheCloud Some background…
  4. 4. 4 #AgileInTheCloud Who am I?
  5. 5. 5 #AgileInTheCloud CA Technologies in Vancouver 2002-2013 2013-Now
  6. 6. 6 #AgileInTheCloud The API Academy http://apiacademy.co
  7. 7. 7 #AgileInTheCloud What are “microservices” and where did they come from?
  8. 8. 8 #AgileInTheCloud Microservices “Microservices are a thing these days” - Phil Calçado
  9. 9. 9 #AgileInTheCloud The first thing everyone reads about microservices… http://martinfowler.com/articles/microservices.html
  10. 10. 10 #AgileInTheCloud Microservices = Service-Oriented Architecture? “For us service orientation means encapsulating the data with the business logic that operates on the data, with the only access through a published service interface.” - Werner Vogels, AWS CTO https://queue.acm.org/detail.cfm?id=1142065 “Microservices is SOA with emphasis on small ephemeral components.” - Adrian Cockroft, Battery Ventures, ex-Netflix https://twitter.com/adrianco/status/542850261782237184
  11. 11. 11 #AgileInTheCloud Microservice principles Decompose into discrete services to enable continuous delivery Reduce dependencies to facilitate frequent change Remove bottlenecks to speed up development Developed and supported by small, empowered, business-aligned teams Break the system down into understandable and manageable parts Reduce the amount of unchanged code that gets deployed
  12. 12. 12 #AgileInTheCloud These are Agile principles! Decompose into discrete services to enable continuous delivery Reduce dependencies to facilitate frequent change Remove bottlenecks to speed up development Developed and supported by small, empowered, business-aligned teams Break the system down into understandable and manageable parts Reduce the amount of unchanged code that gets deployed
  13. 13. 13 #AgileInTheCloud The Agile Progression Agile Software Development Continuous Delivery DevOps Microservice Architecture
  14. 14. 14 #AgileInTheCloud Microservices and Agile Microservice architecture is Agile software architecture
  15. 15. 15 #AgileInTheCloud Agile Software Architecture “If we look at the characteristics of an agile software architecture, we tend to think of something that is built using a collection of small, loosely coupled components/services that collaborate together to satisfy an end-goal. This style of architecture provides agility in a number of ways. Small, loosely coupled components/services can be built, modified and tested in isolation, or even ripped out and replaced depending on how requirements change. This style of architecture also lends itself well to a very flexible and adaptable deployment model, since new components/services can be added and scaled if needed.” - Simon Brown, September 2013 http://www.codingthearchitecture.com/2013/09/03/what_is_agile_software_architecture.html
  16. 16. 16 #AgileInTheCloud Microservice Definitions A microservice is an independently deployable component of bounded scope that supports interoperability through message-based communication. Microservice architecture is a style of engineering highly-automated, evolvable software systems made up of capability- aligned microservices.
  17. 17. 17 #AgileInTheCloud Why are organizations using microservices?
  18. 18. 18 #AgileInTheCloud Business Value Stories “We can scale our operation independently, maintain unparalleled system availability, and introduce new services quickly without the need for massive reconfiguration.” •Werner Vogels, Amazon (2006) https://queue.acm.org/detail.cfm?id=1142065 “…the next generation [architecture] that we are building will give Netflix a strong foundation to meet the needs of our massive and growing scale, enabling us to delight our global audience.” •Netflix (2015) http://techblog.netflix.com/2015/01/netflixs-viewing-data-how-we-know-where.html “Lessens dependencies between teams - resulting in faster code to production.” •Adrian Trenaman, Gilt (2015) http://www.infoq.com/news/2015/04/scaling-microservices-gilt “With the new architecture framework, we were able to reduce our lead time for new features to something that…was much more acceptable for a company trying to play in the highly competitive music industry.” •Phil Calçado, SoundCloud (2015) http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html
  19. 19. 19 #AgileInTheCloud The goal of microservices Speed and safety at scale
  20. 20. 20 #AgileInTheCloud Microservice Architecture Maturity Model Independent Deployability Polyglotism Independent Manageability Testability Organizational Alignment Composability Replaceability Efficiency Agility Comprehensibility Resiliency/ Availability Runtime Scalability Modularized “Establish the foundation” Cohesive “Design the services” Systematized “Design the system” Speed SafetyA microservice architecture that is… Scale&Complexity
  21. 21. 21 #AgileInTheCloud Getting started with a design- based approach to microservices
  22. 22. 22 #AgileInTheCloud
  23. 23. 23 #AgileInTheCloud
  24. 24. 24 #AgileInTheCloud
  25. 25. 25 #AgileInTheCloud Outcomes
  26. 26. 26 #AgileInTheCloud Outcomes Services
  27. 27. 27 #AgileInTheCloud Outcomes Services Foundation
  28. 28. 28 #AgileInTheCloud Outcomes Services System Foundation
  29. 29. 29 #AgileInTheCloud Outcomes Services System Organization Foundation
  30. 30. 30 #AgileInTheCloud Future Outcomes Services System Organization Foundation
  31. 31. 31 #AgileInTheCloud Microservices in practice
  32. 32. 32 #AgileInTheCloud Microservices at Hootsuite Outcomes Increase development velocity and scale Allow more operational flexibility Services Distributed Domain Driven Design and contracts Tiered services: Data, Functional, Façade Foundation Skyline platform for cross-service communication System Dynamic service discovery at runtime and design time Organization Product-aligned teams of 5-7 people, cross- functional “guilds”, central platform team Governance by “eventual consistency” Future Technology Architecture Group for cross- cutting concerns
  33. 33. 33 #AgileInTheCloud What to look out for
  34. 34. 34 #AgileInTheCloud Microservices Dependencies Cloud infrastructure Continuous delivery DevOps culture System management APIs Containers? Adapted from http://martinfowler.com/bliki/MicroservicePrerequisites.html
  35. 35. 35 #AgileInTheCloud Potential Pitfalls Overemphasizing the technology Underemphasizing the system Going for the “Big Bang” Designing for “Done”
  36. 36. 36 #AgileInTheCloud Blind Spots System Monitoring and Management Service Design and Orchestration Security and Policy Enforcement Integrated Testing
  37. 37. 37 #AgileInTheCloud Summary
  38. 38. 38 #AgileInTheCloud In summary… Microservice architecture is Agile software architecture Microservices can bring speed and safety at scale Take a design-based approach to microservices Early microservice adopters take a holistic approach Be aware of pre-requisites, pitfalls and blind spots
  39. 39. 39 #AgileInTheCloud Questions?
  40. 40. 40 #AgileInTheCloud Thank you!

×