Building Unbreakable Software

6539ae86c7d8ddec66f3928beddad569?s=47 Nate Smith
September 10, 2014

Building Unbreakable Software

A presentation I gave to Toronto AWS Users United on Building Unbreakable Software. Turns out, you can't!

6539ae86c7d8ddec66f3928beddad569?s=128

Nate Smith

September 10, 2014
Tweet

Transcript

  1. NATE SMITH @nwjsmith theinternate.com

  2. None
  3. BUILDING UNBREAKABLE SOFTWARE

  4. None
  5. GET GOING
 FAST

  6. $

  7. $

  8. $

  9. None
  10. ಠ_ಠ

  11. FREE LUNCH

  12. FREE LUNCH N O PE

  13. $/AWESOME

  14. THE COMPUTER IS RELIABLE.

  15. THE COMPUTER IS RELIABLE. N O PE

  16. XEN

  17. 175KLOC

  18. None
  19. MULTITENANCY

  20. LIFETIME CONTROL

  21. BUILDING UNBREAKABLE SOFTWARE

  22. ?

  23. BUILDING UNBREAKABLE SOFTWARE

  24. BUILDING UNBREAKABLE SOFTWARE

  25. None
  26. None
  27. CLIENTS

  28. LOAD BALANCING CLIENTS

  29. APP SERVERS LOAD BALANCING CLIENTS

  30. APP SERVERS DATABASE LOAD BALANCING CLIENTS

  31. APP SERVERS DATABASE LOAD BALANCING CLIENTS

  32. APP SERVERS DATABASE LOAD BALANCING CLIENTS

  33. APP SERVERS DATABASE LOAD BALANCING CLIENTS

  34. APP SERVERS DATABASE LOAD BALANCING CLIENTS

  35. APP SERVERS DATABASE LOAD BALANCING CLIENTS ಠ_ಠ

  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. None
  43. None
  44. None
  45. None
  46. None
  47. None
  48. None
  49. None
  50. ಠ_ಠ

  51. THE NETWORK IS RELIABLE.

  52. THE NETWORK IS RELIABLE. N O PE

  53. None
  54. None
  55. None
  56. None
  57. None
  58. $

  59. None
  60. None
  61. None
  62. None
  63. “CUSTOMERS SHOULD BE ABLE TO VIEW AND ADD ITEMS TO

    THEIR SHOPPING CART EVEN IF DISKS ARE FAILING, NETWORK ROUTES ARE FLAPPING, OR DATA CENTERS ARE BEING DESTROYED BY TORNADOS. THEREFORE, THE SERVICE RESPONSIBLE FOR MANAGING SHOPPING CARTS REQUIRES THAT IT CAN ALWAYS WRITE TO AND READ FROM ITS DATA STORE”
  64. None
  65. None
  66. A B E D C

  67. A B E D C

  68. A B E D C

  69. A B E D C

  70. WRITES

  71. A B E D C

  72. A B E D C

  73. A B E D C

  74. A B E D C

  75. A B E D C

  76. READS

  77. A B E D C

  78. A B E D C

  79. A B E D C

  80. ?

  81. A B E D C

  82. A B E D C

  83. A B E D C

  84. A B E D C

  85. A B E D C

  86. A B E D C

  87. A B E D C

  88. A B E D C

  89. A B E D C

  90. CAP THEOREM

  91. None
  92. None
  93. CONSISTENCY AVAILABILITY PARTITION TOLERANCE

  94. CONSISTENCY AVAILABILITY PARTITION TOLERANCE ✔

  95. A B E D C

  96. None
  97. None
  98. None
  99. ?

  100. None
  101. None
  102. None
  103. None
  104. IT’S A BUSINESS DECISION

  105. WE TRADED CONSISTENCY FOR AVAILABILITY

  106. CP

  107. CP

  108. AP CP

  109. AP CP

  110. WE CAN TRADE CONSISTENCY FOR AVAILABILITY

  111. WE CAN TRADE AVAILABILITY FOR CONSISTENCY

  112. LOCKS

  113. QUEUES

  114. LOTS OF RESEARCH

  115. None
  116. None
  117. None
  118. None
  119. BUILD BREAKABLE SOFTWARE

  120. BUILD UNBREAKABLE BUSINESSES

  121. ?