Successfully reported this slideshow.
Your SlideShare is downloading. ×

An illustrated guide to microservices (ploneconf 10 21-2016)

An illustrated guide to microservices (ploneconf 10 21-2016)

Download to read offline

A (simpler) Microservices Definition


A Microservice is a unit of business logic.




A Microservice application is a distributed composition of business logic via services.

A (simpler) Microservices Definition


A Microservice is a unit of business logic.




A Microservice application is a distributed composition of business logic via services.

Advertisement
Advertisement

More Related Content

Advertisement

More from Ambassador Labs

Advertisement

Related Books

Free with a 30 day trial from Scribd

See all

An illustrated guide to microservices (ploneconf 10 21-2016)

  1. 1. An Illustrated Guide to Microservices Philip Lombardi Engineering
  2. 2. datawire.io Background... 1. Philip Lombardi @ Datawire.io (twitter: @TheBigLombowski) 2. Datawire.io is building a Microservices Development Kit to enable developers to build resilient microservice applications. 3. Check us out after meetup: https://datawire.io 2
  3. 3. datawire.io This is a Python talk… really... 1. Datawire is a first-class Python shop. 2. We love Python so much, we use it to write code in other languages (yes, we have a compiler written in Python). 3. Python & Microservices complement each other really well. 4. Time permitting I’ll do some demo’s with Python microservices... 3
  4. 4. datawire.io 4 What’s a Microservice?
  5. 5. datawire.io Common Microservice Definitions It’s a service that is... ● Small ● Self contained ● Narrow in scope ● Bounded context ● Independent ● Loosely coupled Correct, but incomplete... 5
  6. 6. datawire.io Common Microservice Definitions (as applied to Legos) A piece of plastic that is… ● Small ● Self contained ● Narrow in scope ● Bounded context ● Independent ● Loosely coupled What’s missing…? 6
  7. 7. datawire.io A (simpler) Microservices Definition A Microservice is a unit of business logic. A Microservice application is a distributed composition of business logic via services. 7
  8. 8. datawire.io Combine to build AWESOME! 8
  9. 9. datawire.io What do you get when you combine Microservices? Topologies! 9
  10. 10. datawire.io 10 Death Star Topology
  11. 11. datawire.io Wait, why do I want a death star? Maybe you don’t, but your CXO does 11 Organizational Scale AgilityVelocity
  12. 12. datawire.io Topologies 12
  13. 13. datawire.io Topologies have always been a thing ● Topologies aren’t new, they have always been the bread and butter of distributed systems design ● In fact we’ve all been stuck living in the same topology for a while now 13
  14. 14. datawire.io Topologies are powerful Information flows through topologies like water through a pipe or current on a wire Probably the most important factor in the performance of a distributed system 14
  15. 15. datawire.io Topologies are the purview of the Elite Architects define the topology Developers get to plug in business logic in a few predefined places 15
  16. 16. datawire.io Microservices bring topology to Developers Developers define the topology Business logic is distributed rather than being centralized The topology changes and grows much more quickly 16
  17. 17. datawire.io Topologies can solve a lot of problems Integration Operational Scale Reliability 17
  18. 18. datawire.io Operational Scale (Linear Topology) 18 Ingest Source of Truth Transform Present Template for many data driven businesses…
  19. 19. datawire.io Operational Scale (Linear Topology) 19 Ingest Source of Truth Transform Present Template for many data driven businesses… Network Disk Disk + CPU Network + CPU
  20. 20. datawire.io Scale Components Independently 20 Ingest Source of Truth Transform Present Template for many data driven businesses… Network Disk Disk + CPU Network + CPU
  21. 21. datawire.io Integration (Fan Out Topology) 21
  22. 22. datawire.io 22 Reliability Software Bug Centralized Business Logic can be a Single Point of Failure Operational Failure
  23. 23. datawire.io 23 Reliability Software Bug Decentralize Business Logic to Isolate Failures
  24. 24. datawire.io 24 Organizational Scale Software Bug Decentralized Business Logic Means ● Multiple Teams ● Smaller Codebases ● Ramp up Developers Faster
  25. 25. datawire.io Can topologies give me a death star? They help, but not quite… you need to build topologies quickly! 25 Organizational Scale AgilityVelocity
  26. 26. datawire.io Microservices vs SOA (Service Oriented Architecture) 26
  27. 27. datawire.io Common Explanations Both are topologies of services ● Fine grained SOA ● Integration pattern vs application components ● Organizational factors... We need a better definition… ● These explanations ignore the process that yields the topology 27
  28. 28. datawire.io Architecture and Development are different processes Both can yield topologies of services, but SOA won’t build your death star. For that you need agile topologies Microservices: Service Oriented Development Architecture: ● Lots of up front thinking ● Slow iteration cycle ● Months/years until you get feedback Development: ● Experimental ● Rapid iteration cycle ● Minutes/hours until you get feedback 28
  29. 29. datawire.io You need a new Mindset and new Tooling So, how do I build Agile Topologies? 29
  30. 30. datawire.io Mindset 30
  31. 31. datawire.io What’s the new Mindset? The role of architecture changes ● An architect’s job is to enable developers, not confine them ● Architecture teams -> developer infrastructure, developer happiness, … 31 Up Front Thinking Experimentation
  32. 32. datawire.io Tooling 32
  33. 33. datawire.io What tools enable experimentation & rapid iteration? You need three things when you decentralize your business logic: 1. A way to make your topology resilient to software bugs ○ Where does my catchall go? ○ Minimize impact of bugs reaching production ○ Graceful degradation instead of catastrophic failure 2. A robust tool for deployment pipelines that enables both service and system level testing ○ Where do your integration tests go? 3. Good visibility into the state of the running system ○ Where does my printf go? 33
  34. 34. datawire.io How do you build these tools? It’s all about how you manage your topology ● Transition from DNS -> Discovery ● Central load balancers -> Smart Endpoints 34
  35. 35. datawire.io Routing table is (relatively) static Routing policy is global Traditional Topology Management 35 Client DNS Load Balancer Serverresolve traffic
  36. 36. datawire.io Routing table is updated in realtime Routing policy is local Microservices Topology Management 36 Client Discovery Server heartbeats routes Smart Endpoint
  37. 37. datawire.io Demo 37
  38. 38. datawire.io Summary Useful definitions: ● Microservice: A node in an Agile Service Topology ● Microservices: Service Oriented Development How to build a death star (trifecta of velocity, agility, and organizational scale): ● Mindset: architecture -> experimentation ● Tooling: Discovery + Smart Endpoints With these tools you can get started in half an hour instead of spending six months rearchitecting 38
  39. 39. datawire.io To learn more Contact me: ● plombardi@datawire.io ● Twitter: @TheBigLombowski Jobs ● https://www.datawire.io/careers/ ○ Python, Java|Scala|Kotlin, Go and Kubernetes Developers Wanted! ○ Hiring for DevOps | SRE role! Try ● https://github.com/datawire/mdk ● https://www.datawire.io 39
  40. 40. datawire.io 40

×