Dev ops for cross platform mobile modeveast 12


Published on

Mobile Apps are not stand alone applications running on a mobile device anymore. Apps today are complex systems with back-ends hosted on clouds, with application servers, databases, API calls to external systems, and of course a powerful app running on a mobile device. Mobile App development and deployment is further complicated with todays need for supporting multiple mobile devices, with multiple OSes, multiple versions of the OSes, multiple form factors and varied network, CPU, GPU and memory specs.

DevOps - the new and growing movement addresses these development and deployment challenges. The goal of DevOps is to align Dev and Ops by introducing a set of principles and practices such as continuous integration and continuous delivery. Mobile apps take the need for these practices up a level due to their inherent distributed nature. Multi-platform mobile apps need even more care in applying DevOps principles as there are multiple platforms to be targeted, each with its own requirements, quirks, and nuanced needs.

This talk will introduce attendees to the basic practices of DevOps and then take a look at the DevOps challenges specific to cross-platform Mobile apps and present Best Practices to address them.

Published in: Technology

Dev ops for cross platform mobile modeveast 12

  1. 1. DevOps Best Practices  of cross‐platform  Mobile Apps Sanjeev Sharma IBM Software Group MoDevEast 2012 McLean, VA
  2. 2. 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 IBM Software Group o Agile Transformation o Mobile Development o Software Delivery Platforms o Software Supply Chains.• Blog @• Twitter: @sd_architect
  3. 3. What is DevOps?
  4. 4. Addressing delivery challenges Water-SCRUM-Fall? Dev & Test OperationsCustomers Line of Business Teams Team Gap GapDesire for fastand continuous Business Requirements Code & Testsinnovation Services Addressed by... Addressed by... Agile Dev Dev Ops
  5. 5. Key Concepts1. Continuous Integration2. Continuous Delivery3. Continuous Test4. Continuous Monitoring5. Infrastructure as Code6. Build and Delivery Pipeline
  6. 6. 1. Continuous Integration
  7. 7. 2. Continuous Delivery
  8. 8. 3. Continuous Test
  9. 9. 4. Continuous Monitoring
  10. 10. 5. Infrastructure as Code package "apache2" do package_name node[apache][package] end service "apache2" do case node[platform_family] when "rhel", "fedora", "suse" service_name "httpd" # If restarted/reloaded too quickly httpd has a habit of failing. # This may happen with multiple recipes notifying apache to restart - like # during the initial bootstrap. restart_command "/sbin/service httpd restart && sleep 1" reload_command "/sbin/service httpd reload && sleep 1"
  11. 11. 6. Build & Delivery  Pipeline
  12. 12. Delivery Pipeline Build,  Package, & Unit Test .jsp .html Application  Binaries &  Platform  Deploy .java Configuration .sh chef  recipes Environment Deployable Artifacts Running System Source ArtifactsSource Control  LibraryManagement
  13. 13. Four DevOps Principles1. Collaborate across Disciplines2. Develop and test against a production-like system3. Deploy frequently4. Continuously validate operational quality characteristics
  14. 14. Mobile DevOps  challenges
  15. 15. 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
  16. 16. Cross Platform Mobile Application  Architecture: LinkedIn ntinuous‐integration‐mobile
  17. 17. DevOps Best Practices  for Cross Platform  Apps
  18. 18. Continuous Integration and  Continuous Delivery 1. End-to-end Traceability, across all iOS Developer platforms Source Library Control Deliver App Code Build Fetch Automate Android Developer Source Deployable Artifacts Artifacts Enterprise Services Developer
  19. 19. Continuous Integration and  Continuous Delivery 2. Practice Continuous IntegrationMobile AppDevelopent TeamsEnterprise ServicesDevelopent Teams
  20. 20. Continuous Integration and  Continuous Delivery 3. Maintain separate build areas for each SDK version <manifest xmlns:android="" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
  21. 21. Continuous Integration and  Continuous Delivery 4. Automated Build and Deploy scripts Automated  Scripts
  22. 22. Continuous Testing and Continuous Monitoring 5. Test each build on each supported device
  23. 23. Continuous Testing and  Continuous Monitoring 6. Simulate Back-end Services Mobile App App Under Test Third-party Third-party Services ServicesTest Environments to Production Directory Portals Actual Service Identity Simulated Service Mobile App Enterprise Service Data Warehouse Mainframe Bus Heterogeneous Environments
  24. 24. Continuous Testing and Continuous Monitoring 7. Monitor deployed apps and back end services performance
  25. 25. Mobile App Delivery 8. Governance of provisioning profiles, certificates and API keys
  26. 26. Mobile App Delivery 9. Use a ‘Private’ App store to test device deployment
  27. 27. Mobile App Delivery 10. Convert App Store feedback into user stories
  28. 28. The Mobile DevOps Cycle Define user Write app code. Define app experience. Check in to build & deploy Capture app shared team scripts. Place requirements repository under version control Capture end Automaticallyuser feedback. build app. Get Filter and feed profiles & keys back into app from governed requirements source Monitor Run automated Auto-deploy appperformance of app testing. into dev App mobile app & Simulate back Store. back end end services Coordinate with systems test mgmt
  29. 29. Where to get more  information?• My Blog: o o• Leveraging DevOps in a water-SCRUM-fall World o• IBM Enterprise DevOps blog o