Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
Microservice as a Pattern
microXchange 2015
by Gregor Elke
- Hello!
- Thank you for having me here!
Gregor Elke
@greelgorke
I'm Gregor Elke
This is my handle on the internet
JavaScript - Node.js
lightweight architecture
Reactive Apps
- i work at codecentric as software developer and consultant
- my main topics are JavaScript based software development, lightweigth architecture and reactive apps
Agenda
- What's a µService (for me)
- Essentials as a Pattern
- Have we met?
- my learning
Disclaimer!
old wine in new bottles approaching!
Just SOA
2-Pizza-Teams
An architectural style
An App in 10-100 LoC
An independent component that can be rewritten in one week.
for me µServices are
- SOA, but different
- tiny, but not in size
- a style, but more a principles compound
- there are so many things to consider while defining it.
- i ended up with comparing microservices with, what i knew before, the classic SOA with monolyths
- so i just said: it's services, but what is different?
- it's micro: what does that mean?
- i came up with that:
µServices vs. Services
- Focus
- Scope
- Communication
decomposition, not integration
mutation, not stability
feature, not a department
responsibility, not a name or title
messages, not contracts
messages, not endpoints
Pattern
- stable structure
- allows reproduction
- is recongizeable in different instances
- Bonus: gives a name to a concept
µService Definition (greelgorke's picks)
- autonomous isolated units
- Single Responsibility
- message-based coupling
- async interfaces
- fast and easy mutable
Unix Philosophy
Write programs
- that do one thing and do it well.
- to work together.
- to handle text streams, because that is a universal interface.
Node Modules
Design Modules
- that do one thing and do it well.
- to work together.
- communicate via events and JSON, because that is a universal interface.
- Streams are a collection of events distributed in time.
µService ~ Interactor
- Boundaries ~ Streams
- total decoupling
Micro Manifesto!
- messages over services
- building for failure over stability
- tolerance over assertion of formats
- rewrite other maintainance
This Talk is a Microservice
Think the unthinkable
- learn the giants work
- all knowledge is a microservice
- learn to combine them
- learn to throw them away
- learn to apply them in new ways