Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

2011

Slide 3

Slide 3 text

BOOTSTRAPPED & PROUD

Slide 4

Slide 4 text

$$$

Slide 5

Slide 5 text

, INC. ?

Slide 6

Slide 6 text

What if we could take advantage of our deep knowledge of Rails and pair it with our expertise in building computation systems at scale? You can build something that no one else has done before. ! We didn't just want to build something a little better than our competitors. We wanted to build something that was light years ahead.

Slide 7

Slide 7 text

3 BREAKTHROUGHS As we were building Skylight, there were three critical breakthroughs that allowed us to deliver an application that was a quantum leap past existing solutions.

Slide 8

Slide 8 text

HONEST RESPONSE TIMES 1

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

“Our average response time for Basecamp right now is 87ms… That sounds fantastic, doesn’t it? And it easily leads you to believe that all is well and that we wouldn’t need to spend any more time optimizing performance.”

Slide 11

Slide 11 text

“Wrong. That average number is completely skewed by tons of super fast responses to feed requests and other cached replies. If you have 1000 requests that return in 5ms, then you can have 200 requests taking 2,000 ms and still get a respectable 170ms average. Useless.”

Slide 12

Slide 12 text

“What we need instead are histograms.”

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Cache Hits Cache Misses

Slide 15

Slide 15 text

95th Percentile

Slide 16

Slide 16 text

95TH PERCENTILE This is the number that matters, because it doesn't capture the average response time. It's more like the average worst response time.

Slide 17

Slide 17 text

1 USER ≠ 1 REQUEST Users generate many requests. Having one out of every 20 take multiple seconds is an opportunity for them to leave.

Slide 18

Slide 18 text

MARKET OPPORTUNITY

Slide 19

Slide 19 text

ONE PROBLEM

Slide 20

Slide 20 text

IT’S REALLY HARD

Slide 21

Slide 21 text

1 YEAR OF RESEARCH 6 MONTHS TO REWRITE

Slide 22

Slide 22 text

Your Rails App Agent events

Slide 23

Slide 23 text

ENDPOINT REQUESTS AVERAGE_RESP UsersController#show 2934 203 Calculating average is super easy. That's why everyone does it.

Slide 24

Slide 24 text

ENDPOINT REQUESTS RESP UsersController#show 2934 203 UPDATE response_times SET requests=requests+1, resp=((resp*requests) +new_resp)/requests+1) EACH REQUEST Calculating average is super easy. That's why everyone does it.

Slide 25

Slide 25 text

Your Rails App Agent events

Slide 26

Slide 26 text

Your Rails App Agent Coordinator Your Rails App Agent Your Rails App Agent

Slide 27

Slide 27 text

Low-level control, high-level productivity

Slide 28

Slide 28 text

Coordinator Kafka protobuf Java Kafka is very high throughput.

Slide 29

Slide 29 text

Storm Kafka Spout Bolt Bolt Bolt

Slide 30

Slide 30 text

Storm Spout Bolt Bolt Bolt

Slide 31

Slide 31 text

Storm Spout Bolt Bolt Bolt Cassandra

Slide 32

Slide 32 text

Storm Spout Bolt Bolt Bolt Cassandra

Slide 33

Slide 33 text

CUTTING EDGE ALGORITHMS & DATA STRUCTURES Carl spent nearly a year reading the latest academic literature.

Slide 34

Slide 34 text

Storm Spout Bolt Bolt Bolt Cassandra

Slide 35

Slide 35 text

FOCUS ON ANSWERS NOT DATA 2

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

INSPECTIONS

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

LIGHTNING FAST UI 3 We stream as much data as possible into your browser, so sorting and sifting through data is incredibly fast.

Slide 40

Slide 40 text

FEEDBACK LOOP

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

{{moment-date date format="MMM"}}
{{moment-date date format="DD"}}

Slide 45

Slide 45 text

{{calendar-date date=trialEndsAt}}

Slide 46

Slide 46 text

Model Controller Component Component Component

Slide 47

Slide 47 text

BREAKTHROUGHS

Slide 48

Slide 48 text

HONEST RESPONSE TIMES 1 FOCUS ON ANSWERS 2 LIGHTNING FAST UI 3 BREAKTHROUGHS

Slide 49

Slide 49 text

SKYLIGHT IS A SMART PROFILER DATA DETECTIVE CODE SHERPA BUG CATCHER FLAG RAISER FOR RAILS APPS

Slide 50

Slide 50 text

DEMO

Slide 51

Slide 51 text

ONE MORE THING

Slide 52

Slide 52 text

CPU PROFILING Uses Ruby 2.1's new static sampling API so it's really fast. We can sample the stack without doing any allocations, keeping it super lightweight and low- impact on memory

Slide 53

Slide 53 text

AVAILABLE TODAY SKYLIGHT.IO