Evolution of platform architecture

1

Transcript of Evolution of platform architecture

Page 1: Evolution of platform architecture

Evolution of Platform Architecture

by (the delusional) Vlad Khazin

Page 2: Evolution of platform architecture

Architecture from 1.0 and upwards

● from monolith to micro-service

● from single platform to polyglot solution

● from failure prone to failure safe

● from virtual machines to multi-cloud services

Page 3: Evolution of platform architecture
Page 4: Evolution of platform architecture
Page 5: Evolution of platform architecture

Shomi 1.0

● we've launched x2 with least initial number of hassles I have ever seen

● we've team of awesome people working together (despite management style)

● we have grown fat to move, slow to adopt, and heavy to lift

Page 6: Evolution of platform architecture
Page 7: Evolution of platform architecture
Page 8: Evolution of platform architecture

Shomi 1.1

● micro-services made us more agile and nimble

● Sharded backend made us more scalable

● polyglot solution, as diversity in nature, made us more sustainable and adaptive

● prioritization meeting for each new microservice/language/tool is killing it

Page 9: Evolution of platform architecture
Page 10: Evolution of platform architecture

Shomi 1.2

● more micro-services on the road to more agile and nimble

● leaning away from Microsoft technologies to leverage more tools, frameworks and cloud services

● faster and easier deployment process...

Page 11: Evolution of platform architecture
Page 12: Evolution of platform architecture
Page 13: Evolution of platform architecture

Shomi 2.0● soa is broken down to micro-services, each one controls

its own data

● data has moved to sharded and replicated systems

● Admin soa merged with public soa and protected by authC/authZ rather than by network settings

● there is a problem left behind though...

Page 14: Evolution of platform architecture
Page 15: Evolution of platform architecture
Page 16: Evolution of platform architecture

Resilient By Design

● connectivity issue accounted for and domino effect failures are prevented

● back-end systems are expected to have outages and/or being overloaded - Backpressure

● external/internal services are expected to be unavailable

Page 17: Evolution of platform architecture
Page 18: Evolution of platform architecture
Page 19: Evolution of platform architecture

Paradigm Shift is needed

● from ACID to ACID 2.0: Associative, Commutative, Idempotent, Distributed

● from all-in-one database to CQRS: use a different model to update information than the model you use to read information

● from data/message processing to data/event streaming

Page 20: Evolution of platform architecture
Page 21: Evolution of platform architecture

Shomi 3.0● from virtual machines to platform as a service● from vpc to zero administration● code handles infrastructure failures rather than

infrastructure handles non resilient code● every cloud has something in common and something

different: platform as a service for Node.Js and Elasticsearch as a service

● database as a service - code handles the differences between different repositories - not as scary as it sounds.

Page 22: Evolution of platform architecture

Shomi 3.0● Halo Service communicates the url’s● Configuration service communicates other settings● Replication messages sent between cloud providers● Every individual service and cloud provider is assumed to

be unreliable.● More redundancy achieved by adding availability zones or

by adding cloud providers ● Shomi service cannot be down unless both complimentary

cloud providers go down

Page 23: Evolution of platform architecture

Shomi 4.0● and you thought it can’t get any more insane than 3.0…

● Containers replace platform as a service to further simplify deployment

● Database and Search as a service are no more from the same cloud provider as QoS improves

● Replication is simplified by new tools that are yet to come