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

Price Aware Architecture

Price Aware Architecture

Turning Technical Debt into Monetary Debt: Price Aware Architecture

How much does your software cost to operate?

Software design and implementation has an uneasy relationship with
cost. As software developers, we often dwell on the cost of building
software, but far less so on the cost to operate. The current
zeitgeist of pay-as-you-go infrastructure makes this particularly
apparent where rigid, hard to deploy and adapt software directly
equates to larger bills. If we want to take control of operational
cost, it is critical that we start to make operational cost a
first-class constraint in the design and architecture of modern
software.

In this talk we will work through the idea of price-aware
architectures, answering: what are the properties of a price-aware
architecture? what happens when we design our systems in a way that
can leverage variable price and availability of infrastructure? and
finally, how do we implement such systems?

The talk was presented at YOW! West, May 2016.

Mark Hibberd

May 04, 2016
Tweet

More Decks by Mark Hibberd

Other Decks in Programming

Transcript

  1. G PRICE
    AWARE
    ARCHITECTURE

    View Slide

  2. “We are in the business of
    turning technical debt into
    monetary debt”
    - Old Ambiata Proverb

    View Slide

  3. WHAT IS THE EFFORT TO
    BUILD?

    View Slide

  4. WHAT IS THE COST TO
    OPERATE?

    View Slide

  5. HOW CAN OUR SOFTWARE ADAPT TO
    COST?

    View Slide

  6. Clouds

    View Slide

  7. on demand

    View Slide

  8. View Slide

  9. View Slide

  10. peak load

    View Slide

  11. peak load

    View Slide

  12. savings
    peak load

    View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. excess capacity

    View Slide

  17. savings
    peak load

    View Slide

  18. decision time

    View Slide

  19. variable capability

    View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. variable abstraction

    View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. excess capacity markets

    View Slide

  30. variable price

    View Slide

  31. View Slide

  32. View Slide

  33. variable availability

    View Slide

  34. View Slide

  35. View Slide

  36. predictable capacity markets

    View Slide

  37. View Slide

  38. predictable

    View Slide

  39. View Slide

  40. View Slide

  41. View Slide

  42. transparent costs

    View Slide

  43. View Slide

  44. View Slide

  45. ONE
    Know your Business

    View Slide

  46. “find the dimension you are
    going to make money over and
    then make sure that the
    architecture follows the money”
    - Werner Vogels - 21st-Century-Architectures

    View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. View Slide

  52. View Slide

  53. $ $

    View Slide

  54. $

    View Slide

  55. IF IT COSTS MORE, DO YOU MAKE MORE
    MONEY?

    View Slide

  56. budget & constraints

    View Slide

  57. price-aware backplane

    View Slide

  58. TWO
    Know your Bill

    View Slide

  59. View Slide

  60. View Slide

  61. View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. View Slide

  68. View Slide

  69. View Slide

  70. View Slide

  71. billing

    View Slide

  72. THREE
    Embracing Failure

    View Slide

  73. View Slide

  74. View Slide

  75. View Slide

  76. View Slide

  77. View Slide

  78. “Do not go gentle into that good night”
    - Dylan Thomas

    View Slide

  79. [reliable, distributed systems talk]

    View Slide

  80. View Slide

  81. If we can achieve reliable data,
    disposable computation comes easy

    View Slide

  82. reliable data

    View Slide

  83. lots of reliable data solutions

    View Slide

  84. provide an atomic unit

    View Slide

  85. easily addressable and discoverable

    View Slide

  86. disposable computation

    View Slide

  87. stateless

    View Slide

  88. View Slide

  89. View Slide

  90. manage as batches

    View Slide

  91. manage as commits

    View Slide

  92. manage as transactions

    View Slide

  93. manage as batches

    View Slide

  94. batches are atomic

    View Slide

  95. no state held between batches

    View Slide

  96. independent

    View Slide

  97. independent

    View Slide

  98. restart at any batch point

    View Slide

  99. crash and burn

    View Slide

  100. clean restart

    View Slide

  101. batch size matters

    View Slide

  102. View Slide

  103. services not servers

    View Slide

  104. View Slide

  105. View Slide

  106. View Slide

  107. View Slide

  108. View Slide

  109. View Slide

  110. View Slide

  111. respond to change

    View Slide

  112. curl http://169.254.169.254/latest/meta-data/spot/termination-time

    View Slide

  113. gcloud compute instances create example-instance \
    --metadata-from-file \
    shutdown-script=examples/scripts/install.sh

    View Slide

  114. /etc/acpi/events/

    View Slide

  115. reliable storage

    View Slide

  116. disposable services

    View Slide

  117. services backplane

    View Slide

  118. failure i/o

    View Slide

  119. FOUR
    Leverage Resilience

    View Slide

  120. savings

    View Slide

  121. peak spend

    View Slide

  122. over-priced

    View Slide

  123. under-
    priced

    View Slide

  124. View Slide

  125. excess capacity

    View Slide

  126. savings

    View Slide

  127. IT ALL COMES BACK TO SHIFTING
    COSTS

    View Slide

  128. know what can be delayed

    View Slide

  129. know what can be skipped

    View Slide

  130. know what can be retried

    View Slide

  131. sla

    View Slide

  132. View Slide

  133. price-aware deployment and scheduling

    View Slide

  134. View Slide

  135. budget & constraints

    View Slide

  136. billing

    View Slide

  137. sla

    View Slide

  138. failure i/o

    View Slide

  139. services backplane

    View Slide

  140. View Slide

  141. View Slide

  142. View Slide

  143. View Slide

  144. View Slide

  145. View Slide

  146. the game of price

    View Slide

  147. View Slide

  148. intelligent
    co-ordination

    View Slide

  149. FIVE
    Operational Simplicity

    View Slide

  150. how much for new feature?

    View Slide

  151. how much for new software?

    View Slide

  152. how much for new environment?

    View Slide

  153. how much for new location?

    View Slide

  154. how much for new product?

    View Slide

  155. flexibility and automation are core

    View Slide

  156. but…

    View Slide

  157. moving parts are costly

    View Slide

  158. parts vs moving parts

    View Slide

  159. split batch and online systems

    View Slide

  160. split reliable and smart systems

    View Slide

  161. HOW CAN OUR SOFTWARE ADAPT TO
    COST?

    View Slide

  162. View Slide

  163. budget & constraints

    View Slide

  164. price-aware backplane

    View Slide

  165. billing

    View Slide

  166. reliable storage

    View Slide

  167. disposable services

    View Slide

  168. services backplane

    View Slide

  169. sla

    View Slide

  170. intelligent
    co-ordination

    View Slide

  171. View Slide

  172. G PRICE
    AWARE
    ARCHITECTURE

    View Slide