Mobile DevOps
 Challenges and Trends
        Sanjeev Sharma
      IBM Software Group

       MoDevTablet 2012
         Arlington, VA
Please note
                                     (Mandatory legalese)
IBM’s statements regarding its plans, directions, and intent are subject to
change or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our
general product direction and it should not be relied on in making a purchasing
decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be
incorporated into any contract. The development, release, and timing of any
future features or functionality described for our products remains at our sole
discretion.

Performance is based on measurements and projections using standard IBM benchmarks
in a controlled environment.  The actual throughput or performance that any user will 
experience will vary depending upon many factors, including considerations such as the 
amount of multiprogramming in the user’s job stream, the I/O configuration, the storage 
configuration, and the workload processed.  Therefore, no assurance can be given that an 
individual user will achieve results similar to those stated here.
Me
• Sanjeev is a 18 year veteran of the
  software industry. For the past 15+
  years he has been a solution
  architect with IBM. His current area
  of expertise includes Enterprise            Sanjeev Sharma
  Architecture, Agile Transformation,          @sd_architect
                                         sanjeev.sharma@us.ibm.com
  Mobile Development, Software
                                            Executive IT Specialist
  Delivery Platforms, DevOps and            IBM Rational Specialty
  Software Supply Chains. He has                   Architect
                                              IBM Software Group
  spoken at several international                Ashburn, VA
  industry conferences and written
  internal and external articles.
• Sanjeev blogs @
  sdarchitect.wordpress.com
What is DevOps?
Why DevOp? ‐ Delivery 
         Challenges
                                         Dev & Test           Operations
Customers          Line of Business
                                          Teams                 Team


                                   1st                  2nd
                                   Gap                  Gap

 Desire for fast
and continuous                                                 Business
                    Requirements         Code & Tests
  innovation                                                   Services
Addressing delivery 
               challenges
                                             Dev & Test               Operations
Customers         Line of Business
                                              Teams                     Team


                                      1st                      2nd
                                      Gap                      Gap

Desire for fast
and continuous                                                         Business
                   Requirements             Code & Tests
innovation                                                             Services

                         Addressed by...           Addressed by...




                                 Agile                          Dev
                                 Dev                            Ops
Agile development and delivery
    Continuous Integration extends to Continuous Delivery



                  Build                                            Publish



Design     Agile                                                   Dev       Deploy
           Dev            Test                         Test        Ops


     Prioritize                                               Monitor

                                 Continuous Feedback




                          Accelerated Delivery with Reduced Risk
Addressing only the first gap
                          Functional 
       Agile               Testing
       Dev                              Acceptance 
                                         Testing

                                                      Production
                                                                           Operator
                                                                       Setup 
                                                                       (weeks)




                                                             Install




                            Water-SCRUM-Fall?



CI builds are piling up
DevOps is…
A set of principles and values that
facilitate collaboration across
disciplines to…
                                         People 

• Enable rapid evolution of              Process
  deployed business services             Information
• Reduce risk, decrease cost, and
  improve quality across the portfolio
Three DevOps Principles
1. Develop and test against a
  production-like system
2. Deploy frequently
3. Continuously validate
  operational quality
  characteristics
Mobile DevOps 
 challenges
Mobile DevOps Challenges
• Fragmented Platforms
   o iOS forked when iPad came out.
     Android forked multiple times with
     each vendor, Kindle Fire, Nook…

• HTML5 / Cordova still cannot
  fully replace native
• Mobile Apps are typically
  the front-end to a
  complex(potentially
  enterprise) back-end system
• App stores add additional
  asynchronous deployment
  step
Mobile Application Architecture: 
          LinkedIn




               http://engineering.linkedin.com/testing/co
               ntinuous‐integration‐mobile
10 Mobile DevOps 
  Best Practices
10 Mobile DevOps Practices
         1. Common team repository, with
                version control for all artifacts
Infrastructur
 e Developer



                               Source               Library
                               Control
                Deliver
                Application               Build                Fetch   Automate
   App
 Developer      Code

                              Source              Deployable
                              Artifacts            Artifacts



    Tester
10 Mobile DevOps Practices
2. Practice Continuous Integration
 o Have a central Build and Integration server
10 Mobile DevOps Practices
         3. Maintain separate build and
            integration areas for each SDK
                        version supported

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
         <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
          ...
</manifest>
10 Mobile DevOps Practices
4. Automated Build and Deploy scripts
 o Manage and version the scripts like code
 o Make each build reproducible at any time
                            Automated 
                             Scripts
10 Mobile DevOps Practices
          5. Test each build
o On simulated and physical devices
10 Mobile DevOps Practices
                        6. End-to-end Testing:
      o Virtualize back end services that are not
          available during testing                       Mobile App



                                                            App Under Test         Third-party
                                           Third-party
                                            Services                                Services




Test Environments to Production
           Actual Service                           Directory    Portals
           Simulated Service                         Identity

           Mobile App
                                                                             Enterprise Service
                                       Data Warehouse       Mainframe               Bus

                                           Heterogeneous Environments
