SlideShare une entreprise Scribd logo
1  sur  87
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Erlang :
Because S**t
happensMahesh Paolini-Subramanya
(@dieswaytoofast)
V.P. R&D, Ubiquiti Networks
AGILITY
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Horror! The Horror!
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Dude! WTF?!?!
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Surely you Tested?
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Fault Tolerance
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
erlang…
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Parallel
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Parallel
Independent
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Parallel
Independent
Asynchronous message passing
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Parallel
Independent
Asynchronous message passing
No shared state
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Parallel
Independent
Asynchronous message passing
No shared state
Immutable data structures
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
** exception error: no match of
right hand side value
{error,unhappy}
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
** exception error: no match of
right hand side value
{error,unhappy}
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Let it crash
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Let it crash
(all the co-operating ones , that is)
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Let it crash
(all the co-operating ones , that is)
Supervisors can restart them
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Processes!
Let it crash
(all the co-operating ones , that is)
Supervisors can restart them
(When necessary!)
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
mnesia ‘n stuff
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Fault Tolerant System
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
LOOSECOUPLING
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Loose Coupling
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Loose Coupling
Breeds Trust
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Loose Coupling
Breeds Trust
Devotes Brainpower appropriately
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Loose Coupling
Breeds Trust
Devotes Brainpower appropriately
Minimizes bugs
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Fault Tolerance
60 - 90% of all SW projects fail
10 – 25% of all SW projects get abandoned
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six - Systems
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six - Systems
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
M
ONITORING
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Monitoring?
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Monitoring?
Dashboards
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Monitoring?
Dashboards
Out of band systems
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Monitoring?
Dashboards
Out of band systems
Polyglot safety
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six - Systems
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six - Systems
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
POLYGLOT
PERSISTENCE
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
(The day it all changed)
Friday, June 29th 2012
• People
• Vendors
• Fraud
Fault Tolerance
The Business
Beware the Black Swan
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Fault Tolerant
Organization
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Concurrency
The Big Six - Organizations
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Concurrency
Error encapsulation
Fault detection
The Big Six - Organizations
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six
Concurrency
Fault detection
Fault Identification
Error Encapsulation
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six - Organizations
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Concurrency
Error encapsulation
Fault detection
Fault identification
Code upgrade
The Big Six - Organizations
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
The Big Six - Organizations
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
From
http://www.erlang.org/download/armstrong_thesis_2003.pdf
• Concurrency
• Error encapsulation
• Fault detection
• Fault identification
• Code upgrade
• Stable Storage
The Big Six - Organizations
Is It Safe?
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Concurrency
Fault detection
Fault Identification
Error Encapsulation
Code upgrade
Stable Storage
EVERYW
HERE!!!
V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved
Erlang – because s**t happens
Questions
mahesh@dieswaytoofast.com
@dieswaytoofast

Contenu connexe

En vedette

Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John StevensonJAX London
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)Pavlo Baron
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleRusty Klophaus
 
20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)Pavlo Baron
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabberl xf
 
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-SubramanyaErlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-SubramanyaHakka Labs
 
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business NeedsNDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business NeedsTorben Hoffmann
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012Eonblast
 
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)Howard Lewis Ship
 
Introduction to Erlang for Python Programmers
Introduction to Erlang for Python ProgrammersIntroduction to Erlang for Python Programmers
Introduction to Erlang for Python ProgrammersPython Ireland
 
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developersElixir for aspiring Erlang developers
Elixir for aspiring Erlang developersTorben Dohrn
 
Clojure Intro
Clojure IntroClojure Intro
Clojure Introthnetos
 
Clojure: Towards The Essence of Programming
Clojure: Towards The Essence of ProgrammingClojure: Towards The Essence of Programming
Clojure: Towards The Essence of ProgrammingHoward Lewis Ship
 
Elixir Into Production
Elixir Into ProductionElixir Into Production
Elixir Into ProductionJamie Winsor
 
Clojure, Plain and Simple
Clojure, Plain and SimpleClojure, Plain and Simple
Clojure, Plain and SimpleBen Mabey
 
