revitalizing walmart's aging architecture for web scale
Post on 08-Jan-2017
8.184 Views
Preview:
TRANSCRIPT
Revitalizing Walmart's Aging Architecture for Web Scale
Typesafe Reactive Platform» Play - RESTful API
framework
» Akka - Distributed computing framework
» Spark - General purpose in-memory compute engine
» ConductR, Monitoring, and commercial features
Why microservices?
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.
ReactiveThe ultimate maturity model for microservices.
» 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
Ecosystemplus:
» service registry
» service discovery
» architecture visualization
» security
Implementation?
Typesafe Reactive Platform
Message-driven» distribution
» location transparency
» isolation
Resilient» supervision
Resilient» dedicated separate error
channel
Elastic» scale up
» async
» non-blocking
» scale out
» immutable data
» share nothing
Responsive» responsive to events, load,
failure, users
» embrace new concepts and patterns
» cluster computing
» distribution of data
» new patterns like circuit breakers
What we offer
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
Typesafe ConductRManage Typesafe Reactive Platform applications across a cluster
Typesafe MonitoringKnow exactly what your Reactive system is doing
Thank you!Visit https://www.typesafe.com/products/typesafe-reactive-platform to get started
Contact info
» Twitter: @kvnwbbr
» Email: kevin.webber@typesafe.com
top related