10 Mobile DevOps Practices
7. Centralized governance of provider
  provisioning profiles, certificates and
                 API keys
10 Mobile DevOps Practices
8. Monitor deployed app and back
     end services performance
10 Mobile DevOps Practices
9. Use a ‘virtual’ App store to test
        deployment devices
10 Mobile DevOps Practices
10.Create a process to convert Test
 user and actual user feedback into
 enhancement requests/user stories
DevOps for the back‐
       end
Multi-stage Delivery Pipelines
                                                                                         Pipeline dashboards
                                                                                         provide feedback for
              Changes trigger                                Library                     the flow of changes
             pipeline execution                            (deployables)
                                                                                         through the pipeline




                     Delivery Pipeline
                                                                             Reporting/Dashboards/Analytics
                                                       QA Stage



    SCM                Build              Dev
                                                                               Pre-
                                                                                                   Promote to
(Source code &                                                              Production
                       Stage             Stage                                                     Production
configurations)                                                               Stage


                                                      Performance
                                                         Stage




  Each stage defines
                                           Approval gates with
       tasks and
                                           automated/manual            Stages can be run in
 configuration settings
                                            approvals provide                parallel
 with entrance and exit
                                          compliance checking
         criteria
                                                                                                              26
Capabilities Supporting DevOps
                                                                       Generate automation
                                                     Deployment                                           Pull configurations
                                                       Design
    Continuous                                                                        Configuration
                                                                                       Automation
    Integration                                           OSLC

                                                                                             OSLC
            OSLC
                             Trigger               Update 
                             Delivery              configuration
                                                   s                 Trigger 
Pull                                                                 deployment                              Deploy 
changes                                               Delivery                        Provisioning           service 
                                                      Pipeline                        Automation             and App

     Change                           Collaborative Lifecycle
                                                        OSLC                                 OSLC


   Management                                                                                         Start stubs
                                      Management
          OSLC                                                     Configure 
                                                                   endpoints             Service 
                                                   Trigger                            Simulation &                            Cloud + 
                             Track 
 Track                       work                  tests                                 Testing                             Mobile App 
 work                                                                                        OSLC                              store

                   Track                                           Configure                                    Monitor 
                   quality                                          agents                                     application
   Requirement                        Quality                                         Application 
   Management                         Management                                      Monitoring
          OSLC                           OSLC                                                OSLC



                                                                                                                    Track 
                    Link defect                                                                                     incident
                                                                    Incident 
                                                                   Management
                                                                      OSLC
What is your DevOps 
     Maturity?
12 Steps to better DevOps
1.  Do your developers and operators communicate the
    production realities and the application's requirements?
2. Do you version deployment configuration and scripts
    along with your source code?
3. Do you have patterns for platforms and applications,
    designed jointly by development and operations?
4. Can your developers launch and destroy production-like
    environments from those patterns?
5. Are your patterns based on reusable deployment
    configuration scripts?
6. Can you deploy an environment (platform and application)
    in one step?
7. Do you deploy your applications daily into production-like environments
    and verify them?
8. Do you link bugs and work items to changes in the application and
    configuration?
9. Do you associate tickets for production issues with relevant bugs
    opened for development to fix?
10. Do you have automated tests to validate your application and platform
    function and characteristics?
11. Do you monitor software against expectations after deploying your
    application?
12. Do you have a delivery pipeline exposed through a summary
    dashboard to assess delivery velocity?
                                                http://ibm.co/LaKtJt
Where to get more 
         information?
• My Blog:
  o http://sdarchitect.wordpress.com/tag/devops/



• Enterprise DevOps blog
  o http://ibm.co/JrPVGR



• 6 Ways for Enterprises to Adopt DevOps blog
  o http://ibm.co/xq71xY
www.ibm.com/software/rational
Acknowledgements and disclaimers
Availability: References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries 
in which IBM operates. 


The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views.  They are provided for 
informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant.  
While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS‐IS without 
warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this 
presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or 
representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of 
IBM software.


All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have 
achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in these materials is intended to, 
nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other 
results.
© Copyright IBM Corporation 2012. All rights reserved.
  – U.S. Government Users Restricted Rights ‐ Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

IBM, the IBM logo, ibm.com, Rational, the Rational logo, Telelogic, the Telelogic logo, Green Hat, the Green Hat logo, and other IBM products and 
services are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If 
these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols 
indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be 
registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark 
information” at www.ibm.com/legal/copytrade.shtml
www.ibm.com/software/rational

© Copyright IBM Corporation 2012.  All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any 
kind, express or implied.  IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials.  Nothing contained in these materials is intended to, nor shall 
have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement  governing the use of IBM 
software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates.  Product release dates and/or capabilities 
referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature 
availability in any way.  IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines 
Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

Mobile DevOps - Trends and Chellenges