Leigh Williamson (IBM Distinguished Engineer, Rational Software CTO Team, Mobile Software Development Strategy) and I have co-written a paper on DevOps for Mobile Apps. The paper have been published this week on IBM developerWorks. In this paper Leigh and I introduce the challenges related to DevOps that are specific to Mobile Apps. Unless one is building a stand-alone game like Angry/Flappy Bird, ones mobile app is just a front-end to back-end services the business offers. These services may be running on a mainframe, a distributed system on-prem, in the cloud or may be offered by a 3rd party. It not atypical to see a combination of all of these. This brings a set of challenges when delivering a mobile app, all the way from planning, develop and test, deployment, to monitoring, as all these services/components are a part of the solution delivered by the mobile app. The mobile app hence cannot be delivered in isolation. DevOps Mobile Apps is really DevOps for the solution, which happens to have a mobile app as its front-end.
Our paper addresses the challenges this brings and the ways DevOps addresses them. This is a ‘Best Practices’ paper and not a product pitch.
Here is a short overview:
DevOps Challenges unique to Mobile Apps:
- Multi-platform support
- Mobile apps as an enterprise front end
- Continuous integration and continuous delivery
- The app store
- ‘Pull’ not ‘push’ deployment
- For consumer apps, failure is not an option
10 Best Practices to address them:
- Ensure end-to-end traceability across all assets
- Practice continuous integration
- Maintain separate build and integration areas for each native mobile OS SDK version supported
- Use automated build and deploy scripts
- Test each build thoroughly with as much automation as possible, on simulated and physical devices
- Virtualize and simulate backend services that are not available during mobile app testing
- Monitor the performance of deployed mobile apps and backend services
- Employ centralized governance for mobile provisioning profiles, certificates, and API keys
- Use a virtual app store to test device deployment
- Convert user feedback into enhancement requests and user stories
Check out the paper and pass it on to your colleagues.