A pattern language for microservices (#SFMicroservices)

335 views

Published on

When architecting an application, you need to choose between the traditional monolithic architecture, or the more fashionable microservices architecture consisting of many smaller services. But rather than blindly picking the familiar or the fashionable, it’s important to remember what Fred Books said almost 30 years ago: there are no silver bullets in software. Every architectural decision has both benefits and drawbacks. Whether the benefits of one approach outweigh the drawbacks greatly depends upon the context of your particular project. Moreover, even if you adopt the microservices architecture, you must still make numerous other design decisions, each with their own trade-offs.

A software pattern is an ideal way of describing a solution to a problem in a given context along with its tradeoffs. In this presentation, we describe a pattern language for microservices. You will learn about patterns that will help you decide when and how to use microservices vs. a monolithic architecture. We will also describe patterns that solve various problems in a microservice architecture including inter-service communication, service registration and service discovery.

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
335
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A pattern language for microservices (#SFMicroservices)

  1. 1. @crichardson A pattern language for microservices Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action @crichardson chris@chrisrichardson.net http://microservices.io http://eventuate.io http://plainoldobjects.com
  2. 2. @crichardson Presentation goal Why patterns and pattern languages? A pattern language for microservices
  3. 3. @crichardson About Chris
  4. 4. @crichardson About Chris Consultant and trainer focusing on modern application architectures including microservices (http://www.chrisrichardson.net/)
  5. 5. @crichardson About Chris Founder of a startup that is creating a platform that makes it easier for developers to write transactional microservices (http://eventuate.io)
  6. 6. @crichardson For more information http://learnmicroservices.io
  7. 7. @crichardson
  8. 8. @crichardson Agenda Why a pattern language for microservices? An overview of the microservices pattern language
  9. 9. @crichardson In 1986… http://en.wikipedia.org/wiki/Fred_Brooks
  10. 10. @crichardson Yet almost 30 years later developers are still passionately arguing over “silver bullets”
  11. 11. @crichardson Today’s silver bullets
  12. 12. @crichardson Human beings are emotional Decide using emotions Rationalize with our intellect http://en.wikipedia.org/wiki/Mahout
  13. 13. @crichardson Gartner Hype Cycle http://upload.wikimedia.org/wikipedia/commons/b/bf/Hype-Cycle-General.png It’s awesome It’s not awesome Trade-offs understood
  14. 14. @crichardson We need a better way to discuss and think about technology
  15. 15. @crichardson What’s a pattern? Reusable solution to a problem occurring in a particular context
  16. 16. @crichardson The structure of a pattern = Great framework for discussing and thinking about technology
  17. 17. @crichardson The structure of a pattern Resulting context aka the situation Name Context Problem Related patterns (conflicting) issues etc to address Forces Solution
  18. 18. @crichardson Resulting context Benefits Drawbacks Issues to resolve
  19. 19. @crichardson Related patterns Alternative solutions Solutions to problems introduced by this pattern
  20. 20. Pattern language A collection of related patterns that solve problems in a particular domain Relationships Pattern A results in a context that has a problem solved by Pattern B Patterns A and B solve the same problem Pattern A is a specialization of pattern B http://en.wikipedia.org/wiki/A_Pattern_Language Access to Water Promenade Local townhall Intimacy gradient Light on two sides
  21. 21. @crichardson Meta-pattern: Use the pattern format to describe technology Problem: How to talk/reason about technology? Solution: Use the pattern format Benefit: More objective Drawback: Less exciting Context: Emotional software development culture Related patterns: It’s awesome!
  22. 22. @crichardson Agenda Why a pattern language for microservices? An overview of the microservices pattern language
  23. 23. @crichardson Microservices pattern language http://microservices.io/
  24. 24. @crichardson How to architect your application?
  25. 25. @crichardson How to deploy your application?
  26. 26. @crichardson How do services communicate?
  27. 27. @crichardson How does a service know another’s network location
  28. 28. @crichardson How do an application’s clients communicate with the services?
  29. 29. @crichardson How to simplify the development of services?
  30. 30. @crichardson What is the database architecture?
  31. 31. @crichardson How to maintain data consistency across services?
  32. 32. @crichardson Summary: Patterns and pattern languages are a great way to … Think about technology Discuss technology Apply technology
  33. 33. @crichardson Summary: The Microservices pattern language is a great way to … Think about microservices Discuss microservices Apply microservices (or not)
  34. 34. @crichardson @crichardson chris@chrisrichardson.net http://learnmicroservices.io Questions?

×