Clojure for Data Science
Clojure for Data ScienceClojure for Data Science
Clojure for Data ScienceMike Anderson
 

En vedette (20)

Clojure class
Clojure classClojure class
Clojure class
 
Clojure made-simple - John Stevenson
Clojure made-simple - John StevensonClojure made-simple - John Stevenson
Clojure made-simple - John Stevenson
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)What can be done with Java, but should better be done with Erlang (@pavlobaron)
What can be done with Java, but should better be done with Erlang (@pavlobaron)
 
High Performance Erlang
High  Performance  ErlangHigh  Performance  Erlang
High Performance Erlang
 
Clojure values
Clojure valuesClojure values
Clojure values
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
 
20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)20 reasons why we don't need architects (@pavlobaron)
20 reasons why we don't need architects (@pavlobaron)
 
Messaging With Erlang And Jabber
Messaging With  Erlang And  JabberMessaging With  Erlang And  Jabber
Messaging With Erlang And Jabber
 
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-SubramanyaErlang - Because s**t Happens by Mahesh Paolini-Subramanya
Erlang - Because s**t Happens by Mahesh Paolini-Subramanya
 
From Perl To Elixir
From Perl To ElixirFrom Perl To Elixir
From Perl To Elixir
 
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business NeedsNDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
 
VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012VoltDB and Erlang - Tech planet 2012
VoltDB and Erlang - Tech planet 2012
 
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
Clojure: Functional Concurrency for the JVM (presented at Open Source Bridge)
 
Introduction to Erlang for Python Programmers
Introduction to Erlang for Python ProgrammersIntroduction to Erlang for Python Programmers
Introduction to Erlang for Python Programmers
 
Elixir for aspiring Erlang developers
Elixir for aspiring Erlang developersElixir for aspiring Erlang developers
Elixir for aspiring Erlang developers
 
Clojure Intro
Clojure IntroClojure Intro
Clojure Intro
 
Clojure: Towards The Essence of Programming
Clojure: Towards The Essence of ProgrammingClojure: Towards The Essence of Programming
Clojure: Towards The Essence of Programming
 
Elixir Into Production
Elixir Into ProductionElixir Into Production
Elixir Into Production
 
Clojure, Plain and Simple
Clojure, Plain and SimpleClojure, Plain and Simple
Clojure, Plain and Simple
 
Clojure for Data Science
Clojure for Data ScienceClojure for Data Science
Clojure for Data Science
 

Similaire à Erlang - Because S**t Happens

Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...Honeywell
 
Industrial Wireless Security (Japanese)
Industrial Wireless Security (Japanese)Industrial Wireless Security (Japanese)
Industrial Wireless Security (Japanese)Digital Bond
 
Quick Heal Terminator.
Quick Heal Terminator.Quick Heal Terminator.
Quick Heal Terminator.Revolucion
 
Quick Heal Terminator.
Quick Heal Terminator.Quick Heal Terminator.
Quick Heal Terminator.vishalrhce
 
Maitrisez l'évolution de vos infrastructures avec ViPR SRM & Controller
Maitrisez l'évolution de vos infrastructures avec ViPR SRM & ControllerMaitrisez l'évolution de vos infrastructures avec ViPR SRM & Controller
Maitrisez l'évolution de vos infrastructures avec ViPR SRM & ControllerRSD
 
Kranky geeklondon build an app
Kranky geeklondon build an appKranky geeklondon build an app
Kranky geeklondon build an appTim Panton
 
Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...
Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...
Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...Razorfish
 
VIPER Labs - VOIP Security - SANS Summit
VIPER Labs - VOIP Security - SANS SummitVIPER Labs - VOIP Security - SANS Summit
VIPER Labs - VOIP Security - SANS SummitShah Sheikh
 
Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015Ian Skerrett
 
Exploring Risk and Mapping the Internet of Things with Autonomous Drones
Exploring Risk and Mapping the Internet of Things with Autonomous DronesExploring Risk and Mapping the Internet of Things with Autonomous Drones
Exploring Risk and Mapping the Internet of Things with Autonomous DronesPraetorian
 
