78
Jesper Richter-Reichhelm (@jrirei) | Wooga DevOps goes Mobile

DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

  • Upload
    wooga

  • View
    1.710

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Jesper Richter-Reichhelm (@jrirei) | Wooga

DevOps goes Mobile

Page 2: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 3: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

November 2013

!? … ……

!

Page 4: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 5: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

November 2013

…!?

…… …

Page 6: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

“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

November 2013

!?… … …

… ……

Page 8: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Crashing 15%

Not affected 50%

Old version 35%

>200,000 users affected

Page 9: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 10: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

November 2013 (on web)

• 5 hours crashing, not 5 days! • 9 days live earlier

Page 11: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 12: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 13: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• 2009 focus on Facebook • 2011 first iOS game • 2013 mobile first strategy

Wooga

Page 14: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

“You build it, you run it. - Werner Vogels

Page 15: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• Agile admins • Faster releases • Virtualization • Automation tools

Some say DevOps is about

Page 16: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• Big Picture Mindset • Learning together • Reality Feedback • => Collaboration

I say it’s about

Page 17: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Mobile is differentespecially for apps

Page 18: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

DevOps is different

for Mobile

Page 19: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Problems & Solutions

Page 20: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Mobile Network

Page 21: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• use async. communication • use compression • batch of requests • monitor network differences

Unreliable network

Page 22: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• queue monitoring calls locally • queue server updates locally • store state local

Offline mode

Page 23: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Runs on a Device

Page 24: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 25: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

WORD

Page 26: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 27: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 28: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 29: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• 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

• 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

Deploy w/o Control

Page 32: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Jenkins

Page 33: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 34: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• 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

• Only pulls • Users can deactivate

No push updates

Page 36: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 37: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

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

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

• 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

WORD

Page 41: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Canary Testing

Page 42: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 43: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 44: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Wooga Solutions

Page 45: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Cross Platform

Page 46: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 47: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 48: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 49: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Test Pool

Page 50: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 51: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 52: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• No manual builds • Keep dSYM file • Jailbreaked iPhone • Copy live to staging

Lessons learned

Page 53: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

WORDSimple Backend Services

Page 54: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Key Value Store

Page 55: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 56: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 57: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Config Service

Page 58: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 59: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

AB Test Service

Page 60: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 61: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

• 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

• 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
Page 64: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 65: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 66: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Error Analytics

Page 67: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

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

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

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

SDK

Page 71: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
Page 72: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Wrap up

Page 73: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Mobile is differentespecially for apps

Page 74: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

DevOps is different

for Mobile

Page 75: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Dev + Ops is needed

Page 76: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Continuous Delivery is good

Page 77: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Be able to react

always

Page 78: DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm

Questions?@jrirei

http://wooga.com/jobs