Upgrade to Pro — share decks privately, control downloads, hide ads and more …

So you think you can SCALE by Lori Macvittie

So you think you can SCALE by Lori Macvittie

More Decks by API Strategy & Practice Conference

Other Decks in Technology

Transcript

  1. SO YOU THINK YOU CAN S C A L E

    @lmacvittie @F5Networks
  2. 100 Milliseconds Slower -1% SALES -0.2% SEARCHES -2% CONVERSION $660M

    $45M $244M H/T James Urquhart, SOASTA Data: Gartner, Walmart
  3. 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
  4. =

  5. Scaling Modern Apps THEN CHOOSING AN ALGORITHM NOW • Round

    Robin • Least Connections • Fastest Response CHOOSING AN ARCHITECTURE • Horizontal • Functional • Partitioning 
  6. L7 LB Scalability architectures based on Scale Cube Horizontal Duplication

    Functional Decomposition Data Partitioning (Sharding) X-AXIS Y-AXIS Z-AXIS
  7. Y-AXIS • Like routing / URL dispatch • Uses identifiable

    variables (usually from HTTP headers) • Operates at layer 7 (HTTP) /login/ /checkout/ /search/
  8. 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)
  9. L7 L7 L7 L7 API API API API API API

    API /status /update /status /update /billing /profile /update Variations on a Theme
  10. • 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
  11. 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)?