Slide 1

Slide 1 text

THE SHARP EDGES OF LEAKY ABSTRACTIONS MARK ALLEN – ALERT LOGIC [email protected] @BYTEMEORG

Slide 2

Slide 2 text

“Every man shares a secret pain. Share it with me and gain strength from the sharing” -Sybok, Star Trek V

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

ABSTRACTION •Introduce levers •Encapsulate behaviors or domains •Remove complexity from problems

Slide 5

Slide 5 text

ABSTRACTIONS AS A SERVICE •TensorFlow •Amazon •Azure

Slide 6

Slide 6 text

ON PREMISE ABSTRACTIONS •Search (e.g., Elastic or Solr) •“Big Data” (e.g., Spark or Hadoop or $APACHE_PROJECT)

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

THE PITCH You don't need to know or understand these messy details about the abstraction you're using. The system accounts for all the things, so relax; write your system as you would expect to.

Slide 9

Slide 9 text

“It’ll be fine.”

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

LOOK AT ALL THIS FREE STUFF! • three different programming languages (!!), • automatic work division, • job retry on failure, • automatic collation of output from worker nodes, • job scheduling (with your own pluggable scheduler, even!) and • a reasonably nice web UI to track jobs and progress. It will even draw a DAG of the work elements!

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

The computer is not your friend

Slide 15

Slide 15 text

“I COME TO BURY CAESAR, NOT TO PRAISE HIM.” - ANTONY, JULIUS CAESAR, ACT 3, SCENE II

Slide 16

Slide 16 text

Obligatory cat picture

Slide 17

Slide 17 text

Spolsky’s Law of Software Abstractions: All non-trivial abstractions, to some degree, are leaky.

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

What are we to do?

Slide 21

Slide 21 text

What causes leaky abstractions?

Slide 22

Slide 22 text

Abstracting the “wrong” thing

Slide 23

Slide 23 text

Abstracting something that can’t be abstracted

Slide 24

Slide 24 text

Leaky by design

Slide 25

Slide 25 text

Let us be honest with one another

Slide 26

Slide 26 text

Tutorials and documentation help

Slide 27

Slide 27 text

Give thought to how people might use your abstraction

Slide 28

Slide 28 text

Give thought to how people might operate your abstraction

Slide 29

Slide 29 text

Thank you

Slide 30

Slide 30 text

REFERENCES • https://hackernoon.com/leaky-by-design-7b423142ece0 • https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ • https://hackernoon.com/what-really-happened-with-vista-4ca7ffb5a1a • http://www.mayofamily.com/RLM/txt_Clarke_Superiority.html