View
7.177
Download
0
Embed Size (px)
Citation preview
Revitalizing Aging Architectures with Microservices
Kevin Webber (@kvnwbbr) Enterprise Advocate
Typesafe Reactive Platform» Play - RESTful API
framework
» Akka - Distributed computing framework
» Spark - General purpose in-memory compute engine
» ConductR, Monitoring, and commercial features
Why replatform?
2005 architecture
2015 architecture
2020 architecture
Size of the internet today
The world by 2020» 4 billion connected people
» 25+ million apps
» 25+ billion embedded systems
» 40 zettabytes (40 trillion gigabytes)
» 5,200 GB of data for every person on Earth
Walmart Canada
Business Impact
The goal» ~100% availability ("nine nines")
The goal» ~100% availability ("nine nines")
» Consistent responsiveness under varying load conditions
The goal» ~100% availability ("nine nines")
» Consistent responsiveness under varying load conditions
» Predictable spikes of traffic, e.g, Black Friday
» Less predictable spikes of traffic, e.g, marketing campaign driving traffic
The goal» ~100% availability ("nine nines")
» Consistent responsiveness under varying load conditions
» Predictable spikes of traffic, e.g, Black Friday
» Less predictable spikes of traffic, e.g, marketing campaign driving traffic
» Enable LOBs to rapidly adapt to market conditions
A Revitalized Architecture
Walmart's Business Uplift» Conversions up 20%
» Mobile orders up 98%
» No downtime Black Friday or Boxing Day
Walmart's Operational Savings» Moved off expensive hardware
» On cheap virtual x86 servers
» 20% - 50% cost savings
» ~ 40% compute cycles
Where to begin?
asynchronous, non-blocking, real-time, highly-available, loosely coupled, scalable, fault-tolerant, concurrent, reactive, event-driven, push instead of pull, distributed, low latency, high throughput...
asynchronous, non-blocking, real-time, highly-available, loosely coupled, scalable, fault-tolerant, concurrent, reactive, event-driven, push instead of pull, distributed, low latency, high throughput...
Too complicated. We need a simple vocabulary.
ReactiveA maturity model for modern distributed systems.
» Responsive
» Resilient
» Elastic
» Message-driven
Why, What, HowReactive (principles)
» responsive, resilient, elastic, message-driven
Why, What, HowReactive (principles)
» responsive, resilient, elastic, message-driven
Microservices (strategy)
» bounded contexts (DDD), event sourcing, CQRS, eventual consistency
Why, What, HowReactive (principles)
» responsive, resilient, elastic, message-driven
Microservices (strategy)
» bounded contexts (DDD), event sourcing, CQRS, eventual consistency
Tools (implementation)
» Typesafe Reactive Platform (Play, Akka, Spark)
Heritage system
Future system
Clustered microservices» responsive to events, load,
failure, users
» embrace new concepts and patterns
» cluster computing
» distribution of data
» new patterns like circuit breakers
Async boundary
Async boundary
Synchronous
Asynchronous
Microservices Ecosystemplus:
» service registry
» service discovery
» architecture visualization
» security
Play
Play AnatomyStateless
» Session is stored in the browser cookie
Actions
» User-defined functions that run in a different context than the request loop
Play at its core» Familiar MVC paradigm
» Embraces flows of data
» WebSockets, SSE
» Reactive Streams (experimental in Play 2.4)
» File uploads
» Integration with Akka
» Distribute work via messaging
Akka
Actor model» Distribution
» Location transparency
» Isolation
Supervision
Typical error channel
Dedicated error channel
Validation errors
Clustering
Spark & Fast Data
Streams?» A series of elements over time
» Events, chunks of files
» No beginning, no end
Akka Streams» Per-event processing
» Back-pressure
» Not distributed
» Reactive Streams compliant
» Integrate with Spark Streaming
What Typesafe offers
Typesafe ConductRManage Typesafe Reactive Platform applications across a cluster
Typesafe MonitoringKnow exactly what your Reactive system is doing
Commercial features» Akka Split Brain Resolver
» Akka 2.3 Cluster Support for Docker
» Play User Quotas
» Play SOAP
Project Success Subscription» Certified build
» Compatibility verifications
» Security alerts
» Binary updates
» Long-term support
» Legal protection
Thank you!Visit https://www.typesafe.com/products/typesafe-reactive-platform to get started
Contact info
» Twitter: @kvnwbbr
» Email: [email protected]