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.

Erlang - Because s**t Happens by Mahesh Paolini-Subramanya

1,917 views

Published on

Mahesh talks about the buddha-nature of Erlang/OTP, pointing out how the various features of the language tie together into one seamless Fault Tolerant whole. Mahesh emphasizes that Erlang begins and ends with Fault Tolerance. Fault Tolerance is baked into the very genes of Erlang/OTP - something that ends up being amazingly useful when building any kind of system. Mahesh Paolini-Subramanya is the V.P. of R&D at Ubiquiti Networks - a manufacturer of disruptive technology platforms for emerging markets. He has spent the recent past building out Erlang-based massively concurrent Cloud Services and VoIP platforms. Mahesh was previously the CTO of Vocalocity after its merger with Aptela, where he was a founder and CTO.

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

Erlang - Because s**t Happens by Mahesh Paolini-Subramanya

  1. 1. { Erlang : Because S**t happens Mahesh Paolini-Subramanya (@dieswaytoofast) V.P. Ubiquiti Networks
  2. 2. AGILITY
  3. 3. My Vacation
  4. 4. (Actually, the day before)
  5. 5. A small failure…
  6. 6. The Horror! The Horror!
  7. 7. Why are my calls failing?
  8. 8. You better call me back!
  9. 9. I’m still p***ed off!
  10. 10. And you’re stupid Apps don’t work!
  11. 11. The Horror! The Horror!
  12. 12. Surely you Tested?
  13. 13. 1000 year floods
  14. 14. Fault Tolerance
  15. 15.  Concurrency The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  16. 16.  Concurrency  Fault detection The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  17. 17.  Concurrency  Fault detection  Fault identification The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  18. 18.  Concurrency  Fault detection  Fault Identification  Error Encapsulation The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  19. 19.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  20. 20.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  21. 21. erlang…
  22. 22.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  23. 23. Concurrency Oriented Concurrency Hell My Blue Heaven My Blue Heaven
  24. 24. Concurrency Oriented Concurrency Hell My Blue Heaven Deep Problems My Blue Heaven Deep Problems
  25. 25.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  26. 26. Fault Detection
  27. 27.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  28. 28. Stack Traces?
  29. 29. Immutable Variables  X = 1.
  30. 30. Immutable Variables  X = 1.  X = 2. Huh?
  31. 31. Immutable Variables  X = 1.  X = 2.  X = X + 1. Huh?
  32. 32. Fault Identification
  33. 33.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  34. 34. Let It Crash
  35. 35. BEAM!
  36. 36.  Faster to create JVM is not necessarily your friend!
  37. 37.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  38. 38. Code Upgrade
  39. 39.  Live! Hot SwappingCode Upgrade
  40. 40.  Concurrency  Fault detection  Fault Identification  Error Encapsulation  Code upgrade  Stable Storage The Big Six From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  41. 41. The Intangibles
  42. 42. 4x – 10x less code
  43. 43. Code Size
  44. 44.  Faster to create 4x – 10x less code
  45. 45.  Faster to create  Easier to reason about 4x – 10x less code
  46. 46.  Faster to create  Easier to reason about  Fewer bugs 4x – 10x less code
  47. 47.  Faster to create  Easier to reason about  Fewer bugs  Speedy refactoring 4x – 10x less code
  48. 48. The Shell is our friend
  49. 49. Live Debugging
  50. 50. Predictability
  51. 51. Performance
  52. 52. Fault Tolerance - Systems
  53. 53. Romney 2012
  54. 54. Fault Tolerance - Systems
  55. 55.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems
  56. 56.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems
  57. 57.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems LOOSECOUPLING
  58. 58. Loose Coupling?
  59. 59.  Breeds Trust Loose Coupling
  60. 60. Loose Coupling
  61. 61.  Breeds Trust  Devote more brainpower to specific areas Loose Coupling
  62. 62. Loose Coupling
  63. 63.  Breeds Trust  Devote more brainpower to specific areas  No. of bugs/line is constant Loose Coupling
  64. 64. Performance
  65. 65.  60 - 90% of all SW projects fail  10 – 25% of all SW projects get abandoned Fault Tolerance
  66. 66.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems M ONITORING
  67. 67. Monitoring?
  68. 68.  Dashboards Monitoring?
  69. 69.  Dashboards  Out of band systems Monitoring?
  70. 70. Supervision
  71. 71.  Dashboards  Out of band systems  Polyglot safety Monitoring?
  72. 72.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems
  73. 73.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems POLYGLOT PERSISTENCE
  74. 74.  Concurrency  Error encapsulation  Fault detection  Fault identification  Code upgrade  Stable Storage The Big Six - Systems EVERYW HERE!!!
  75. 75. No battle plan survives contact with the enemy
  76. 76.  Not just about Systems  Fault Tolerance
  77. 77. Fault Tolerance
  78. 78.  People  Vendors Fault Tolerance
  79. 79.  People  Vendors  Fraud Fault Tolerance
  80. 80. The BusinessBeware the Black Swan
  81. 81. Is It Safe?
  82. 82. erlang…
  83. 83. mahesh@dieswaytoofast.com @dieswaytoofastQuestions
  84. 84. Coda Active Queue Management
  85. 85. Queues
  86. 86. Queues
  87. 87. Queues
  88. 88. Queues
  89. 89.  Can you recover quickly?  Buffer-bloat doesn’t matter, right?  Once up, can you deal with the backlog?  Back-pressure isn’t an issue, right? Queues
  90. 90.  Can you recover quickly?  Buffer-bloat doesn’t matter, right?  Once up, can you deal with the backlog?  Back-pressure isn’t an issue, right? Queues NOPE
  91. 91. Programmable
  92. 92. Behavioral
  93. 93. Self Managed
  94. 94. Something’s gotta give
  95. 95. Tail Drop
  96. 96. God (category – TCP/IP)
  97. 97. RED
  98. 98. RED
  99. 99. Newark Airport
  100. 100. FRED
  101. 101. RED-PD
  102. 102. WRED
  103. 103. RED – Many many more  SRED  RRED  ARED (and Blue!)  CHOKe
  104. 104. Special Mention  RED in a different Light
  105. 105. SERIOUSLY!  RED in a different Light  CoDel and fq_codel
  106. 106. mahesh@dieswaytoofast.com @dieswaytoofastQuestions

×