ios app continuous deployment strategy
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
Continuous Deployment for iOS Game Development
Naresh Jain [email protected]
@nashjain http://nareshjain.com
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
EdventureLabs Speedmath Demo
Commercial Break!
Copyright © 2012, AgileFAQs. All Rights Reserved.
Mumbai
Tech Talks!
Copyright © 2013, AgileFAQs. All Rights Reserved.
Continuous Deployment
Licensed Under Creative Commons by Naresh Jain
CD is quite natural for companies delivering
content via Web
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
Licensed Under Creative Commons by Naresh Jain
BetterConf (AgileIndia) Submission System and
Online Registration System
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)
Licensed Under Creative Commons by Naresh Jain
This is what we did...
Licensed Under Creative Commons by Naresh Jain
Deploy build to inactive production servers
Licensed Under Creative Commons by Naresh Jain
Delivery tests verify inactive release
Licensed Under Creative Commons by Naresh Jain
Inactive joins the cluster
Licensed Under Creative Commons by Naresh Jain
Reverse proxy swaps inactive with active
Licensed Under Creative Commons by Naresh Jain
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
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
Client Side Architecture
JSNative
Recap
• Split the changes into different layers
• Maximise the use of HTML5 Tech stack
• Automate the heck out of things