Your SlideShare is downloading. ×
0
Jesper Richter-Reichhelm (@jrirei) | Wooga
DevOps goes Mobile
November 2013
!? … …
…
!
November 2013
…
!?
…
… …
…
“In recognition of your
incredible efforts and
achievements, I’m happy to
announce that we’re
extending the Thanksgiving
ho...
November 2013
!?
… … …
… …
…
Crashing
15%
Not affected
50%
Old version
35%
>200,000 users
affected
November 2013 (on web)
• 5 hours crashing, not 5 days!
• 9 days live earlier
• 2009 focus on Facebook
• 2011 first iOS game
• 2013 mobile first strategy
Wooga
“You build it, you run it.
- Werner Vogels
• Agile admins
• Faster releases
• Virtualization
• Automation tools
Some say DevOps is about
• Big Picture Mindset
• Learning together
• Reality Feedback
• => Collaboration
I say it’s about
Mobile is
different
especially for apps
DevOps is
different
for Mobile
Problems &
Solutions
Mobile
Network
• use async. communication
• use compression
• batch of requests
• monitor network differences
Unreliable network
• queue monitoring calls locally
• queue server updates locally
• store state local
Offline mode
Runs on a
Device
WORD
• consistency problems
• merge/conflict handling
• versioning of data
• esp. tricky when allowing usage of
multiple devices...
• Different mindsets of mobile devs
• Reproduce error vs. log lookup
• Using an error analytics service
• not only crashes
...
Deploy w/o
Control
Jenkins
• Live with it
• Use online config
• AB testing
• balancing changes
• careful of what is allowed
• use local storage to cac...
• Only pulls
• Users can deactivate
No push updates
0,0%
20,0%
40,0%
60,0%
80,0%
4.4.2 4.4.1 4.4 4.3.x 4.2.x 4.1.x 4.0.x 3.x 2.x 1.x
5% 3%
0,0%
20,0%
40,0%
60,0%
80,0%
2014 ... ... ... ... ... ... 2013 2012 2011
5% 3%
• Only pulls
• Users can deactivate
• Or force users to update in app
• check server for newer version
• Online config help...
WORD
Canary
Testing
Wooga
Solutions
Cross
Platform
Test Pool
• No manual builds
• Keep dSYM file
• Jailbreaked iPhone
• Copy live to staging
Lessons learned
WORD
Simple Backend Services
Key Value
Store
Config
Service
AB Test
Service
• It’s hell - live with it
• form factor, OS version
• Restrict devices (camera, min. OS)
• cross platform dev.
• many loc...
• It’s hell - live with it
• form factor, OS version
• Restrict devices (camera, min. OS)
• cross platform dev.
• many loc...
Error
Analytics
0
25.000
50.000
75.000
100.000
Users Errors
Version 1 Version 2
0
1.250
2.500
3.750
5.000
Users Errors
Version 1 Version 2
0%
2,5%
5%
7,5%
10%
Users Errors Affected Users
Version 1 Version 2
SDK
Wrap up
Mobile is
different
especially for apps
DevOps is
different
for Mobile
Dev + Ops
is needed
Continuous
Delivery

is good
Be able to
react
always
Questions?
@jrirei
http://wooga.com/jobs
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Upcoming SlideShare
Loading in...5
×

DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

1,011

Published on

DevOps hat uns viel gelehrt: Jedes Commit wird automatisch integriert, getestet und in eine Stagingumgebung installiert. Und einen Knopfdruck später geht das Release dann live.
Aber leider funktioniert das und vieles mehr, was uns in Zeiten von DevOps als Normal erscheint, nicht bei mobilen Applikationen.
Wie kann ich also schnell meine mobile Software anpassen, wenn der Betreiber des App Stores erst tagelang testen will? Wie kann ich Konfiguration anpassen, wenn die App auch offline laufen soll? Und wie funktioniert Fehlersuche, wenn die Daten auf Millionen von mobilen Clients verteilt sind?
Beim Betrieb von mobilen Spielen mit Millionen täglicher Nutzer standen wir genau diesen Fragen gegenüber. Der Vortrag wird darlegen, welche Antworten wir darauf gefunden haben.

