This talk will explain key principles, costs, and benefits of microservices and
show via a series of live demos and working examples how to extend a
Python application to quickly and easily benefit from migrating to a
microservices architecture.
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
An illustrated guide to microservices (boston python meetup - Aug 2016)
1. An Illustrated Guide to
Microservices
Rafael Schloming
Co-Founder & Chief Architect
2. datawire.io
This is a Python talk… really...
1. Datawire is a python shop
2. We like 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. We will write an actual microservice in python, just hold out for it
2
5. 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…?
5
11. 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
11
12. 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
12
13. 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
13
14. 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
14
17. datawire.io
Operational Scale (Linear Topology)
17
Ingest Source of Truth Transform Present
Template for many data driven businesses…
Network Disk Disk + CPU Network + CPU
23. datawire.io
Can topologies give me a death star?
They help, but not quite… you need to build topologies quickly!
23
Organizational Scale
AgilityVelocity
25. 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
25
26. 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
26
27. datawire.io
You need a new Mindset and new Tooling
So, how do I build Agile Topologies?
27
29. 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, …
29
Up Front Thinking Experimentation
31. 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?
31
32. 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
32
33. datawire.io
Routing table is (relatively) static
Routing policy is global
Traditional Topology Management
33
Client
DNS
Load Balancer
Serverresolve
traffic
34. datawire.io
Routing table is updated in realtime
Routing policy is local
Microservices Topology Management
34
Client
Discovery
Server
heartbeats
routes
Smart
Endpoint
36. 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
36
37. datawire.io
To learn more
Contact me:
● rhs@datawire.io
Jobs
● https://www.datawire.io/careers/
Try
● https://github.com/datawire/mdk
● https://www.datawire.io
37