Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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/

Slide 6

Slide 6 text

Continuous Innovation

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

1994 2018 Disclaimer: Hypothetical Architecture

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Beyond

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

The layered system is old and tired

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

THANK YOU wso2.com