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.

So you think you can scale

API Strategy Austin 2015 Keynote. Scaling apps today is about architecture, not algorithms.

  • Login to see the comments

So you think you can scale

  1. 1. SO YOU THINK YOU CAN S C A L E @lmacvittie @F5Networks
  2. 2.    Why do we scale?
  3. 3. 100 Milliseconds Slower -1% SALES -0.2% SEARCHES -2% CONVERSION $660M $45M $244M H/T James Urquhart, SOASTA Data: Gartner, Walmart
  4. 4. 1 Minute of Downtime Data: Emerson Power Costs an average of $7300 Average total cost of downtime per year across industries PRODUCTIVITY IT PRODUCTIVITY LOST REVENUE $53,608$140,543 $183,724
  5. 5. =
  6. 6. UP OUT How do we scale today?
  7. 7. POLB (Plain Old Load Balancing) We throw POLB in front of everything
  8. 8. But architectures and apps are changing THEN MONOLITHIC MICROSERVICES & APIs NOW
  9. 9. And so are “users” THEN Humans NOW Humans, Systems, Things
  10. 10. L7 LB Layer 7 Load Balancing Modern Apps Need Modern Scale
  11. 11. Scaling Modern Apps THEN CHOOSING AN ALGORITHM NOW • Round Robin • Least Connections • Fastest Response CHOOSING AN ARCHITECTURE • Horizontal • Functional • Partitioning 
  12. 12. Growth and Innovation Architectural Debt Software has technical Debt. Networks have architectural debt.
  13. 13. L7 LB Scalability architectures based on Scale Cube Horizontal Duplication Functional Decomposition Data Partitioning (Sharding) X-AXIS Y-AXIS Z-AXIS
  14. 14. • Like clustering • Leverages cloning (horizontal duplication) • Typically operates at layer 4 (TCP) • This is POLB X-AXIS
  15. 15. Y-AXIS • Like routing / URL dispatch • Uses identifiable variables (usually from HTTP headers) • Operates at layer 7 (HTTP) /login/ /checkout/ /search/
  16. 16. Z-AXIS /car/[A-M]/ /car/[N-U]/ /car/[V-Z]/ • Like sharding • Uses one or more identifiable variables (usually from HTTP headers) • Operates at layer 7 (HTTP)
  17. 17. API APIAPIAPI q API Dispatch q POLB API Façade
  18. 18. L7 q Device Driven (Dispatch) L7 L7 L7 APIAPIAPI APIAPIAPIAPI Purpose Driven (functional decomposition) /status /update /status /update /billing /profile /update Capacity Driven (POLB) Variations on a Theme
  19. 19. • Data Partitioning (Sharding) Architectures • URL/HTTP dispatch • Dynamic routing based on backend data • Scaling by Functional Decomposition • API metering • App versioning / migration • API deprecation L7 LB Architecting Scalability
  20. 20. Things to Consider Sooner Rather than Later Is your API design well-suited to scaling in any way other than POLB? How do you identify people, systems, and things? How do you distinguish between API versions? Multi-tenant or single tenant microservices? The answers to these questions will impact your scaling architectural options*. Emacs or vi? *Maybe not that last one. How are you monitoring (and what are you measuring with it)?
  21. 21. THANK YOU! @lmacvittie @F5Networks