MINDSET, INFRASTRUCTURAL ANDORGANIZATIONAL CHANGES
TO ADAPT TO MICROSERVICES
Armagan AmcalarDevOps Pro MoscowNovember 16th, 2017
WHO AM I?
Armagan AmcalarHead of Software Engineering @
Founder @
dashersw dashersw
unu GmbH
Lonca Works
erste
dovecote
cotesemaver
vieux
brain-bits
pedalboard.js
tartJSgeneJSjira-bot
AUTHORED ON GITHUB
SUMMARY
Your team wants to adopt microservices.
Is your organization ready for the challenge?
dashersw
WHAT IS NOT A MICROSERVICE?
Async operations with queue (and other) systemsHaving 50 different queue consumers (for notifications,logging, reconciliation services, e-mailing etc) doesn’t
mean you have 50 microservices
Multiple programs running on a single machine andcommunicating over HTTP
dashersw
WHAT IS A MICROSERVICE?
If you are breaking down the fulfillment of a clientrequest into multiple collaborating services that run in
their own memory space, then you are doingmicroservices.
THE BASELINE
dashersw
MICROSERVICES CTD.
Bounded contexts in domain driven design (at worst)
Request–response flow breakdown with
preferably many smaller pieces (with separate codebase)
A bug in a service doesn't bring down the whole app
Scales well, needs minimal additional resources
Supports event-driven architecture
Single responsibility, API interface
dashersw
BEST PRACTICES
Clear interfaces between servicesAuto discovery
Dynamic (or zero) configurationHigh availability
Scale and update single servicesFavor cattle over pets
dashersw
PITFALLS
Wrong domain modelError handling & circuit breaking
Fault-toleranceMonitoring
Multiple points of failureHard to get the big picture
dashersw
CHANGE
IS THE ESSENCE OF THEGAME
dashersw
Code will rapidly change
Dependencies will change
Deployment & release processes will change
WHAT WILL CHANGE?
dashersw
HOW CAN YOU ADAPT?
dashersw
MINDSET CHANGES
Prepare for and own the changeDefer responsibilities
Increase visibility on dependencies and interfacesbetween software components
Architectural documents are backDevOps movement
Integration tests are a lot more importantControversy: decrease unit and functional tests and
increase automated user acceptance tests.
dashersw
BENEFITS
Increase in code ownershipAwareness of impact
Increase in communicationReduced stress due to automation
Architecture is straightforward; reduces ambiguity forwhat implementation belongs in what class
DDD is more important, more straightforward
dashersw
INFRASTRUCTURAL CHANGES
Freedom to use the best tool for the jobInvest in a solid CI/CD process
Pipelined builds with several stagesContainerize your applicationInvest heavily in monitoring
dashersw
BENEFITS
No vendor lock inNo secret sauce
No surprisesMigration is damn easy
Adopting new technologies is lightning fast
dashersw
ORGANIZATIONAL CHANGES
Team structure completely changesScrum teams will get an update
Release management becomes a first-class citizenHierarchy is eliminated
Find other ways to keep a consistent vision within theteam
dashersw
BENEFITS
Increased agilitySmaller teams lead to easier decisions
Helps with planning for impediments and dependencies;“blocked-by hell”
Increased happinessIncreased productivity
Fit for distributed teams!
dashersw
CONCLUSION
MICROSERVICES WILL SUPERCHARGE YOURORGANIZATION.
THE FUTURE IS BRIGHT AND THE GAME IS AFOOT!
dashersw
THANK YOU!
LET'S KEEP IN TOUCH!
Armagan Amcalar
get these slides at:
https://slides.com/armaganamcalar/devopspro-microservices