Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scaling IoT Solutions at Dyson

Avatar for Andy Nesling Andy Nesling
November 03, 2016

Scaling IoT Solutions at Dyson

Avatar for Andy Nesling

Andy Nesling

November 03, 2016
Tweet

More Decks by Andy Nesling

Other Decks in Programming

Transcript

  1. About me! • Tech team lead at Dyson • Been

    working in IoT for 14 years • Passionate about agile software development
  2. 360 Eye enhanced through connectivity • Quickly set a schedule

    • Has it cleaned my house? • Get notified when your clean has started
  3. Pure cool enhanced through connectivity • Quickly set a schedule

    • How clean is my house? • Get ready for coming home • How have things changed over time?
  4. Where are we now? • 100,000s of connected users •

    Across 30 countries • Increasing rate of new connected users
  5. Marrying Waterfall with Agile • What are the requirements at

    launch? • Where do you put the UI? • User story mapping • Firmware update always!
  6. Challenges Launching globally • Already established in multiple regions •

    Service availability & speed • User experience • Leveraging local experience
  7. What are the options? • What Features have to be

    connected? • Local Logic • Remote logic • Always be able to update!
  8. Implications of local logic • Robust and fault tolerant •

    Fast • Hard to change • Must consider backwards compatibility
  9. Implications of remote logic • Can be slower • Harder

    to make fault tolerant • Easier to change • What will scale?
  10. Real-time product control • What has to be real-time? •

    What can be queued? • Consistency is key • What has to be saved?
  11. IoT Load the good & bad • Predictable • Throttled

    by manufacturing • Time synchronized • Does not give up!
  12. Taming the IoT load • Consider data rates • Unsynchronize

    & back off • Queueing • Blacklisting
  13. IoT Load Testing • Leveraging Cloud computing • Use same

    metrics as production • Monitor the clients • Not just steady state http://grafana.org/
  14. What Level do we automate? • Acceptance testing for sub

    systems • Contract Testing between systems • Smoke testing for the whole • Automate deployments for all testing
  15. What Should you monitor? • Everything all the time! •

    Monitor KPIs not just server health • Try to monitor in one system • Treat IoT devices like servers • Trend as well as alert http://grafana.org/
  16. What has to be compatible? • Firmware in products on

    1st install • iOS & Android Apps • Micro services & backend • Avoid specific behavior for different regions • Do not to tie releases together
  17. What approach do we take? • Try not to do

    anything special! • Embed security into the development process • Don’t just test the server • Automate where possible
  18. How do you get at the data? • Billions of

    anonymized data points • Get it off production • Get all of the data into the same system • Ask specific questions and leverage machine learning
  19. How do we use the data? • Understand better how

    our customers use their products • Our Innovation continues after we ship the products • Even more powerful data driven design • Enabled by firmware update!
  20. What are we learning? • Ensure connectivity extends the product

    • Consider what is required at launch and where the logic goes • Automate testing and deployment as much as possible • Use the data to continuously improve the products