Microservice architecture (MSA) is here to stay. It is the natural evolution of SOA or as some call it, “it's SOA done right”. Containers and container-based service deployments compliment and accelerate the adoption of MSA. Today you do not plan for maintenance windows in a production platform. You have blue/green type platform updates with strategies like traffic shadowing. All of that agility has become a reality with microservices, clean architectures, and container-based deployment and orchestration. This talk is a discussion of what's next in this highly agile, massively distributed environment. It will focus on fine tuned DevOps processes, governance, and observability in this modern distributed computing platform.
5. Before every service became “micro”
and every remote call became an API invoke
● There were no services
○ Some code running in a mainframe and executes a batch
job
● Then came RPC / CORBA / DCOM
○ Complexity / ignoring the fallacies of distributed computing
● Service orientation
○ SOAP / XML / UDDI / WS-*
○ Framework bloat / standards bloat / Vendor biases
○ Emphasis on platform neutrality
○ Over emphasis on governance (design time)
https://store.steampowered.com/app/463210/State_of_Anarchy/
9. Innovation at every layer
● User experience
○ Speed / efficiency / accuracy / feedback
● Communication
○ Web / mobile / voice assisted
● Server-side workloads
○ Scalability / availability / reliability / security
● Business workflows
○ Efficiency / productivity / accuracy / feedback
10. Modern Computing System
● Logic that runs
● Transactional data flow
● Distributed control plane
● Devops for iteration / agility of all 3 of the above (“gitops”)
- Tyler Jewell
11. Logic that runs
● Organized around capabilities - has a bounded
context
● Performance optimized
○ Today’s workloads are massively complex, marginal
perf improvements can add massive gains
● Independent and own its data
● Less importance on interop, more focus on
developer productivity and exposing a cleaner
interface
https://martinfowler.com/articles/microservices.html
12. Transactional data flow
● Mostly reactive, event driven and
asynchronous
○ Smart endpoints and dumb pipes
○ Distributed flow logic - aka “data plane”
● Avoids a central coordinator for
orchestration
○ Though not always - blocking
synchronous workflows require central
coordination
Complete asynchronous / reactive
Hybrid with coordinator service
13. Distributed control plane
● Emphasis on decentralized
governance
● Policy admin, discovery and
observability local to the domain
● Governance by surveillance
Single computing systems domain
Multi-domain system
14. DevOps for iteration and agility
● Infrastructure as code
○ Infrastructure provisioning with declarative means
■ Yaml, ansible, puppet, terraform
■ Immutable infrastructure (i.e: microservices containers)
○ Infrastructure provisions are versioned and diff alerted (“gitops”)
■ Git as source of truth
■ Feedback loop for the build pipeline
15. I ain't got no pets
● No infrastructure is unique or
special (ain’t no pet)
● Code runs in compute units and
scales automatically
● As units crash new ones join the
herd (cluster)
Borrowed from @randybias - The Cloud Revolution
17. The layered system is old and tired
● Future is just code, compute and storage
○ Custom code for mediation - Fear no more
● Logic, transactions, workflows will become just code
○ Config based coordinators, workflow engines deemed to be too
abstract
○ With microservices, there won’t be any centralized control layer
19. Towards a distributed global supercomputer
● A future where no one will own and carry a computer
● No organization will run a private data center
○ Supporting and maintaining a private DC will not be economical
○ Security, privacy and compliance will be guaranteed by standards
(i.e: GDPR / HIPAA / .Gov etc.)
● Developers will deploy code to a global computer (leased
compute)
○ Serveless is trending currently with more and more event driven,
reactive use-cases
20. Summary
● Taking a moment to appreciate the history
● Innovation at every layer
● Modern computer system and its four major properties
● There are no special infrastructure that keep you awake
● Centralized layered deployment architecture is retiring
● Compute & storage is leased and code is pushed to a
distributed supercomputer