elixir for the next 10 years0 years
boyd multerer
the basic exercise
know what problems you are trying to solve

know what trends and disruptions are happening around you

build something relevant when it ships, not when you started
problems to solve
servers
performance per cost

security

data processing

machine learning

communications

robustness
devices (iot)
performance per cost

security

data processing

machine learning

communications

robustness
example: game consoles
perf per cost //



security //


scalability //
robustness //
this is why you don’t just buy a PC……..……….



cheating & piracy - no physical security

hard, even though you’d think it would be necessary



keeping all games & consoles up to date is required
trends and observations
power drives cost
servers //



devices // 



power consumed means heat dissipated

power and heat cost real money

power consumed impacts battery life

sensors use lots of power

radios use lots of power
hw chosen to fit power and problem envelopes
security
servers //



devices // 



assume your servers are hacked

assume your databases are hacked

tremendously tempting targets

both devices and data

no physical security
this is an arms race and will not go away
it’s not paranoia if they are out to get you
FPGAs (you’ll be friends soon)
think extremely large instructions

very low power for perf

not in addressable space

physically unclonable functions (PUFs)

not as expensive as you think.
Xilinx
data processing
servers //



devices // 



huge amounts of data to process

currently a specialized field

sensors!

local aggregation & processing 

intermittent / expensive communication
all the world’s a GenStage and we are merely players
machine learning
servers //



devices // 



core related to data processing

currently a specialized field

local decision making

sensor processing

security detection and action
communication
servers //



devices // 



seems like a solved problem (at first)

latency affects datacenter decisions

assume global wireless availability

expensive to operate

satellites will make us rethink many things
robustness
servers //

devices // 



skating by on speed and reboots

opportunity to reduce cost

coordinate multiple subsystems

deal with hardware failures

hard to physically access devices!
danger of becoming the “Internet of Things that Don’t Work”
making bets
beam
original problems faced by telephony look familiar
had to be efficient

designed scale to out

robustness - OTP

reduce programmer errors



30 years in production
beam is your os
elixir
all benefits of beam, erlang libraries plus…
modern syntax, matching, macros

GenStage, Flow, much more

separation between language and frameworks
phoenix

nerves
low level interop
realtime vs. soft-realtime

perf sensitive code

FPGA access

driver interop

important for security

important for power
ui
user input

drawing primitives / overall model

GPU
distribution
nerves boot images

signed/encrypted deployment

server boot images

revocation lists

signing authorities

more…
example: cars
robustness //



security // 



communications //
many sensors (drive train, cameras, proximity…)

many sub-systems (drive, ABS, self-drive…)

track individual’s location, destinations, habits…

targeted attack opportunities

already shipping with cell modems and connectivity

soon to have full-time satellite communications

servers required for mapping, traffic, more
fin
twitter // @BoydMulterer

github // /boydm
moore’s law enabled higher level languages

multi-core means parallel code 

complexity is the enemy

only two kinds of code:



• performance sensitive

• everything else
developer productivity
trends //
XNA example
games required low-level skill

small shops were locked out of the market

cost to build games increasingly prohibitive 

problem
XNA example
moore’s law enabled higher level languages

multi-core cpu encouraged parallel code 

speed forgave many crimes

trends
market for independent games would be huge 

only two kinds of code:



• performance sensitive

• everything else

build pipelines key to cutting costs

XNA example
bets
moore’s law
mobile driving chip design
perf per watt

many low-powered cores

tremendous implications on HOW we write code
single threaded practices obsolete

most of the coding population is out of date

ElixirConf 2016 Final Keynote

  • 1.
    elixir for thenext 10 years0 years boyd multerer
  • 2.
    the basic exercise knowwhat problems you are trying to solve know what trends and disruptions are happening around you build something relevant when it ships, not when you started
  • 3.
  • 4.
    servers performance per cost security dataprocessing machine learning communications robustness
  • 5.
    devices (iot) performance percost security data processing machine learning communications robustness
  • 6.
    example: game consoles perfper cost // security // scalability // robustness // this is why you don’t just buy a PC……..……….
 cheating & piracy - no physical security hard, even though you’d think it would be necessary keeping all games & consoles up to date is required
  • 7.
  • 8.
    power drives cost servers// devices // power consumed means heat dissipated power and heat cost real money power consumed impacts battery life sensors use lots of power radios use lots of power hw chosen to fit power and problem envelopes
  • 9.
    security servers // devices // assume your servers are hacked assume your databases are hacked tremendously tempting targets both devices and data no physical security this is an arms race and will not go away it’s not paranoia if they are out to get you
  • 10.
    FPGAs (you’ll befriends soon) think extremely large instructions very low power for perf not in addressable space physically unclonable functions (PUFs) not as expensive as you think. Xilinx
  • 11.
    data processing servers // devices// huge amounts of data to process currently a specialized field sensors! local aggregation & processing intermittent / expensive communication all the world’s a GenStage and we are merely players
  • 12.
    machine learning servers // devices// core related to data processing currently a specialized field local decision making sensor processing security detection and action
  • 13.
    communication servers // devices // seems like a solved problem (at first) latency affects datacenter decisions assume global wireless availability expensive to operate satellites will make us rethink many things
  • 14.
    robustness servers // devices // skating by on speed and reboots opportunity to reduce cost coordinate multiple subsystems deal with hardware failures hard to physically access devices! danger of becoming the “Internet of Things that Don’t Work”
  • 15.
  • 16.
    beam original problems facedby telephony look familiar had to be efficient designed scale to out robustness - OTP reduce programmer errors 30 years in production beam is your os
  • 17.
    elixir all benefits ofbeam, erlang libraries plus… modern syntax, matching, macros GenStage, Flow, much more separation between language and frameworks phoenix nerves
  • 18.
    low level interop realtimevs. soft-realtime perf sensitive code FPGA access driver interop important for security important for power
  • 19.
  • 20.
    distribution nerves boot images signed/encrypteddeployment server boot images revocation lists signing authorities more…
  • 21.
    example: cars robustness // security// communications // many sensors (drive train, cameras, proximity…) many sub-systems (drive, ABS, self-drive…) track individual’s location, destinations, habits… targeted attack opportunities already shipping with cell modems and connectivity soon to have full-time satellite communications servers required for mapping, traffic, more
  • 22.
  • 23.
    moore’s law enabledhigher level languages multi-core means parallel code complexity is the enemy only two kinds of code: • performance sensitive • everything else developer productivity trends //
  • 24.
    XNA example games requiredlow-level skill small shops were locked out of the market cost to build games increasingly prohibitive problem
  • 25.
    XNA example moore’s lawenabled higher level languages multi-core cpu encouraged parallel code speed forgave many crimes trends
  • 26.
    market for independentgames would be huge only two kinds of code: • performance sensitive • everything else build pipelines key to cutting costs XNA example bets
  • 27.
    moore’s law mobile drivingchip design perf per watt many low-powered cores tremendous implications on HOW we write code single threaded practices obsolete most of the coding population is out of date