Dir. Solutions Architecture
Microservices, Containers & Beyond
Nuwan Bandara
@nuwanbando
Not another
microservices talk
https://en.dopl3r.com/memes/hot-topics/microservices/247404
Or how not to do
containers
With Docker
https://en.dopl3r.com/memes/hot-topics/microservices/247404
https://gizmodo.com/5616108/the-history-of-the-internet-visualized
History of Systems (of Systems)
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/
Continuous Innovation
We’ve come a long way (or have we?)
1994 2018
Disclaimer: Hypothetical Architecture
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
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
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
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
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
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
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
Beyond
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
The layered system is old and tired
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
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
THANK YOU
wso2.com

[WSO2Con USA 2018] Microservices, Containers, and Beyond

  • 1.
    Dir. Solutions Architecture Microservices,Containers & Beyond Nuwan Bandara @nuwanbando
  • 2.
  • 3.
    Or how notto do containers With Docker https://en.dopl3r.com/memes/hot-topics/microservices/247404
  • 4.
  • 5.
    Before every servicebecame “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/
  • 6.
  • 7.
    We’ve come along way (or have we?)
  • 8.
  • 9.
    Innovation at everylayer ● 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 iterationand 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 gotno 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
  • 16.
  • 17.
    The layered systemis 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
  • 18.
    The layered systemis old and tired
  • 19.
    Towards a distributedglobal 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 amoment 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
  • 21.