DevOps for Mobile 
Apps: Challenges and 
   Best Practices 
         Sanjeev Sharma
       IBM Software Group

       DevOpsDays 2013
         New York, NY
Me
• 18 year in the software industry
• 15+ years he has been a solution
  architect with IBM
• Areas of work:
   o   DevOps                           Sanjeev Sharma
   o   Enterprise Architecture       sanjeev.sharma@us.ibm.com
                                          IBM Software Group
   o   Agile Transformation
   o   Mobile Development
   o   Software Delivery Platforms
   o   Software Supply Chains.
• Blog @ bit.ly/sdarchitect
• Twitter: @sd_architect
DevOps for Mobile ‐ Challenges
• Mobile Apps are the                                        Mobile App


  front-end to a                     Public Cloud
                                                                                Private Cloud

  complex(enterprise)          Routing
                               Service
                                         Collaboration
                                                                         Content
                                                                        Providers    EJB
                                                                                              Business
                                                                                              Partners



  back-end system
                                  Third-party                                               Shared
                                                                          Archives         Services
                                   Services
                                                         Portals
                                                                                        Messaging
                                                                                         Services
                                                                        File

  o Mobile Apps are rapidly                              Directory
                                                          Identity
                                                                      systems




    becoming a critical user             Data Warehouse            Mainframe
                                                                                 Enterprise
                                                                                Service Bus

    interface to enterprise                Heterogeneous Environments

    systems
DevOps for Mobile ‐ Challenges
• Fragmented Platforms
  o iOS forked when iPad came
    out. Android forked multiple
    times with each vendor,
    Kindle Fire, Nook…
• HTML5, PhoneGap/
  Cordova still cannot fully
  replace native Apps in
  every situation
DevOps for Mobile ‐ Challenges

• App stores add
  additional
  asynchronous
  deployment step
  o Continuous Delivery
    becomes ‘deliver and
    wait’
Mobile Application Architecture: 
          LinkedIn




               http://engineering.linkedin.com/testing/co
               ntinuous‐integration‐mobile
IBM’s Four DevOps Principles
1. Collaborate across
   Disciplines
2. Develop and test against
   a production-like system
3. Deploy frequently
4. Continuously validate
   operational quality
   characteristics
Continuous Integration and 
   Continuous Delivery


                 1. End-to-end
               Traceability, across all
    iOS
 Developer
                   Components
                              Source               Library
                              Control
               Deliver App
               Code                      Build                Fetch   Automate
   Android
  Developer

                             Source              Deployable
                             Artifacts            Artifacts



  Enterprise
   Services
  Developer
Continuous Integration and 
      Continuous Delivery

             2. Practice Continuous
                    Integration
Mobile App
Developent
  Teams




Enterprise
 Services
Developent
  Teams
Continuous Integration and 
   Continuous Delivery

        3. Maintain separate
          build areas for each
               SDK version
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
          <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
           ...
 </manifest>
Continuous Integration and 
   Continuous Delivery

   4. Automated Build and
         Deploy scripts
                              Automated 
                               Scripts
Continuous Testing and 
Continuous Monitoring

      5. Test each build on
          each supported
               device
Continuous Testing and 
 Continuous Monitoring


        6. Simulate Back-end
                Services
                                                    Mobile App



                                                      App Under Test         Third-party
                                      Third-party
                                       Services                               Services




Test Environments to Production
                                               Directory    Portals
           Actual Service                       Identity
           Simulated Service
           Mobile App                                                  Enterprise Service
                                  Data Warehouse       Mainframe              Bus

                                      Heterogeneous Environments
Continuous Testing and 
Continuous Monitoring

      7. Monitor deployed
        apps and back end
       services performance
Mobile App Delivery

       8. Governance of
        provisioning profiles,
        certificates and API
                 keys
Mobile App Delivery


   9. Use a ‘Private’ App
      store to test device
          deployment
Mobile App Delivery



   10. Convert App Store
       feedback into user
            stories
Mobile Delivery Pipeline
                            Mobile 
                             IDE

                                               API keys, 
                                               Provisioning 
                                               Profiles…


                        Build, Package,
.jsp            .htm    & Unit Test
                        Application 
                l       Binaries & Platform 
                        Configuration
       .java                                                   Deploy


.sh            chef 
               recipe
               s
                                                 Deployable Artifacts
 Source Artifacts
                                                 Library                Environment
Source Control           Enterprise                                     Running System
 Management               Services 
                            IDE
IBM SmartCloud Continuous 
             Delivery packaging
                Extending Agile Development with Continuous Delivery


                                 Build -> Publish -> Deploy -> Test