Published in: Technology

Transcript of "DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm"

  1. 1. Jesper Richter-Reichhelm (@jrirei) | Wooga DevOps goes Mobile
  2. 2. November 2013 !? … … … !
  3. 3. November 2013 … !? … … … …
  4. 4. “In recognition of your incredible efforts and achievements, I’m happy to announce that we’re extending the Thanksgiving holiday this year.” - Tim Cook
  5. 5. November 2013 !? … … … … … …
  6. 6. Crashing 15% Not affected 50% Old version 35% >200,000 users affected
  7. 7. November 2013 (on web) • 5 hours crashing, not 5 days! • 9 days live earlier
  8. 8. • 2009 focus on Facebook • 2011 first iOS game • 2013 mobile first strategy Wooga
  9. 9. “You build it, you run it. - Werner Vogels
  10. 10. • Agile admins • Faster releases • Virtualization • Automation tools Some say DevOps is about
  11. 11. • Big Picture Mindset • Learning together • Reality Feedback • => Collaboration I say it’s about
  12. 12. Mobile is different especially for apps
  13. 13. DevOps is different for Mobile
  14. 14. Problems & Solutions
  15. 15. Mobile Network
  16. 16. • use async. communication • use compression • batch of requests • monitor network differences Unreliable network
  17. 17. • queue monitoring calls locally • queue server updates locally • store state local Offline mode
  18. 18. Runs on a Device
  19. 19. WORD
  20. 20. • consistency problems • merge/conflict handling • versioning of data • esp. tricky when allowing usage of multiple devices Local storage
  21. 21. • Different mindsets of mobile devs • Reproduce error vs. log lookup • Using an error analytics service • not only crashes • must work offline! • no OS related crashes • just memory warning Log file access
  22. 22. Deploy w/o Control
  23. 23. Jenkins
  24. 24. • Live with it • Use online config • AB testing • balancing changes • careful of what is allowed • use local storage to cache Apple Test Cycle
  25. 25. • Only pulls • Users can deactivate No push updates
  26. 26. 0,0% 20,0% 40,0% 60,0% 80,0% 4.4.2 4.4.1 4.4 4.3.x 4.2.x 4.1.x 4.0.x 3.x 2.x 1.x 5% 3%
  27. 27. 0,0% 20,0% 40,0% 60,0% 80,0% 2014 ... ... ... ... ... ... 2013 2012 2011 5% 3%
  28. 28. • Only pulls • Users can deactivate • Or force users to update in app • check server for newer version • Online config helps a lot No push updates
  29. 29. WORD
  30. 30. Canary Testing
  31. 31. Wooga Solutions
  32. 32. Cross Platform
  33. 33. Test Pool
  34. 34. • No manual builds • Keep dSYM file • Jailbreaked iPhone • Copy live to staging Lessons learned
  35. 35. WORD Simple Backend Services
  36. 36. Key Value Store
  37. 37. Config Service
  38. 38. AB Test Service
  39. 39. • It’s hell - live with it • form factor, OS version • Restrict devices (camera, min. OS) • cross platform dev. • many local devices • Apple Enterprise acc. • complex tool chain
  40. 40. • It’s hell - live with it • form factor, OS version • Restrict devices (camera, min. OS) • cross platform dev. • many local devices • Apple Enterprise acc. • complex tool chain
  41. 41. Error Analytics
  42. 42. 0 25.000 50.000 75.000 100.000 Users Errors Version 1 Version 2
  43. 43. 0 1.250 2.500 3.750 5.000 Users Errors Version 1 Version 2
  44. 44. 0% 2,5% 5% 7,5% 10% Users Errors Affected Users Version 1 Version 2
  45. 45. SDK
  46. 46. Wrap up
  47. 47. Mobile is different especially for apps
  48. 48. DevOps is different for Mobile
  49. 49. Dev + Ops is needed
  50. 50. Continuous Delivery
 is good
  51. 51. Be able to react always
  52. 52. Questions? @jrirei http://wooga.com/jobs
  1. A particular slide catching your eye?

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

×