KodGemisi
Software development, consultancy and training
Destan Sarpkaya, April 2019 selam@kodgemisi.com
Destan Sarpkaya
Microservice vs Monolith
Loosely coupled service oriented architecture with bounded contexts
Adrian Cockcroft
An approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.
Martin Fowler
Microservices ...
How Small Should a Microservice Be?
Single Responsibility Principle
Gather together those things that change for the same reason, and separate those things that change for different reasons.
Robert C. Martin
Line of Codes?
something that could be rewritten in two weeks?
The smaller the service, the more you maximize the benefits and downsides of microservice architecture.
Sam Newman
How Small Should a Microservice Be?
Unix philosophy
Do one thing and do it well.
Bounded Context
Conway's Law
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
Melvyn Conway, 1967
Conway's Law
Conway's Law
intentionally lacking some in this presentation...
Teams own the product
Hide Implementation Details
Service A
Service B
Hide Database Access!
Smart Endpoints and Dumb Pipes
Avoid Enterprise Service Bus (ESB)
which includes sophisticated facilities for:
Microservices:
Autonomy
Polyglot Services
Sales
<<Java>>
Web
<<Node.js>>
Support
<<.NET>>
Application
Polyglot Persistence
Culture of Automation
Observability
Log Aggregation
Elastic Stack (ELK): Elasticsearch, Logstash, and Kibana
Prerequisites
Prerequisites
Scalability
Quick Response
New developers won't be afraid
Microservice architecture is just
distributed computing
More Complex Cross-Cutting Concerns
Logging, monitoring and security are just got more complex!
Operational Complexity
they are not free
Human Factor
We trade off operational complexity for development simplicity
Microservices approach just moves complexity from one point to another
The most important benefit is agility
By KodGemisi
A high level introduction and overview of microservice architecture and related concepts