Mobile/Enterprise ALM 
 Suite (Rational Team 
        Concert)                                            IBM SmartCloud Provisioning



    Agile                                                       Deployment to 
 Development                                                    Virtual Systems


                                                                                          19
Where to get more 
          information?
• My Blog:
  o http://bit.ly/sdarchitect


• Leveraging DevOps in a water-SCRUM-fall World
  o http://ibm.co/PRQkWL


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

DevOps for Mobile - DevOpsDays, NY, 2013

  • 1.
    DevOps for Mobile  Apps: Challenges and  Best Practices  Sanjeev Sharma IBM Software Group DevOpsDays 2013 New York, NY
  • 2.
    Me • 18 yearin the software industry • 15+ years he has been a solution architect with IBM • Areas of work: o DevOps Sanjeev Sharma o Enterprise Architecture sanjeev.sharma@us.ibm.com IBM Software Group o Agile Transformation o Mobile Development o Software Delivery Platforms o Software Supply Chains. • Blog @ bit.ly/sdarchitect • Twitter: @sd_architect
  • 3.
    DevOps for Mobile ‐ Challenges • MobileApps are the Mobile App front-end to a Public Cloud Private Cloud complex(enterprise) Routing Service Collaboration Content Providers EJB Business Partners back-end system Third-party Shared Archives Services Services Portals Messaging Services File o Mobile Apps are rapidly Directory Identity systems becoming a critical user Data Warehouse Mainframe Enterprise Service Bus interface to enterprise Heterogeneous Environments systems
  • 4.
    DevOps for Mobile ‐ Challenges • FragmentedPlatforms o iOS forked when iPad came out. Android forked multiple times with each vendor, Kindle Fire, Nook… • HTML5, PhoneGap/ Cordova still cannot fully replace native Apps in every situation
  • 5.
    DevOps for Mobile ‐ Challenges • Appstores add additional asynchronous deployment step o Continuous Delivery becomes ‘deliver and wait’
  • 6.
    Mobile Application Architecture:  LinkedIn http://engineering.linkedin.com/testing/co ntinuous‐integration‐mobile
  • 7.
    IBM’s Four DevOps Principles 1. Collaborate across Disciplines 2. Develop and test against a production-like system 3. Deploy frequently 4. Continuously validate operational quality characteristics
  • 8.
    Continuous Integration and  Continuous Delivery 1. End-to-end Traceability, across all iOS Developer Components Source Library Control Deliver App Code Build Fetch Automate Android Developer Source Deployable Artifacts Artifacts Enterprise Services Developer
  • 9.
    Continuous Integration and  Continuous Delivery 2. Practice Continuous Integration Mobile App Developent Teams Enterprise Services Developent Teams
  • 10.
    Continuous Integration and  Continuous Delivery 3. Maintain separate build areas for each SDK version <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
  • 11.
    Continuous Integration and  Continuous Delivery 4. Automated Build and Deploy scripts Automated  Scripts
  • 12.
    Continuous Testing and  Continuous Monitoring 5. Test each build on each supported device
  • 13.
    Continuous Testing and  Continuous Monitoring 6. Simulate Back-end Services Mobile App App Under Test Third-party Third-party Services Services Test Environments to Production Directory Portals Actual Service Identity Simulated Service Mobile App Enterprise Service Data Warehouse Mainframe Bus Heterogeneous Environments
  • 14.
    Continuous Testing and  Continuous Monitoring 7. Monitor deployed apps and back end services performance
  • 15.
    Mobile App Delivery 8. Governance of provisioning profiles, certificates and API keys
  • 16.
    Mobile App Delivery 9. Use a ‘Private’ App store to test device deployment
  • 17.
    Mobile App Delivery 10. Convert App Store feedback into user stories
  • 18.
    Mobile Delivery Pipeline Mobile  IDE API keys,  Provisioning  Profiles… Build, Package, .jsp .htm & Unit Test Application  l Binaries & Platform  Configuration .java Deploy .sh chef  recipe s Deployable Artifacts Source Artifacts Library Environment Source Control  Enterprise  Running System Management Services  IDE
  • 19.
    IBM SmartCloud Continuous  Delivery packaging Extending Agile Development with Continuous Delivery Build -> Publish -> Deploy -> Test Mobile/Enterprise ALM  Suite (Rational Team  Concert)  IBM SmartCloud Provisioning Agile  Deployment to  Development Virtual Systems 19
  • 20.
    Where to get more  information? • My Blog: o http://bit.ly/sdarchitect • Leveraging DevOps in a water-SCRUM-fall World o http://ibm.co/PRQkWL • IBM Enterprise DevOps blog o http://ibm.co/JrPVGR