DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group



Similar documents
Best Practices for Building Mobile Web

IBM MobileFirst Hands-on Labs environment with Linux on z Systems and z/os

Collaborative DevOps Learn the magic of Continuous Delivery. Saurabh Agarwal Product Engineering, DevOps Solutions

Introduction to IBM Worklight Mobile Platform

Take full advantage of IBM s IDEs for end- to- end mobile development

Develop enterprise mobile applications with IBM Rational software

DevOps: Multiplatform Application Deployment

SAP Mobile Platform Intro

IBM MobileFirst Launch David Lee Heyman

Build and Secure Mobile Apps in the Enterprise. Ed Brill Ian Robinson Josh Lambert

The Future of Testing: How Service Virtualization Changes the Game in Testing Complex Applications

Increased Agility with Integration Testing

IBM MobileFirst Application Development: Build and Deliver Mobile Apps Quickly with IBM Worklight Foundation Cloud Edition IBM Corporation

Integrating Mobile apps with your Enterprise

MobileFirst Application Development & Lifecycle Management für mobile Anwendungen

Use service virtualization to remove testing bottlenecks

Mobile Cross Platform Development really? Jonathan Marshall, IBM Mobile Technical Specialist IBM Corporation

DevOps for the Mainframe

Solutions for Quality Management in a Agile and Mobile World

DevOps: Development Challenges and New Approaches

Middleware- Driven Mobile Applications

Shifting Enterprise Development into the Fast Lane

What s Happening to the Mainframe? Mobile? Social? Cloud? Big Data?

Developing and deploying mobile apps

zenterprise The Ideal Platform For Smarter Computing Developing Hybrid Applications For zenterprise

Agenda. Success Stories with OpenShift. 11:15-11:45 am. OpenShift Tech Overview 9:40-10:30 am. Red Hat Mobile on OpenShift 10:45-11:15 am

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

2015 IBM Continuous Engineering Open Labs Target to better LEARNING

Improve your mobile application security with IBM Worklight

Bridge Development and Operations for faster delivery of applications

HP ALM Masters 2014 Connected, collaborative mobile application development for the enterprise HP Anywhere

Initial Value Proposition (IVP)

SAP HANA Cloud Platform, Portal Service: Overview SAP Cloud Experience and SAP Portal Product Management May 2016

Learn How to Leverage System z in Your Cloud

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

WebSphere Application Infrastructure

Introducing. Cathal McGloin, VP & General Manager, Mobile Platforms Javier Perez, Director of Product Management and Global Consulting

Axway API Portal. Putting APIs first for your developer ecosystem

Building a Mobile App Security Risk Management Program. Copyright 2012, Security Risk Advisors, Inc. All Rights Reserved

MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper

Microsoft SOA Roadmap

IBM Worklight Mobile Application development and Management IBM Corporation

Platform as a Service: The IBM point of view

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Cloud Services for DevOps: Next-gen PaaS Through MBaaS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

System Center 2012 Suite SYSTEM CENTER 2012 SUITE. BSD BİLGİSAYAR Adana

Microsoft Training and Certification Guide. Current as of December 31, 2013

MOBILE MICROAPPS. The shortest path to enterprise mobility

HP Application Lifecycle Management

Enterprise Mobile App Management Essentials. Presented by Ryan Hope and John Nielsen

The Virtualization Practice

Service Orchestration

Take Your Rocket U2 Apps Mobile with Rocket LegaSuite. Greg Mummah, Product Manager Rocket Software

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

Cisco Integration Platform

Securely. Mobilize Any Business Application. Rapidly. The Challenge KEY BENEFITS

Building native mobile apps for Digital Factory

Implementing Microsoft Azure Infrastructure Solutions 20533B; 5 Days, Instructor-led

Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

Course 20533B: Implementing Microsoft Azure Infrastructure Solutions

What s Happening to the Mainframe? Mobile? Social? Cloud? Big Data?

How To Test On An Hp Mobile Device

Security to Connect Back-end APIs with HTML5 Cross Platform Apps

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

