Your SlideShare is downloading. ×
The Last Mile
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

The Last Mile

203

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 …

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
203
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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. SPIN Connector
  • 4. Context
  • 5. Image source: http://blog.burningman.com/wp-content/uploads/2012/09/blog4.jpg
  • 6. (a.k.a. SPIN)
  • 7. Image source: http://www.psdgraphics.com/file/adhesive-plaster.jpg
  • 8. Image source: http://patriciaknight.files.wordpress.com/2011/08/change-architect-sign1.jpg
  • 9. Image source: http://3.bp.blogspot.com/-Kdzzg4pimz0/Udk6bE5tDvI/AAAAAAAAFes/MxIGspcwu3M/s1600/photo.JPG
  • 10. Testing Performance Extendibility Supportability
  • 11. Logging
  • 12. Request failed Connection lost Failed to perform action
  • 13. Request failed Connection lost Failed to perform action
  • 14. Request failed Connection lost Failed to perform action
  • 15. Request failed Connection lost Failed to perform action
  • 16. Useful Informative
  • 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. 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. 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. 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. 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. Log Tail Video
  • 23. Nothing
  • 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. Graphs
  • 26. Node.js Log Processor Graphitestatsd
  • 27. Monitoring
  • 28. Load Testing
  • 29. SPIN’s API OpenBetSPIN Connector SPIN Recorder
  • 30. SPIN’s API OpenBetSPIN Connector Fake SPIN API Our Entire Frontend Stack
  • 31. Released to Live
  • 32. Information exposure is paramount Know what your app is doing Automate the monitoring Make sure it can do it
  • 33. Thank you Any questions? @StephenMelrose http://stephenmelrose.co.uk/

×