ios app continuous deployment strategy

28
Continuous Deployment for iOS Game Development Naresh Jain [email protected] @nashjain http://nareshjain.com

Upload: naresh-jain

Post on 06-May-2015

2.881 views

Category:

Technology


0 download

DESCRIPTION

"Release Early, Release Often" is a proven mantra and many companies have taken this one step further by releasing products to real users with every commit a.k.a Continuous Deployment (CD). Over the years, I've built many web/infrastructure products, where we've effectively practiced CD. However at Edventure Labs, when we started building iPad games, we realised there was no easy was to practice CD, esp. given the fact that Apple review takes a few days. Our main question was: As mobile app developers, how should we architect/design our apps for CD? We were a young startup, learning new behaviour about our users (kids aged 5-8) everyday. We could not afford any delay in releasing latest, greatest features to our users. To solve this problem, I believe we've built an innovative solution to enable any mobile app developer to achieve CD. If you are building real products, which have platform/3rd-party dependencies and you want to practice CD, this session is for you.

TRANSCRIPT

Page 1: iOS App Continuous Deployment Strategy

Continuous Deployment for iOS Game Development

Naresh Jain [email protected]

@nashjain http://nareshjain.com

Page 2: iOS App Continuous Deployment Strategy

45 mins Structure• 5 Mins - Demo of the Game

• 10 Mins - Continuous Deployment (Biz Case)

• 3 Mins - Challenges with CD for iPad apps

• 5 Mins - Our Approach

• 10 Mins - Our Architecture

• 5 Mins - Recap

• 7 Mins - Q & A

Page 3: iOS App Continuous Deployment Strategy

EdventureLabs Speedmath Demo

Page 4: iOS App Continuous Deployment Strategy

Commercial Break!

Page 5: iOS App Continuous Deployment Strategy

Copyright © 2012, AgileFAQs. All Rights Reserved.

Page 6: iOS App Continuous Deployment Strategy

Mumbai

Page 7: iOS App Continuous Deployment Strategy
Page 8: iOS App Continuous Deployment Strategy
Page 9: iOS App Continuous Deployment Strategy
Page 10: iOS App Continuous Deployment Strategy

Tech Talks!

Page 11: iOS App Continuous Deployment Strategy
Page 12: iOS App Continuous Deployment Strategy
Page 13: iOS App Continuous Deployment Strategy

Copyright © 2013, AgileFAQs. All Rights Reserved.

Continuous Deployment

Page 14: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

CD is quite natural for companies delivering

content via Web

Page 15: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

freesetglobal.com

Updates View

DB

StaticFiles

Stage 1

Structural

Changes

freesetglobal.com

Upda

tes View

DB

StaticFiles

Stage 2

dev.freesetglobal.com

DB

StaticFiles

Single-Click

Deploy

Sync

Freeset - In Business for Freedom

Page 16: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

BetterConf (AgileIndia) Submission System and

Online Registration System

Page 17: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

Can we embrace CD for eLearning?

Rich Multi-Media ContentVideo, Screencasts, Quizzes, Images, Personas, etc.

Programming ExercisesJava, C#, C++, C & Python

Mac OS, Windows, Linux, Solaris

Different IDE Plugins

Server side code analysis (Java, C#, C++, C & Python)

Page 18: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

This is what we did...

Page 19: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

Deploy build to inactive production servers

Page 20: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

Delivery tests verify inactive release

Page 21: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

Inactive joins the cluster

Page 22: iOS App Continuous Deployment Strategy

Licensed Under Creative Commons by Naresh Jain

Reverse proxy swaps inactive with active

Page 24: iOS App Continuous Deployment Strategy

iOS App CD Challenges

• Apple takes any where between 3 Days to 1 Week to push a new update to the app store

• Pretty complicated and cumbersome signing and packing process

• Need to deploy to actual iOS devices to test minor changes

Page 25: iOS App Continuous Deployment Strategy

How did we solve this problems?

• We decided to go down the HTML5 Route

• Changes/Updates needed to be made at 3 levels:

• Content Changes & Logic Changes

• Look and Feel Changes

• Infrastructure Changes

Page 26: iOS App Continuous Deployment Strategy

Client Side Architecture

JSNative

Page 27: iOS App Continuous Deployment Strategy

Recap

• Split the changes into different layers

• Maximise the use of HTML5 Tech stack

• Automate the heck out of things

Page 28: iOS App Continuous Deployment Strategy

Thank You!Questions?

Naresh Jain [email protected]

@nashjain http://nareshjain.com