LoRaWAN Security Webinar
LoRaWAN Security WebinarLoRaWAN Security Webinar
LoRaWAN Security WebinarActility
 
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Mike Qin
 
How to hack wireless internet connections using aircrack-ng
How to hack wireless internet connections using aircrack-ngHow to hack wireless internet connections using aircrack-ng
How to hack wireless internet connections using aircrack-ngOpen Knowledge Nepal
 
Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Priyanka Aash
 
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on..." Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on...PROIDEA
 
04122016 web rtc_globalsummit
04122016 web rtc_globalsummit04122016 web rtc_globalsummit
04122016 web rtc_globalsummitKensaku Komatsu
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)William Yeh
 
Web Application Frewall
Web Application FrewallWeb Application Frewall
Web Application FrewallAbhishek Singh
 
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)FFRI, Inc.
 

Similaire à Erlang - Because S**t Happens (20)

Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
Yokogawa & NextNine – Lessons Learned: Global Cybersecurity Management System...
 
Industrial Wireless Security (Japanese)
Industrial Wireless Security (Japanese)Industrial Wireless Security (Japanese)
Industrial Wireless Security (Japanese)
 
Quick Heal Terminator.
Quick Heal Terminator.Quick Heal Terminator.
Quick Heal Terminator.
 
Quick Heal Terminator.
Quick Heal Terminator.Quick Heal Terminator.
Quick Heal Terminator.
 
Maitrisez l'évolution de vos infrastructures avec ViPR SRM & Controller
Maitrisez l'évolution de vos infrastructures avec ViPR SRM & ControllerMaitrisez l'évolution de vos infrastructures avec ViPR SRM & Controller
Maitrisez l'évolution de vos infrastructures avec ViPR SRM & Controller
 
Kranky geeklondon build an app
Kranky geeklondon build an appKranky geeklondon build an app
Kranky geeklondon build an app
 
Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...
Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...
Razorfish 2014 Tech Summit - Senior Director, Product Management at Qualcomm ...
 
VIPER Labs - VOIP Security - SANS Summit
VIPER Labs - VOIP Security - SANS SummitVIPER Labs - VOIP Security - SANS Summit
VIPER Labs - VOIP Security - SANS Summit
 
Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015Defining an Open IoT Stack - Presented at IoT World 2015
Defining an Open IoT Stack - Presented at IoT World 2015
 
Exploring Risk and Mapping the Internet of Things with Autonomous Drones
Exploring Risk and Mapping the Internet of Things with Autonomous DronesExploring Risk and Mapping the Internet of Things with Autonomous Drones
Exploring Risk and Mapping the Internet of Things with Autonomous Drones
 
LoRaWAN Security Webinar
LoRaWAN Security WebinarLoRaWAN Security Webinar
LoRaWAN Security Webinar
 
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
 
How to hack wireless internet connections using aircrack-ng
How to hack wireless internet connections using aircrack-ngHow to hack wireless internet connections using aircrack-ng
How to hack wireless internet connections using aircrack-ng
 
Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...Breaking Extreme Networks WingOS: How to own millions of devices running on A...
Breaking Extreme Networks WingOS: How to own millions of devices running on A...
 
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on..." Breaking Extreme Networks WingOS: How to own millions of devices running on...
" Breaking Extreme Networks WingOS: How to own millions of devices running on...
 
04122016 web rtc_globalsummit
04122016 web rtc_globalsummit04122016 web rtc_globalsummit
04122016 web rtc_globalsummit
 
Zerovm backgroud
Zerovm backgroudZerovm backgroud
Zerovm backgroud
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
 
Web Application Frewall
Web Application FrewallWeb Application Frewall
Web Application Frewall
 
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
Black Hat USA 2015 Survey Report (FFRI Monthly Research 201508)
 

