• No results found

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
61
0
0

Loading.... (view fulltext now)

Full text

(1)

DevOps Best Practices 

for Mobile Apps

(2)

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

(3)

Agenda

What is DevOps?

DevOps for Mobile – Challenges

DevOps for Mobile – Best Practices

Implementing DevOps for Mobile

o Continuous Integration and Test o Continuous Delivery

(4)
(5)

Addressing delivery challenges

Addressed by... Addressed by... Agile Dev Customers

Desire for fast and continuous innovation

Line of Business

Requirements

Dev & Test Teams

Code & Tests

(6)

Key Concepts

1. Continuous Integration

2. Continuous Delivery

3. Continuous Test

4. Continuous Monitoring

5. Infrastructure as Code

(7)

1. Continuous Integration

(8)

2. Continuous Delivery

(9)

3. Continuous Test

(10)

4. Continuous Monitoring

(11)

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.

(12)
(13)
(14)

DevOps for Mobile ‐ Challenges

Mobile Apps are the

front-end to a

complex(enterprise)

back-end system

(15)

DevOps for Mobile ‐ Challenges

Fragmented Platforms

o iOS forked when iPad came out. Android forked multiple times with each vendor,

(16)

DevOps for Mobile ‐ Challenges

HTML5, PhoneGap/

Cordova still cannot

fully replace native

Apps in every

situation

o Mobile Web is not an acceptable solution. Users want an App

(17)

DevOps for Mobile ‐ Challenges

App stores add

additional

asynchronous

deployment step

(18)

Mobile Application Architecture: 

LinkedIn

(19)
(20)

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

(21)
(22)

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

(23)

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

(24)

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

(25)

1. End-to-end

(26)
(27)

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>

(28)
(29)

5. Test each build on

each supported

device

(30)

6. Simulate Back-end

Services

Heterogeneous Environments Mobile App

Data Warehouse Mainframe Enterprise Service Bus Directory

Identity

App Under Test Third-party

Services

Portals

Third-party Services

Test Environments to Production Test Environments to Production

Actual Service Simulated Service Mobile App

(31)

7. Monitor deployed

apps and back end

services performance

(32)

8. Governance of

provisioning profiles,

certificates and API

keys

(33)

9. Use a ‘Private’ App

store to test device

deployment

(34)

10. Convert App Store

feedback into user

stories

(35)

Implementing 

(36)
(37)

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

(38)

Release Engineering Release Engineering Environment  Provisioning   Automation Configuration  Automation Change  Management Continuous  Delivery Quality  Management Source Control  Management g Requirement s  Management Continuous  Integration Test  Automation Deployment  Library Operations Development Application  Monitoring Incident  Management Service 

Simulation ManagementRelease

(39)

IBM’s DevOps for 

Mobile Solution –

(40)

IBM Mobile Foundation

Enabling the development and delivery of mobile apps

Build, connect, manage and secure your mobile enterprise

(41)

Compatible with prominent HTML5 libraries and tools: App development using

native and/or familiar web technologies:

• HTML5 • CSS3 • JavaScript

App delivery in variety of forms:

• Mobile Web app • Hybrid app • Native

IBM Worklight

(42)
(43)
(44)

Worklight Server Authentication JSON Translation Server‐side  Application Code Adapter Library Client‐side  App Resources Direct Update Mobile  Web Apps Unified Push  Notifications Stats  Aggregation Device Runtime Application  Code

• Cross Platform Technology

(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 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

(46)

Mobile Application Lifecycle 

Management

Mobile Application 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 Test Development Business Open Lifecycle Integration  Platform Traceability across the entire development lifecycle

Design Code Test Deploy

Construct, debug, and test mobile UIs

(47)
(48)

IBM’s DevOps for 

Mobile Solution –

(49)

IBM SmartCloud Continuous Delivery

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

(50)

IBM SmartCloud Continuous Delivery packaging

Build -> Publish -> Deploy -> Test

Extending Agile Development with Continuous Delivery

(51)

Design Management IBM Rational Software Architect Design Manager

Extending IBM SmartCloud Continuous 

Delivery

Performance Management IBM SmartCloud Application. Performance Management Incident Management IBM SmartCloud Control Desk..

IBM SmartCloud Provisioning

IBM PureSystems

IBM Workload Deployer Mobile ALM (Rational Team Concert) Continuous Delivery Deployment Automation IBM Rational Automation Framework Chef Continuous Integration IBM Rational Build Forge. Hudson…. Jenkins…. Test Automation IBM Rational... Quality Manager

IBM Green Hat

Extending CLM with  Continuous delivery

Deployment to Cloud  & Virtual Systems

51

(52)

Release Engineering Release Engineering Environment  Provisioning   Automation Configuration  Automation Change  Management Continuous  Delivery Quality  Management Source Control  Management g Requirement s  Management Continuous  Integration Test  Automation Deployment  Library Operations Development Application  Monitoring Incident  Management Service 

Simulation ManagementRelease

2012 Product Implementations

Data Management Rational

Build Forge Jenkins

(53)

IBM’s DevOps for 

Mobile Solution –

(54)

54

What is Service Simulation and Test 

Virtualization?

Test Virtualization enables to create “virtual

services”:

oVirtual Services simulate the behavior of an

entire application or systemduring 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) Capture &  Model Capture &  Model

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 Heterogeneous Environments Public Cloud Private Cloud

Data Warehouse Mainframe Service BusEnterprise Directory

Identity

File systems Collaboration

Mobile App Under Test Routing Service Third-party Services Portals Content Providers EJB Shared Services Archives Business Partners Messaging Services Databases Mainframe applications Mobile App Under

Test

Third-party Services Packaged apps, messaging services, etc.

(55)

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

IBM Rational Test Virtualization Solution

(56)

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

(57)

Wrap‐up: DevOps 

Best Practices for 

(58)

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

(59)

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

(60)

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

(61)

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

References

Related documents

Ecotoxicity The product contains a substance which is toxic to aquatic organisms and which may cause long-term adverse effects in the aquatic environment. Ecological information

Abstract: The forthcoming publication of the revised BS EN ISO 12215-5 is set to transform the structural design of most small crafts for the next decade, with the

L-4998, which affirmed the order of the Court of First Instance of Rizal dismissing the complaint of Jose Alcantara, Elias Benin and Pascual Pili (along with four other plaintiffs)

The study revealed higher prevalence of both lifestyle risk factors and related biomarkers for hypertension and coronary heart diseases among patients, despite the fact that

As shall be seen, in Malaysia and China, both local and national governments have played a central and leading role in encouraging the development of the

The most popular evenings for late opening (7pm or later) are Tuesday, Wednesday and Thursday. A few library services offered no evening opening. Few college library services

Slave controller modules are auxiliary cards that read the current, temperature, and voltage values of the batteries they are connected to and send this data to

Lutheran Church in America (ELCA) has called Pastor Bill Tesch as its Bishop-Elect.. A simply majority of votes