Successfully reported this slideshow.
{
Erlang :
Because S**t happens
Mahesh Paolini-Subramanya (@dieswaytoofast)
V.P. Ubiquiti Networks
AGILITY
My Vacation
(Actually, the day before)
A small failure…
The Horror! The Horror!
Why are my calls failing?
You better call me back!
I’m still p***ed off!
And you’re stupid Apps
don’t work!
The Horror! The Horror!
Surely you Tested?
1000 year floods
Fault Tolerance
 Concurrency
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
 Concurrency
 Fault detection
The Big Six
From http://www.erlang.org/download/armstrong_thesis_2003.pdf
 Concurrency
 Fault detection
 Fault identification
The Big Six
From http://www.erlang.org/download/armstrong_thesis_20...
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
The Big Six
From http://www.erlang.org/downlo...
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
The Big Six
From http://www.er...
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
erlang…
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
Concurrency Oriented
Concurrency Hell
My Blue Heaven My Blue Heaven
Concurrency Oriented
Concurrency Hell
My Blue Heaven
Deep Problems
My Blue Heaven
Deep Problems
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
Fault Detection
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
Stack Traces?
Immutable Variables
 X = 1.
Immutable Variables
 X = 1.
 X = 2.
Huh?
Immutable Variables
 X = 1.
 X = 2.
 X = X + 1.
Huh?
Fault Identification
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
Let It Crash
BEAM!
 Faster to create
JVM is not necessarily
your friend!
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
Code Upgrade
 Live!
Hot SwappingCode Upgrade
 Concurrency
 Fault detection
 Fault Identification
 Error Encapsulation
 Code upgrade
 Stable Storage
The Big Six
F...
The Intangibles
4x – 10x less code
Code Size
 Faster to create
4x – 10x less code
 Faster to create
 Easier to reason about
4x – 10x less code
 Faster to create
 Easier to reason about
 Fewer bugs
4x – 10x less code
 Faster to create
 Easier to reason about
 Fewer bugs
 Speedy refactoring
4x – 10x less code
The Shell is our friend
Live Debugging
Predictability
Performance
Fault Tolerance - Systems
Romney 2012
Fault Tolerance - Systems
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
Loose Coupling?
 Breeds Trust
Loose Coupling
Loose Coupling
 Breeds Trust
 Devote more brainpower to specific areas
Loose Coupling
Loose Coupling
 Breeds Trust
 Devote more brainpower to specific areas
 No. of bugs/line is constant
Loose Coupling
Performance
 60 - 90% of all SW projects fail
 10 – 25% of all SW projects get abandoned
Fault Tolerance
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
Monitoring?
 Dashboards
Monitoring?
 Dashboards
 Out of band systems
Monitoring?
Supervision
 Dashboards
 Out of band systems
 Polyglot safety
Monitoring?
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
 Concurrency
 Error encapsulation
 Fault detection
 Fault identification
 Code upgrade
 Stable Storage
The Big Six -...
No battle plan survives
contact with the enemy
 Not just about Systems 
Fault Tolerance
Fault Tolerance
 People
 Vendors
Fault Tolerance
 People
 Vendors
 Fraud
Fault Tolerance
The BusinessBeware the Black Swan
Is It Safe?
erlang…
mahesh@dieswaytoofast.com
@dieswaytoofastQuestions
Coda
Active Queue
Management
Queues
Queues
Queues
Queues
 Can you recover quickly?
 Buffer-bloat doesn’t matter, right?
 Once up, can you deal with the backlog?
 Back-pressure...
 Can you recover quickly?
 Buffer-bloat doesn’t matter, right?
 Once up, can you deal with the backlog?
 Back-pressure...
Programmable
Behavioral
Self Managed
Something’s gotta give
Tail Drop
God
(category – TCP/IP)
RED
RED
Newark Airport
FRED
RED-PD
WRED
RED – Many many more
 SRED
 RRED
 ARED (and Blue!)
 CHOKe
Special Mention
 RED in a different Light
SERIOUSLY!
 RED in a different Light
 CoDel and fq_codel
mahesh@dieswaytoofast.com
@dieswaytoofastQuestions
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Upcoming SlideShare
Loading in …5
×

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

1,814 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

×