Dernier

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Dernier (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Erlang - Because S**t Happens

  • 1. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Erlang : Because S**t happensMahesh Paolini-Subramanya (@dieswaytoofast) V.P. R&D, Ubiquiti Networks
  • 2.
  • 4. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Horror! The Horror!
  • 5. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Dude! WTF?!?!
  • 6. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Surely you Tested?
  • 7.
  • 8. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Fault Tolerance From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 9. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 10. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 11. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 12. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 13. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 14. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 15. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens erlang…
  • 16. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 17. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 18. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Parallel From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 19. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Parallel Independent From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 20. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Parallel Independent Asynchronous message passing From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 21. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Parallel Independent Asynchronous message passing No shared state From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 22. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Parallel Independent Asynchronous message passing No shared state Immutable data structures From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 23. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 24. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 25. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens ** exception error: no match of right hand side value {error,unhappy}
  • 26. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 27. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 28. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens ** exception error: no match of right hand side value {error,unhappy}
  • 29. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 30. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 31.
  • 32. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Let it crash From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 33. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Let it crash (all the co-operating ones , that is) From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 34. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Let it crash (all the co-operating ones , that is) Supervisors can restart them From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 35. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Processes! Let it crash (all the co-operating ones , that is) Supervisors can restart them (When necessary!) From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 36. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 37.
  • 38. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 39. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 40.
  • 41. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens mnesia ‘n stuff
  • 42.
  • 43. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Fault Tolerant System
  • 44. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 45. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 46. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf LOOSECOUPLING
  • 47. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Loose Coupling
  • 48. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Loose Coupling Breeds Trust
  • 49. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 50. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Loose Coupling Breeds Trust Devotes Brainpower appropriately
  • 51. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 52. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Loose Coupling Breeds Trust Devotes Brainpower appropriately Minimizes bugs
  • 53.
  • 54. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 55. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Fault Tolerance 60 - 90% of all SW projects fail 10 – 25% of all SW projects get abandoned
  • 56. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 57. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six - Systems Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage
  • 58. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six - Systems Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage M ONITORING
  • 59. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Monitoring?
  • 60. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Monitoring? Dashboards
  • 61. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Monitoring? Dashboards Out of band systems
  • 62. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Monitoring? Dashboards Out of band systems Polyglot safety
  • 63. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six - Systems Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage
  • 64. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six - Systems Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage POLYGLOT PERSISTENCE
  • 65.
  • 66.
  • 67.
  • 68. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens (The day it all changed) Friday, June 29th 2012
  • 69. • People • Vendors • Fraud Fault Tolerance
  • 71. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Fault Tolerant Organization
  • 72. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 73. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Concurrency The Big Six - Organizations
  • 74. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 75. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 76. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens
  • 77. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 78. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Concurrency Error encapsulation Fault detection The Big Six - Organizations
  • 79. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six Concurrency Fault detection Fault Identification Error Encapsulation From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 80.
  • 81. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six - Organizations Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 82. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Concurrency Error encapsulation Fault detection Fault identification Code upgrade The Big Six - Organizations
  • 83. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens The Big Six - Organizations Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage From http://www.erlang.org/download/armstrong_thesis_2003.pdf
  • 84. • Concurrency • Error encapsulation • Fault detection • Fault identification • Code upgrade • Stable Storage The Big Six - Organizations
  • 86. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Concurrency Fault detection Fault Identification Error Encapsulation Code upgrade Stable Storage EVERYW HERE!!!
  • 87. V 1.0 © Ubiquiti Networks, Inc. All Rights Reserved Erlang – because s**t happens Questions mahesh@dieswaytoofast.com @dieswaytoofast

Notes de l'éditeur

  1. An overall approach to Preparedness
  2. The Buddha nature of erlang – Fault Tolerance
  3. This is a story about unexpectedness.The only constant is change
  4. We’ve all been confronted by this
  5. Some of us have been confronted by this
  6. And you always get asked this
  7. There is only so much planning you can do. At some point, the 1000 year flood hits
  8. The point being – shit happens, how are you going to deal with it?
  9. Do more than one thing at a time
  10. Know when something breaks
  11. Know what broke
  12. Don’t let it spread
  13. Fix it
  14. ‘save game’ so you can do-over
  15. Butwe know this.
  16. Lets take this one at a time
  17. The Six Essential Characteristics of a Fault Tolerant System
  18. Do more than one thing at a time
  19. Do more than one thing at a time
  20. Do more than one thing at a time
  21. Do more than one thing at a time
  22. Do more than one thing at a time
  23. The Six Essential Characteristics of a Fault Tolerant System
  24. Only one success case here
  25. Fail fast and fail stop
  26. Only one success case here
  27. The Six Essential Characteristics of a Fault Tolerant System
  28. The process tells everyone what happenedStack traces are your friend.Its Not Java!
  29. Only one success case here
  30. The Six Essential Characteristics of a Fault Tolerant System
  31. Let it Crash
  32. Do more than one thing at a time
  33. Do more than one thing at a time
  34. Do more than one thing at a time
  35. Do more than one thing at a time
  36. The Six Essential Characteristics of a Fault Tolerant System
  37. Go get catfood
  38. Let it Crash
  39. The Six Essential Characteristics of a Fault Tolerant System
  40. The back up bag
  41. Processes are units of error encapsulation(and good for GC too!)
  42. Fault Tolerance and SystemsThink of this FORMALLY
  43. The bottom line – can your organization deal with the above issues?
  44. The Six Essential Characteristics of a Fault Tolerant System
  45. The Six Essential Characteristics of a Fault Tolerant System
  46. The Six Essential Characteristics of a Fault Tolerant System
  47. Loose Coupling, of course, gives us all these benefits
  48. Loose Coupling, of course, gives us all these benefits
  49. Builds trust  Trust in the stupidity of people, trust that things will fail, trust that you will be affected
  50. Loose Coupling, of course, gives us all these benefits
  51. The amount of brainpower we have is limited.Reduce complexity by being able to focus on specific / limited areas
  52. Loose Coupling, of course, gives us all these benefits
  53. Andrew!
  54. Isn’t Performance an issue w/ Loose Coupling?
  55. remember the bit about failure? well, why optimize if you're going to fail anyhow? yeah yeah, you might fail because you don't perform, but that is rarely the problem
  56. Work / Elegant / Fast;yes, that mine craft plugin you built might gt a million signupsit won’tseriously – it doesn't register statistically
  57. Fault detection and identification?
  58. Monitoring!
  59. DashboardsOtherwise, how do you know whats going on?
  60. Out of band access Don’t rely on the system to always tell you whats happening
  61. Be PolyglotEverything fails – even erlang. (noooo)
  62. Loose Coupling, of course, gives us all these benefits
  63. Loose Coupling, of course, gives us all these benefits
  64. Don’t cross the streams!
  65. Fault Tolerance and OrganizationsThink of this FORMALLY
  66. People fall ill
  67. AWS will go down
  68. CFOs run off to brazil
  69. Tail Risk (Things that can never happen)This deserves its own section(financial crisis)
  70. The bottom line – can your organization deal with the above issues?
  71. The Six Essential Characteristics of a Fault Tolerant Organization
  72. Easy right?Things can happen in parallel?
  73. you'd be surprised at how poorly this gets done micromanagement (supervision gone bad) chaining (good for AR/AP, bad for decision making) e.g. – memos that get passed around for approval
  74. “Bob is ill”  Ahrens Fox!
  75. "Bob was working on the financial projections. He has the flu, so won't be able to get to it for another week. And that means that we won't know what to buy for two weeks…”
  76. (Ahrens Fox) "Bob was working on the financial projections. He has the flu, so won't be able to get to it for another week. And that means that we won't know what to buy for two weeks…”
  77. The Six Essential Characteristics of a Fault Tolerant Organization
  78. If bob is ill, will you survive
  79. The Six Essential Characteristics of a Fault Tolerant Organization
  80. Onboarding people is importantThis is not what it should feel like for Bob’s replacement
  81. The Six Essential Characteristics of a Fault Tolerant Organization
  82. Documentation, policies, corporate knowledge, corporate culture methods, access codes, Try to have work/knowledge distributed so that if/when you need to let someone go, things can continue till you get someone new!)
  83. Ask yourself this. Over and over again…
  84. Loose Coupling, of course, gives us all these benefits