IBM Bluemix. The Digital Innovation Platform. Simon

Lunch and Learn: BlueMix to Mainframe making development accessible in the

What is new for HP LoadRunner and Performance Center 11.52

Enterpise Mobility Lexicon & Terminology

SUSE Cloud 2.0. Pete Chadwick. Douglas Jarvis. Senior Product Manager Product Marketing Manager

Software Development In the Cloud Cloud management and ALM

Extending Oracle Applications on Mobile Using Oracle MAF and Oracle Mobile Security

Cross-Platform Development: Target More Platforms and Devices with a Minimal Amount of Source Code

POINT-TO-POINT vs. MEAP THE RIGHT APPROACH FOR AN INTEGRATED MOBILITY SOLUTION

DevOps Course Content

Implementing Microsoft Azure Infrastructure Solutions

Making Mobile a Reality

Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud

MANAGEMENT SUMMARY INTRODUCTION KEY MESSAGES. Written by: Michael Azoff. Published June 2015, Ovum

Course 20533: Implementing Microsoft Azure Infrastructure Solutions

Successful Mobility. Matej Lavric Sales Leader for Mobile CEE

Kony Mobile Application Management (MAM)

Plan for Success with a Hybrid Cloud! Thanks to IBM Power Systems OpenStack SoftLayer and UrbanCode

Developing in the Cloud Environment. Rosalind Radcliffe IBM Distinguished Engineer, IBM Academy of Technology

Mobilize Your ERP with ADF Mobile

Armedia. Drupal and PhoneGap Building Mobile Apps

Considerations for Adopting PaaS (Platform as a Service)

Operational Decision Manager Worklight Integration

Transcription:

DevOps Best Practices for Mobile Apps Sanjeev Sharma IBM Software Group

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

Agenda What is DevOps? DevOps for Mobile Challenges DevOps for Mobile Best Practices Implementing DevOps for Mobile o o o Continuous Integration and Test Continuous Delivery Service Virtualization

What is DevOps?

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

Key Concepts 1. Continuous Integration 2. Continuous Delivery 3. Continuous Test 4. Continuous Monitoring 5. Infrastructure as Code 6. Build and Delivery Pipeline

1. Continuous Integration http://bit.ly/prq4a7

2. Continuous Delivery http://bit.ly/prq4a7

3. Continuous Test http://bit.ly/prq9dq

4. Continuous Monitoring http://bit.ly/prq9dq

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"

6. Build & Delivery Pipeline

DevOps for Mobile Challenges

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

DevOps for Mobile Challenges Fragmented Platforms o ios forked when ipad came out. Android forked multiple times with each vendor, Kindle Fire, Nook

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

DevOps for Mobile Challenges App stores add additional asynchronous deployment step o Continuous Delivery become deliver and wait

Mobile Application Architecture: LinkedIn http://engineering.linkedin.com/testing/co ntinuous integration mobile

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

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

DevOps Best Practices for Mobile Apps

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

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

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

Continuous Integration and Continuous Delivery 1. End-to-end Traceability, across all ios Developer Components Android Developer Deliver App Code Source Control Build Library Fetch Automate Source Artifacts Deployable 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 Third-party Services App Under Test Third-party Services Test Environments to Production Actual Service Simulated Service Mobile App Data Warehouse Directory Identity Portals Mainframe Enterprise Service 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

Implementing DevOps for Mobile Apps

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

Mobile Continuous Delivery Pipeline Backend Development Common tools Private Dev App Store Publish Public App Store Install Mobile Development Execute tests Get Packages, Profiles, Keys Mobile Device Op Engineer Notify results SCM Repository Store changes Trigger build Post results to build Publish packages, Profiles, Keys Media Library Publish packages Build Engine(s) Put configuration version Get Packages Automation Framework Apply configurations to system Deployed Mobile Application Execute tests Virtual System Application or Mobile Developer Enterprise Services IDE Mobile App IDE Provision pattern with build Provision system from pattern Cloud Provisioning System Install

