0
The Last Mile
Disclaimer: I’m only using Windows for PowerPoint. Please don’t judge.
@StephenMelrose
Lead Software Enginee...
Are Recruiting!
Developers, DevOps, Scala/Hadoop,
Node.js Super Heroes, Principle Test Engineers,
an Engineering Manager, ...
SPIN Connector
Context
Image source: http://blog.burningman.com/wp-content/uploads/2012/09/blog4.jpg
(a.k.a. SPIN)
Image source: http://www.psdgraphics.com/file/adhesive-plaster.jpg
Image source: http://patriciaknight.files.wordpress.com/2011/08/change-architect-sign1.jpg
Image source: http://3.bp.blogspot.com/-Kdzzg4pimz0/Udk6bE5tDvI/AAAAAAAAFes/MxIGspcwu3M/s1600/photo.JPG
Testing
Performance
Extendibility
Supportability
Logging
Request failed
Connection lost
Failed to perform action
Request failed
Connection lost
Failed to perform action
Request failed
Connection lost
Failed to perform action
Request failed
Connection lost
Failed to perform action
Useful
Informative
Failed to start-up controller for fixture
[gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP
details from SPIN Connect API:...
Failed to start-up controller for fixture
[gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP
details from SPIN Connect API:...
Failed to start-up controller for fixture
[gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP
details from SPIN Connect API:...
Failed to start-up controller for fixture
[gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP
details from SPIN Connect API:...
Failed to start-up controller for fixture
[gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP
details from SPIN Connect API:...
Log Tail Video
Nothing
The Syslog Protocol (RFC 5424)
DEBUG Verbose and raw debug information. Use in development only.
e.g. request/response bod...
Graphs
Node.js Log
Processor
Graphitestatsd
Monitoring
Load Testing
SPIN’s API OpenBetSPIN Connector
SPIN Recorder
SPIN’s API OpenBetSPIN Connector
Fake SPIN API
Our Entire
Frontend Stack
Released to Live
Information exposure is paramount
Know what your app is doing
Automate the monitoring
Make sure it can do it
Thank you
Any questions?
@StephenMelrose
http://stephenmelrose.co.uk/
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
The Last Mile
Upcoming SlideShare
Loading in...5
×

The Last Mile

240

Published on

Everyone's had to endure the "last mile" of developing an application, but what happens if you consider those tasks from day 1? This talk centres around an application we released at Sky Bet earlier this year, the approaches we took, and how we benefited.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
240
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "The Last Mile"

  1. 1. The Last Mile Disclaimer: I’m only using Windows for PowerPoint. Please don’t judge. @StephenMelrose Lead Software Engineer - BSkyB Photo by Ousseynou Cissé https://www.flickr.com/photos/afuelcalledlove/
  2. 2. Are Recruiting! Developers, DevOps, Scala/Hadoop, Node.js Super Heroes, Principle Test Engineers, an Engineering Manager, and more! victoria.howling@bskyb.com For more info, please see/contact:
  3. 3. SPIN Connector
  4. 4. Context
  5. 5. Image source: http://blog.burningman.com/wp-content/uploads/2012/09/blog4.jpg
  6. 6. (a.k.a. SPIN)
  7. 7. Image source: http://www.psdgraphics.com/file/adhesive-plaster.jpg
  8. 8. Image source: http://patriciaknight.files.wordpress.com/2011/08/change-architect-sign1.jpg
  9. 9. Image source: http://3.bp.blogspot.com/-Kdzzg4pimz0/Udk6bE5tDvI/AAAAAAAAFes/MxIGspcwu3M/s1600/photo.JPG
  10. 10. Testing Performance Extendibility Supportability
  11. 11. Logging
  12. 12. Request failed Connection lost Failed to perform action
  13. 13. Request failed Connection lost Failed to perform action
  14. 14. Request failed Connection lost Failed to perform action
  15. 15. Request failed Connection lost Failed to perform action
  16. 16. Useful Informative
  17. 17. Failed to start-up controller for fixture [gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP details from SPIN Connect API: Failed to get stream AMQP details: HTTP request failed: ETIMEDOUT - Request: {"url":"http://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c","options":{"headers":{"Accept- Encoding":"gzip","X-Auth- Token":"XXXXXX"},"timeout":30000,"attempt":2,"uri":"htt p://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c"}}
  18. 18. Failed to start-up controller for fixture [gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP details from SPIN Connect API: Failed to get stream AMQP details: HTTP request failed: ETIMEDOUT - Request: {"url":"http://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c","options":{"headers":{"Accept- Encoding":"gzip","X-Auth- Token":"XXXXXX"},"timeout":30000,"attempt":2,"uri":"htt p://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c"}}
  19. 19. Failed to start-up controller for fixture [gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP details from SPIN Connect API: Failed to get stream AMQP details: HTTP request failed: ETIMEDOUT - Request: {"url":"http://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c","options":{"headers":{"Accept- Encoding":"gzip","X-Auth- Token":"XXXXXX"},"timeout":30000,"attempt":2,"uri":"htt p://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c"}}
  20. 20. Failed to start-up controller for fixture [gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP details from SPIN Connect API: Failed to get stream AMQP details: HTTP request failed: ETIMEDOUT - Request: {"url":"http://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c","options":{"headers":{"Accept- Encoding":"gzip","X-Auth- Token":"XXXXXX"},"timeout":30000,"attempt":2,"uri":"htt p://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c"}}
  21. 21. Failed to start-up controller for fixture [gC6RFPZ0IW7Zv_vqFR78Aj6_05c]: Failed to get AMQP details from SPIN Connect API: Failed to get stream AMQP details: HTTP request failed: ETIMEDOUT - Request: {"url":"http://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c","options":{"headers":{"Accept- Encoding":"gzip","X-Auth- Token":"XXXXXX"},"timeout":30000,"attempt":2,"uri":"htt p://<api- domain>/UnifiedDataAPI/stream/IceHockey/gC6RFPZ0IW7Zv_v qFR78Aj6_05c"}}
  22. 22. Log Tail Video
  23. 23. Nothing
  24. 24. The Syslog Protocol (RFC 5424) DEBUG Verbose and raw debug information. Use in development only. e.g. request/response bodies INFO 95% of our logging. Stuff we want to monitor, e.g. HTTP request complete, took X seconds, performed Y actions NOTICE Similar to INFO, but significant events. Also, errors that CAN happen and we HAVE HANDLED WARN Errors that SHOULDN’T happen, but we HAVE HANDLED ERROR Errors that SHOULDN’T happen and we CAN’T HANDLE CRITICAL Fatal errors that cause the application to crash
  25. 25. Graphs
  26. 26. Node.js Log Processor Graphitestatsd
  27. 27. Monitoring
  28. 28. Load Testing
  29. 29. SPIN’s API OpenBetSPIN Connector SPIN Recorder
  30. 30. SPIN’s API OpenBetSPIN Connector Fake SPIN API Our Entire Frontend Stack
  31. 31. Released to Live
  32. 32. Information exposure is paramount Know what your app is doing Automate the monitoring Make sure it can do it
  33. 33. Thank you Any questions? @StephenMelrose http://stephenmelrose.co.uk/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×