Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservices, Containers & Beyond

Microservices, Containers & Beyond

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 a massively distributed container native microservices platform.


Nuwan Bandara

July 17, 2018

More Decks by Nuwan Bandara

Other Decks in Technology


  1. Dir. Solutions Architecture Microservices, Containers & Beyond Nuwan Bandara @nuwanbando

  2. Not another microservices talk https://en.dopl3r.com/memes/hot-topics/microservices/247404

  3. Or how not to do containers With Docker https://en.dopl3r.com/memes/hot-topics/microservices/247404

  4. https://gizmodo.com/5616108/the-history-of-the-internet-visualized History of Systems (of Systems)

  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/
  6. Continuous Innovation

  7. We’ve come a long way (or have we?)

  8. 1994 2018 Disclaimer: Hypothetical Architecture

  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
  16. Beyond

  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
  18. The layered system is old and tired

  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
  21. THANK YOU wso2.com