Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Revitalizing Aging Architectures with Microservices

7,341 views

Published on

When you need to react quickly to competitive threats, but your existing architecture is anything but nimble, what do you do?

In this presentation, you will hear the story of how Walmart Canada revitalized its aging architecture with a microservices model built for speed and performance - that efficiently leveraged its JVM infrastructure - to achieve major e-commerce success in just 12 months:

Conversions up 20%
Mobile orders up 98%
No downtime during Black Friday or Boxing Day

This webinar is based off Kevin Webber’s highly successful Gartner session, Lessons Learned: Revitalizing Walmart's Aging Architecture For Web Scale, and will include added content.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Revitalizing Aging Architectures with Microservices

  1. 1. Revitalizing Aging Architectures with Microservices Kevin Webber (@kvnwbbr) Enterprise Advocate
  2. 2. Typesafe Reactive Platform » Play - RESTful API framework » Akka - Distributed computing framework » Spark - General purpose in- memory compute engine » ConductR, Monitoring, and commercial features
  3. 3. Whyreplatform?
  4. 4. 2005architecture
  5. 5. 2015architecture
  6. 6. 2020architecture
  7. 7. Size ofthe internettoday
  8. 8. Theworld by2020 » 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
  9. 9. WalmartCanada
  10. 10. Business Impact
  11. 11. The goal » ~100% availability ("nine nines")
  12. 12. The goal » ~100% availability ("nine nines") » Consistent responsiveness under varying load conditions
  13. 13. 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
  14. 14. 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
  15. 15. ARevitalizedArchitecture
  16. 16. Walmart's Business Uplift » Conversions up 20% » Mobile orders up 98% » No downtime Black Friday or Boxing Day
  17. 17. Walmart's OperationalSavings » Moved off expensive hardware » On cheap virtual x86 servers » 20% - 50% cost savings » ~ 40% compute cycles
  18. 18. Whereto begin?
  19. 19. 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...
  20. 20. 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.
  21. 21. Reactive A maturity model for modern distributed systems. » Responsive » Resilient » Elastic » Message-driven
  22. 22. Why,What, How Reactive (principles) » responsive, resilient, elastic, message-driven
  23. 23. Why,What, How Reactive (principles) » responsive, resilient, elastic, message-driven Microservices (strategy) » bounded contexts (DDD), event sourcing, CQRS, eventual consistency
  24. 24. Why,What, How Reactive (principles) » responsive, resilient, elastic, message-driven Microservices (strategy) » bounded contexts (DDD), event sourcing, CQRS, eventual consistency Tools (implementation) » Typesafe Reactive Platform (Play, Akka, Spark)
  25. 25. Heritage system
  26. 26. Future system
  27. 27. Clustered microservices » responsive to events, load, failure, users » embrace new concepts and patterns » cluster computing » distribution of data » new patterns like circuit breakers
  28. 28. Async boundary
  29. 29. Async boundary
  30. 30. Synchronous
  31. 31. Asynchronous
  32. 32. Microservices Ecosystem plus: » service registry » service discovery » architecture visualization » security
  33. 33. Play
  34. 34. PlayAnatomy Stateless » Session is stored in the browser cookie Actions » User-defined functions that run in a different context than the request loop
  35. 35. Playatits 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
  36. 36. Akka
  37. 37. Actor model » Distribution » Location transparency » Isolation
  38. 38. Supervision
  39. 39. Typicalerror channel
  40. 40. Dedicated error channel
  41. 41. Validation errors
  42. 42. Clustering
  43. 43. Spark & FastData
  44. 44. Streams? » A series of elements over time » Events, chunks of files » No beginning, no end
  45. 45. AkkaStreams » Per-event processing » Back-pressure » Not distributed » Reactive Streams compliant » Integrate with Spark Streaming
  46. 46. WhatTypesafe offers
  47. 47. Typesafe ConductR ManageTypesafe Reactive Platformapplicationsacrossacluster
  48. 48. Typesafe Monitoring Knowexactlywhatyour Reactive system is doing
  49. 49. Commercialfeatures » Akka Split Brain Resolver » Akka 2.3 Cluster Support for Docker » Play User Quotas » Play SOAP
  50. 50. ProjectSuccess Subscription » Certified build » Compatibility verifications » Security alerts » Binary updates » Long-term support » Legal protection
  51. 51. Thankyou! Visit https://www.typesafe.com/products/typesafe- reactive-platform to get started Contactinfo » Twitter: @kvnwbbr » Email: kevin.webber@typesafe.com

×