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

Loading in 2 Seconds...

play fullscreen
1 / 61

DevOps Best Practices for Mobile Apps - PowerPoint PPT Presentation


  • 242 Views
  • Uploaded on

DevOps Best Practices for Mobile Apps. Sanjeev Sharma, as played by John Lanuti IBM Software Group. 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'DevOps Best Practices for Mobile Apps' - khuong


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
devops best practices for mobile apps
DevOps Best Practices for Mobile Apps

Sanjeev Sharma, as played by John Lanuti

IBM Software Group

slide2

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 @ bit.ly/sdarchitect
  • Twitter: @sd_architect

Sanjeev Sharma

sanjeev.sharma@us.ibm.com

IBM Software Group

slide3

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 http://attaboyjohn.wordpress.com/
  • Twitter: @johnlanuti

John Lanuti

jlanuti@us.ibm.com

IBM Rational

agenda
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
addressing delivery challenges
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...

http://ibm.co/PRQkWL

key concepts
Key Concepts
  • Continuous Integration
  • Continuous Delivery
  • Continuous Test
  • Continuous Monitoring
  • Infrastructure as Code
  • Build and Delivery Pipeline
1 continuous integration
1. Continuous Integration

http://bit.ly/PRQ4a7

2 continuous delivery
2. Continuous Delivery

http://bit.ly/PRQ4a7

3 continuous test
3. Continuous Test

http://bit.ly/PRQ9dQ

4 continuous monitoring
4. Continuous Monitoring

http://bit.ly/PRQ9dQ

5 infrastructure as code
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"

devops for mobile challenges1
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
mobile application architecture linkedin
Mobile Application Architecture: LinkedIn

http://engineering.linkedin.com/testing/continuous-integration-mobile

devops for mobile challenges2
DevOps for Mobile - Challenges
  • Fragmented Platforms
    • iOS forked when iPad came out. Android forked multiple times with each vendor, Kindle Fire, Nook…
devops for mobile challenges3
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
devops for mobile challenges4
DevOps for Mobile - Challenges
  • App stores add additional asynchronous deployment step
    • Continuous Delivery become ‘deliver and wait’
delivery pipeline
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

ibm s four devops principles
IBM’s Four DevOps Principles
  • Collaborate across Disciplines
  • Develop and test against a production-like system
  • Deploy frequently
  • Continuously validate operational quality characteristics
slide23
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

slide24
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

slide25
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

slide26

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

slide27

Continuous Integration and Continuous Delivery

  • Practice Continuous Integration

Mobile App Developent Teams

Enterprise Services Developent Teams

slide28

Continuous Integration and Continuous Delivery

  • Maintain separate build areas for each SDK version

<manifestxmlns:android="http://schemas.android.com/apk/res/android" ... >

<uses-sdkandroid:minSdkVersion="4"android:targetSdkVersion="15"/>

...

</manifest>

slide29

Continuous Integration and Continuous Delivery

  • Automated Build and Deploy scripts

Automated Scripts

slide30

Continuous Testing and Continuous Monitoring

  • Test each build on each supported device
slide31

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

slide32

Continuous Testing and Continuous Monitoring

  • Monitor deployed apps and back end services performance
slide33

Mobile App Delivery

  • Governance of provisioning profiles, certificates and API keys
slide34

Mobile App Delivery

  • Use a ‘Private’ App store to test device deployment
slide35

Mobile App Delivery

  • Convert App Store feedback into user stories
mobile delivery pipeline
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

devops reference architecture
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

ibm mobile foundation enabling the development and delivery of mobile apps
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

ibm worklight open cost effective cross platform app development
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:

worklight mobile platform overview
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

worklight runtime architecture
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

application distribution for development and test
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
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

ibm smartcloud continuous delivery
IBM SmartCloud Continuous Delivery

https://jazz.net/products/smartcloud-continuous-delivery/

ibm smartcloud continuous delivery packaging
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

extending ibm smartcloud continuous delivery
Extending IBM SmartCloud Continuous Delivery

Optional and alternative Integrations

  • Extending CLM with Continuous delivery
  • Deployment to Cloud & Virtual Systems

IBM SmartCloud Provisioning

IBM PureSystems

IBM Workload Deployer

Continuous Delivery

Mobile ALM (Rational Team Concert)

what is service simulation and test virtualization
Test Virtualization enables to create “virtual services”:

Virtual Services simulate the behavior of an entire application or system during testing

Virtual Services can run on commodity hardware, private cloud, public cloud

Each developer, tester can easily have their own test environment

Developer and testers continue to use their testing tools (Manual, Web performance, UI test automation)

What is Service Simulation and Test Virtualization?

Public Cloud

Private Cloud

Mobile App Under Test

Routing Service

ContentProviders

Business Partners

EJB

Collaboration

SharedServices

Archives

Third-partyServices

Portals

File systems

Directory Identity

Enterprise Service Bus

Data Warehouse

Mainframe

Heterogeneous Environments

Mobile App Under Test

Capture& Model

Databases

Mainframe

applications

Third-partyServices

Packaged apps, messaging services, etc.

Virtual Services

Messaging 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 (third-party services) to replicate via traditional hardware-based virtualization approaches
ibm rational test virtualization solution
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.

MobileApp under Test

Actual Service/App

Virtual Service/App

Incremental Integration Testing

ibm rational test virtualization solution for continuous integration and testing

App Server

IBM Rational Test Virtualization Solution for continuous integration and testing

CRM

Order Mgr

Virtual Machines

Cloud Environment

Virtual LabManager

VM

Catalog

  • 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
  • Smoke Tests
  • Sandboxes
  • Self-provisionning

Build

Assets

ProductIncrement

slide57
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

slide58
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

slide59
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

where to get more information
Where to get more information?
  • My Blog:
    • http://bit.ly/sdarchitect
  • Leveraging DevOps in a water-SCRUM-fall World
    • http://ibm.co/PRQkWL
  • IBM Enterprise DevOps blog
    • http://ibm.co/JrPVGR
slide61

Learn how you can make the most of Agile, DevOps, Cloud, Mobile, Big Data, Social Business and other key trends to release products faster, improve processes, increase quality, and meet business objectives.

Get detailed Rational technical training trough hundreds of breakouts, hands-on technical workshops, open labs and a wide variety of certification testing

Explore Innovation Labs, observe interoperability in action and meet face to face with experts in a high-energy Exhibit Hall.

  • Innovate 2013: The IBM Technical Summit is the event for software practitioners and product developers. Attendees will learn to improve the practices, predictability and economics of software delivery through detailed Rational education and insights into key technical trends!

Network with over 4000 attendees from around the world and collaborate with your peers from a wide variety of roles, industries and locations.

Enjoy top-notch keynotes and entertainment, including strategic presentations, dynamic guest speakersand customer success stories.

Register by March 15 and save $300!

Top Five Reasons to Attend

ibm.com/innovate