devops best practices for mobile apps n.
Skip this Video
Loading SlideShow in 5 Seconds..
DevOps Best Practices for Mobile Apps PowerPoint Presentation
Download Presentation
DevOps Best Practices for Mobile Apps

DevOps Best Practices for Mobile Apps

258 Vues Download Presentation
Télécharger la présentation

DevOps Best Practices for Mobile Apps

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. DevOps Best Practices for Mobile Apps Sanjeev Sharma, as played by John Lanuti IBM Software Group

  2. Him • 18 year in the software industry • 15+ years he has been a solution architect with IBM • Areas of work: • DevOps • Enterprise Architecture • Agile Transformation • Mobile Development • Software Delivery Platforms • Software Supply Chains. • Blog @ • Twitter: @sd_architect Sanjeev Sharma IBM Software Group

  3. Me • 15 years in the software industry • 14 years with IBM, developer, PM, IT Specialist • Areas of work: • Application Development • Agile Transformation • Mobile Development • Application Lifecycle Management • Blog • Twitter: @johnlanuti John Lanuti IBM Rational

  4. Agenda • What is DevOps? • DevOps for Mobile – Challenges • DevOps for Mobile – Best Practices • Implementing DevOps for Mobile • Continuous Integration and Test • Continuous Delivery • Service Virtualization

  5. What is DevOps?

  6. Addressing delivery challenges Gap Gap Customers Dev & Test Teams Line of Business Operations Team Agile Dev Dev Ops Desire for fast and continuous innovation Requirements Code & Tests Business Services Water-SCRUM-Fall? Addressed by... Addressed by...

  7. Key Concepts • Continuous Integration • Continuous Delivery • Continuous Test • Continuous Monitoring • Infrastructure as Code • Build and Delivery Pipeline

  8. 1. Continuous Integration

  9. 2. Continuous Delivery

  10. 3. Continuous Test

  11. 4. Continuous Monitoring

  12. 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"

  13. 6. Build & Delivery Pipeline

  14. DevOps for Mobile - Challenges

  15. DevOps for Mobile - Challenges • Mobile Apps are the front-end to a complex(enterprise) back-end system • Mobile Apps are rapidly becoming a critical user interface to enterprise systems

  16. Mobile Application Architecture: LinkedIn

  17. DevOps for Mobile - Challenges • Fragmented Platforms • iOS forked when iPad came out. Android forked multiple times with each vendor, Kindle Fire, Nook…

  18. DevOps for Mobile - Challenges • HTML5, PhoneGap/ Cordova still cannot fully replace nativeApps in every situation • Mobile Web is not an acceptable solution. Users want an App • Hybrid Apps are the optimal solution for Apps with non-native needs

  19. DevOps for Mobile - Challenges • App stores add additional asynchronous deployment step • Continuous Delivery become ‘deliver and wait’

  20. Delivery Pipeline Build, Package, & Unit Test Application Binaries & Platform Configuration .jsp .html Deploy .java chef recipes .sh Environment Running System Deployable Artifacts Source Artifacts Library Source Control Management

  21. IBM’s Four DevOps Principles • Collaborate across Disciplines • Develop and test against a production-like system • Deploy frequently • Continuously validate operational quality characteristics

  22. DevOps Best Practices for Mobile Apps

  23. Continuous Integration and Continuous Delivery Ensure end-to-end traceability across all assets Practice continuous integration Maintain separate streams for each mobile OS, SDK supported Use automated build and deploy scripts DevOps Best Practices for Mobile Apps

  24. Continuous Testing and Continuous Monitoring Test each build on simulated and physical devices Virtualize and simulate back end services Monitor the deployed mobile app and back end services’ performance DevOps Best Practices for Mobile Apps

  25. Mobile App Delivery Governance of provisioning profiles, certificates and API keys Use a Private Development App Store to test device deployment Convert user feedback into user stories DevOps Best Practices for Mobile Apps

  26. iOS Developer Enterprise Services Developer Android Developer Continuous Integration and Continuous Delivery • End-to-endTraceability, across all Components Deliver App Code Library Source Control Build Fetch Deliver App Code Automate SourceArtifacts Deployable Artifacts Deliver Back-end Services

  27. Continuous Integration and Continuous Delivery • Practice Continuous Integration Mobile App Developent Teams Enterprise Services Developent Teams

  28. Continuous Integration and Continuous Delivery • Maintain separate build areas for each SDK version <manifestxmlns:android="" ... > <uses-sdkandroid:minSdkVersion="4"android:targetSdkVersion="15"/> ... </manifest>

  29. Continuous Integration and Continuous Delivery • Automated Build and Deploy scripts Automated Scripts

  30. Continuous Testing and Continuous Monitoring • Test each build on each supported device

  31. Continuous Testing and Continuous Monitoring Mobile App • Simulate Back-end Services App Under Test Third-partyServices Third-partyServices Simulated Service Actual Service Portals Directory Identity Enterprise Service Bus Data Warehouse Mainframe Heterogeneous Environments Mobile App Test Environments to Production

  32. Continuous Testing and Continuous Monitoring • Monitor deployed apps and back end services performance

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

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

  35. Mobile App Delivery • Convert App Store feedback into user stories

  36. Implementing DevOps for Mobile Apps

  37. Mobile Delivery Pipeline Mobile IDE API keys, Provisioning Profiles… Build, Package, & Unit Test Application Binaries & Platform Configuration .jsp .html .java Deploy chef recipes .sh Deployable Artifacts Source Artifacts Source Control Management Library Enterprise Services IDE Environment Running System

  38. DevOpsReference Architecture Release Engineering Continuous Integration Deployment Library Continuous Delivery Development Operations Incident Management Release Management Change Management Source Control Management Configuration Automation Service Simulation Environment Provisioning Automation Application Monitoring Data Management Quality Management Requirements Management Test Automation Mobile App IDE Enterprise Services IDE

  39. IBM’s DevOps for Mobile Solution – Continuous Integration and Test

  40. IBM Mobile FoundationEnabling the development and delivery of mobile apps IBM Mobile Foundation • Includes: • IBM Worklight • IBM WebSphere Cast Iron • IBM Endpoint Manager for Mobile Devices • Plus New Services Offering • IBM Software Services for Mobile Foundation Build, connect, manage and secure your mobile enterprise

  41. IBM WorklightOpen, cost-effective, cross-platform app development • App development using native and/or familiar web technologies: • HTML5 • CSS3 • JavaScript • App delivery in variety of forms: • Mobile Web app • Hybrid app • Native Compatible with prominent HTML5 libraries and tools:

  42. Worklight mobile platform overview ← Worklight Studio The most complete, extensible development environment with maximum code reuse and per-device optimization Worklight Server Mobile middleware offering unified push notifications, version management, security and integration Worklight Runtime Components Extensive libraries and client APIs that expose and interface with native device functionality and the Worklight Server Worklight Console A web-based console for real-time analytics and control of your mobile apps and infrastructure

  43. Mobile simulator to simplify unit test

  44. Worklightruntime architecture Worklight Server Device Runtime Application Code Client-side App Resources Server-side Application Code • Cross Platform Technology JSON Translation Direct Update Stats Aggregation • Security and Authentication • Back-end Data Integration • Post-deployment control and Diagnostics Mobile Web Apps Authentication Unified Push Notifications Adapter Library

  45. Application distribution (for development and test) • A cross platform private mobile application store similar to public app stores but focused on the needs of an organization or a team • Key capabilities: • delivers distribution and management of mobile applications within a company / teams • easy distribution of iOS and Android apps within a team • provides versioning and updates • centralizes rating and feedback information • controls who can modify or install an application • easy to install and simple to run

  46. Mobile Application Lifecycle Management Open Lifecycle Integration Platform Rational Solution for Collaborative Lifecycle Management IBM Worklight Development Business Design Code Test Deploy Test Traceability acrossthe entire development lifecycle Construct, debug, and test mobile UIs Application Lifecycle Management Mobile Application Platform IBM provides the only comprehensive mobile development solution currently in the market combining a mobile application platform, construction tools, and lifecycle management

  47. Continuous Integration for Mobile

  48. IBM’s DevOps for Mobile Solution – Continuous Delivery

  49. IBM SmartCloud Continuous Delivery

  50. IBM SmartCloud Continuous Delivery packaging Extending Agile Development with Continuous Delivery Build -> Publish -> Deploy -> Test Mobile ALM (Rational Team Concert) IBM SmartCloud Provisioning Agile Development Deployment to Virtual Systems