DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
-
Upload
wooga -
Category
Technology
-
view
1.710 -
download
0
Transcript of DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
![Page 1: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/1.jpg)
Jesper Richter-Reichhelm (@jrirei) | Wooga
DevOps goes Mobile
![Page 2: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/2.jpg)
![Page 3: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/3.jpg)
November 2013
!? … ……
!
![Page 4: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/4.jpg)
![Page 5: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/5.jpg)
November 2013
…!?
…… …
…
![Page 6: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/6.jpg)
“In recognition of your incredible efforts and achievements, I’m happy to announce that we’re extending the Thanksgiving holiday this year.”
- Tim Cook
![Page 7: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/7.jpg)
November 2013
!?… … …
… ……
![Page 8: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/8.jpg)
Crashing 15%
Not affected 50%
Old version 35%
>200,000 users affected
![Page 9: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/9.jpg)
![Page 10: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/10.jpg)
November 2013 (on web)
• 5 hours crashing, not 5 days! • 9 days live earlier
![Page 11: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/11.jpg)
![Page 12: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/12.jpg)
![Page 13: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/13.jpg)
• 2009 focus on Facebook • 2011 first iOS game • 2013 mobile first strategy
Wooga
![Page 14: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/14.jpg)
“You build it, you run it. - Werner Vogels
![Page 15: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/15.jpg)
• Agile admins • Faster releases • Virtualization • Automation tools
Some say DevOps is about
![Page 16: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/16.jpg)
• Big Picture Mindset • Learning together • Reality Feedback • => Collaboration
I say it’s about
![Page 17: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/17.jpg)
Mobile is differentespecially for apps
![Page 18: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/18.jpg)
DevOps is different
for Mobile
![Page 19: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/19.jpg)
Problems & Solutions
![Page 20: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/20.jpg)
Mobile Network
![Page 21: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/21.jpg)
• use async. communication • use compression • batch of requests • monitor network differences
Unreliable network
![Page 22: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/22.jpg)
• queue monitoring calls locally • queue server updates locally • store state local
Offline mode
![Page 23: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/23.jpg)
Runs on a Device
![Page 24: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/24.jpg)
![Page 25: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/25.jpg)
WORD
![Page 26: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/26.jpg)
![Page 27: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/27.jpg)
![Page 28: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/28.jpg)
![Page 29: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/29.jpg)
• consistency problems • merge/conflict handling • versioning of data • esp. tricky when allowing usage of
multiple devices
Local storage
![Page 30: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/30.jpg)
• 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
![Page 31: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/31.jpg)
Deploy w/o Control
![Page 32: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/32.jpg)
Jenkins
![Page 33: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/33.jpg)
![Page 34: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/34.jpg)
• Live with it • Use online config • AB testing • balancing changes • careful of what is allowed • use local storage to cache
Apple Test Cycle
![Page 35: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/35.jpg)
• Only pulls • Users can deactivate
No push updates
![Page 36: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/36.jpg)
![Page 37: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/37.jpg)
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%
![Page 38: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/38.jpg)
0,0%
20,0%
40,0%
60,0%
80,0%
2014 ... ... ... ... ... ... 2013 2012 2011
5% 3%
![Page 39: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/39.jpg)
• 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
![Page 40: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/40.jpg)
WORD
![Page 41: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/41.jpg)
Canary Testing
![Page 42: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/42.jpg)
![Page 43: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/43.jpg)
![Page 44: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/44.jpg)
Wooga Solutions
![Page 45: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/45.jpg)
Cross Platform
![Page 46: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/46.jpg)
![Page 47: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/47.jpg)
![Page 48: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/48.jpg)
![Page 49: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/49.jpg)
Test Pool
![Page 50: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/50.jpg)
![Page 51: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/51.jpg)
![Page 52: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/52.jpg)
• No manual builds • Keep dSYM file • Jailbreaked iPhone • Copy live to staging
Lessons learned
![Page 53: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/53.jpg)
WORDSimple Backend Services
![Page 54: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/54.jpg)
Key Value Store
![Page 55: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/55.jpg)
![Page 56: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/56.jpg)
![Page 57: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/57.jpg)
Config Service
![Page 58: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/58.jpg)
![Page 59: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/59.jpg)
AB Test Service
![Page 60: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/60.jpg)
![Page 61: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/61.jpg)
• 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
![Page 62: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/62.jpg)
• 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
![Page 63: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/63.jpg)
![Page 64: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/64.jpg)
![Page 65: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/65.jpg)
![Page 66: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/66.jpg)
Error Analytics
![Page 67: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/67.jpg)
0
25.000
50.000
75.000
100.000
Users Errors
Version 1 Version 2
![Page 68: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/68.jpg)
0
1.250
2.500
3.750
5.000
Users Errors
Version 1 Version 2
![Page 69: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/69.jpg)
0%
2,5%
5%
7,5%
10%
Users Errors Affected Users
Version 1 Version 2
![Page 70: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/70.jpg)
SDK
![Page 71: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/71.jpg)
![Page 72: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/72.jpg)
Wrap up
![Page 73: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/73.jpg)
Mobile is differentespecially for apps
![Page 74: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/74.jpg)
DevOps is different
for Mobile
![Page 75: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/75.jpg)
Dev + Ops is needed
![Page 76: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/76.jpg)
Continuous Delivery is good
![Page 77: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm](https://reader031.fdocuments.net/reader031/viewer/2022030311/58efedf31a28ab1f6a8b460b/html5/thumbnails/77.jpg)
Be able to react
always