DevOps Reference Architecture Release Engineering Continuous Integration Continuous Delivery Deployment Library Development Operations Change Management Source Control Management Service Simulation Configuration Automation Incident Management Release Management Requirement s Management Quality Management Test Automation Environment Provisioning Automation Application Monitoring Data Management Enterprise Services IDE Mobile App IDE

IBM s DevOps for Mobile Solution Continuous Integration and Test

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

IBM Worklight Open, 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:

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

Mobile simulator to simplify unit test

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

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

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

Continuous Integration for Mobile

IBM s DevOps for Mobile Solution Continuous Delivery

IBM SmartCloud Continuous Delivery https://jazz.net/products/smartcloud continuous delivery/ 49

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 50

Extending IBM SmartCloud Continuous Delivery Optional and alternative Integrations Extending CLM with Continuous delivery Deployment to Cloud & Virtual Systems Mobile ALM (Rational Team Concert) Continuous Delivery IBM SmartCloud Provisioning IBM PureSystems IBM Workload Deployer Design Management Continuous Integration Test Automation Deployment Automation Performance Management Incident Management IBM Rational Software Architect Design Manager IBM Rational Build Forge. Hudson. Jenkins. IBM Rational... Quality Manager IBM Green Hat IBM Rational Automation Framework Chef IBM SmartCloud Application. Performance Management IBM SmartCloud Control Desk.. 51

2012 Product Implementations Rational Build Forge Jenkins Release Engineering Continuous Integration Continuous IBM SmartCloud Delivery Continuous Delivery Deployment Library Change Management Rational Team Concert Development Source Control Management Rational Green Hat Service Simulation Rational Automation Configuration Framework Automation Operations Chef IBM SmartCloud Control Desk Incident Management Release Management Requirement s Management Rational Requirement Management Quality Management Rational Quality Management Selenium Test Automation Rational Performance Tester Rational Functional Tester Environment Provisioning IBM Automation IBM SmartCloud PureApplication Provisioning System IBM Workload Deployer Application Monitoring IBM SmartCloud Application Performance Management Data Management Required product At least one is required

IBM s DevOps for Mobile Solution Service Virtualization

Routing Service What is Service Simulation and Test Virtualization? Public Cloud Mobile App Under Test Collaboration Third-party Services Portals Data Warehouse Directory Identity File systems Mainframe Content Providers Archives Private Cloud Enterprise Service Bus Heterogeneous Environments Business EJB Partners Shared Services Messaging Services Capture & Model Databases Mobile App Under Test Mainframe applications Third-party Services Packaged apps, messaging services, etc. Virtual Services System dependencies are a key challenge in setting up test environments: Unavailable/inaccessible: Testing is constrained due to production schedules, security restrictions, contention between teams, or because they are still under development Costly 3rd party access fees: Developing or testing against Cloud based or other shared services can result in costly usage fees Impractical hardware based virtualization: Systems are either too difficult (mainframes) or remote (thirdparty services) to replicate via traditional hardwarebased virtualization approaches Test Virtualization enables to create virtual services : ovirtual Services simulate the behavior of an entire application or system during testing ovirtual Services can run on commodity hardware, private cloud, public cloud oeach developer, tester can easily have their own test environment odeveloper and testers continue to use their testing tools (Manual, Web performance, UI test automation) 54

IBM Rational Test Virtualization Solution Test Virtualization is an enabler for continuous Integration Testing Services, applications, systems are introduced into the continuous integration cycle in a prioritized, controlled fashion. Actual Service/App Virtual Service/App Mobile App under Test Incremental Integration Testing

IBM Rational Test Virtualization Solution for continuous integration and testing Avoid time spent installing and configuring software just to discover basic build issues Smoke tests can be integrated as part of the continuous integration process through deployment automation and test virtualization Smoke test results are made available to the entire team to shorten resolution Cloud Environment Order Mgr CRM Virtual Lab Manager VM Catalog App Server Virtual Machines Assets Build Product Increment Smoke Tests Sandboxes Self provisionning

Wrap up: DevOps Best Practices for Mobile Apps

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

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

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

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