http://summit2016.reversim.com
This is not yet another technology list, buzzword packed, look-how-good-we-are show off. Actually it is technology/language agnostic and I won't to say Docker even once ;)
The newcomer into this world is overwhelmed with information, patterns, tools and practices. Having delivered numerous such projects, I'll try to separate the wheat from the chaff.
This is a clear recipe for the key practices you should keep when building continuously delivered microservice.
Video recording (Hebrew) available at https://youtu.be/Rc1K1CXjb7s
4. About microservices
developing a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms … independently deployable by
fully automated deployment machinery.
… each service also provides a firm module boundary, even allowing for different services
to be written in different programming languages. They can also be managed by different
teams …
...decomposed into multiple services, you can expect many single service changes to
only require that service to be redeployed.
James Lewis, Martin Fowler - Microservices a definition of this new architectural term
5. About microservices
developing a single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms … independently deployable by
fully automated deployment machinery.
… each service also provides a firm module boundary, even allowing for different services
to be written in different programming languages. They can also be managed by different
teams …
...decomposed into multiple services, you can expect many single service changes to
only require that service to be redeployed.
6. High
FocusPhoto by Philippe Henry, available under a Creative Commons Attribution-Noncommercial license.
Limited
Scope
9. API
➔ Create a buffer layer for isolation.
➔ Also useful for caching, monitoring, error handling, mocking, etc`
ConsumeMy Special
Service
Used
by me
Using
me
Produce
10. API
➔ Less is more
➔ Consume only what you need.
➔ Publish only what you are willing to commit to
11. I DON’T ALWAYS BUILD
MICROSERVICES
BUT WHEN I DO I NEVER
USE CLIENT LIBRARIES
23. Where
Local dev machine.
What
Unit, Component & Integration
tests.
When
Before commit and as much
as possible
Artifact
Easy checkout, change, and
run
Local build
Centralized Build
Artifact Bake
Automated Staging
Production
24. Local build
Centralized Build
Artifact Bake
Automated Staging
Production
Where
CI Server, Feature branch
What
Unit, Component & Integration
tests.
When
Each commit (PR)
Artifact
“Mergability”
25. Local build
Centralized Build
Artifact Bake
Automated Staging
Production
Where
CI Server, Master branch
What
Unit, Component & Integration
tests.
When
Each commit
(Pull Request merge)
Artifact
Next Production
(Immutable Infrastructure).
26. Local build
Centralized Build
Artifact Bake
Automated Staging
Production
Where
CD Server,
Dedicated testing env
What
Deploy next production,
execute Smoke Test
When
Whenever a new artifact is
baked
Artifact
Confidence in next production
27. Local build
Centralized Build
Artifact Bake
Automated Staging
Production
Where
CD Server,
Production
What
Green-Blue / Canary
Execute relevant checks.
When
After a baked artifact is
verified in staging
40. Melvin E. Conway
Any organization that
designs a system … will
produce a design whose
structure is a copy of the
organization's
communication structure