revitalizing walmart's aging architecture for web scale

Post on 08-Jan-2017

8.184 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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