Presentation on Mobile DevOps. Presented at MoDevTablet conference on Sept. 14th. Focuses on:
- What is DevOps?
- What are the challenges of DevOps for Mobile?
- Best practices for Mobile DevOps
Blog post: https://sdarchitect.wordpress.com/2012/09/15/slides-for-my-presentation-on-mobile-devops/
2. Please note
(Mandatory legalese)
IBM’s statements regarding its plans, directions, and intent are subject to
change or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our
general product direction and it should not be relied on in making a purchasing
decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be
incorporated into any contract. The development, release, and timing of any
future features or functionality described for our products remains at our sole
discretion.
Performance is based on measurements and projections using standard IBM benchmarks
in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including considerations such as the
amount of multiprogramming in the user’s job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an
individual user will achieve results similar to those stated here.
3. Me
• Sanjeev is a 18 year veteran of the
software industry. For the past 15+
years he has been a solution
architect with IBM. His current area
of expertise includes Enterprise Sanjeev Sharma
Architecture, Agile Transformation, @sd_architect
sanjeev.sharma@us.ibm.com
Mobile Development, Software
Executive IT Specialist
Delivery Platforms, DevOps and IBM Rational Specialty
Software Supply Chains. He has Architect
IBM Software Group
spoken at several international Ashburn, VA
industry conferences and written
internal and external articles.
• Sanjeev blogs @
sdarchitect.wordpress.com
5. Why DevOp? ‐ Delivery
Challenges
Dev & Test Operations
Customers Line of Business
Teams Team
1st 2nd
Gap Gap
Desire for fast
and continuous Business
Requirements Code & Tests
innovation Services
6. Addressing delivery
challenges
Dev & Test Operations
Customers Line of Business
Teams Team
1st 2nd
Gap Gap
Desire for fast
and continuous Business
Requirements Code & Tests
innovation Services
Addressed by... Addressed by...
Agile Dev
Dev Ops
7. Agile development and delivery
Continuous Integration extends to Continuous Delivery
Build Publish
Design Agile Dev Deploy
Dev Test Test Ops
Prioritize Monitor
Continuous Feedback
Accelerated Delivery with Reduced Risk
8. Addressing only the first gap
Functional
Agile Testing
Dev Acceptance
Testing
Production
Operator
Setup
(weeks)
Install
Water-SCRUM-Fall?
CI builds are piling up
9. DevOps is…
A set of principles and values that
facilitate collaboration across
disciplines to…
People
• Enable rapid evolution of Process
deployed business services Information
• Reduce risk, decrease cost, and
improve quality across the portfolio
10. Three DevOps Principles
1. Develop and test against a
production-like system
2. Deploy frequently
3. Continuously validate
operational quality
characteristics
12. 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
15. 10 Mobile DevOps Practices
1. Common team repository, with
version control for all artifacts
Infrastructur
e Developer
Source Library
Control
Deliver
Application Build Fetch Automate
App
Developer Code
Source Deployable
Artifacts Artifacts
Tester
17. 10 Mobile DevOps Practices
3. Maintain separate build and
integration areas for each SDK
version supported
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
20. 10 Mobile DevOps Practices
6. End-to-end Testing:
o Virtualize back end services that are not
available during testing Mobile App
App Under Test Third-party
Third-party
Services Services
Test Environments to Production
Actual Service Directory Portals
Simulated Service Identity
Mobile App
Enterprise Service
Data Warehouse Mainframe Bus
Heterogeneous Environments
26. Multi-stage Delivery Pipelines
Pipeline dashboards
provide feedback for
Changes trigger Library the flow of changes
pipeline execution (deployables)
through the pipeline
Delivery Pipeline
Reporting/Dashboards/Analytics
QA Stage
SCM Build Dev
Pre-
Promote to
(Source code & Production
Stage Stage Production
configurations) Stage
Performance
Stage
Each stage defines
Approval gates with
tasks and
automated/manual Stages can be run in
configuration settings
approvals provide parallel
with entrance and exit
compliance checking
criteria
26
27. Capabilities Supporting DevOps
Generate automation
Deployment Pull configurations
Design
Continuous Configuration
Automation
Integration OSLC
OSLC
OSLC
Trigger Update
Delivery configuration
s Trigger
Pull deployment Deploy
changes Delivery Provisioning service
Pipeline Automation and App
Change Collaborative Lifecycle
OSLC OSLC
Management Start stubs
Management
OSLC Configure
endpoints Service
Trigger Simulation & Cloud +
Track
Track work tests Testing Mobile App
work OSLC store
Track Configure Monitor
quality agents application
Requirement Quality Application
Management Management Monitoring
OSLC OSLC OSLC
Track
Link defect incident
Incident
Management
OSLC
29. 12 Steps to better DevOps
1. Do your developers and operators communicate the
production realities and the application's requirements?
2. Do you version deployment configuration and scripts
along with your source code?
3. Do you have patterns for platforms and applications,
designed jointly by development and operations?
4. Can your developers launch and destroy production-like
environments from those patterns?
5. Are your patterns based on reusable deployment
configuration scripts?
6. Can you deploy an environment (platform and application)
in one step?
7. Do you deploy your applications daily into production-like environments
and verify them?
8. Do you link bugs and work items to changes in the application and
configuration?
9. Do you associate tickets for production issues with relevant bugs
opened for development to fix?
10. Do you have automated tests to validate your application and platform
function and characteristics?
11. Do you monitor software against expectations after deploying your
application?
12. Do you have a delivery pipeline exposed through a summary
dashboard to assess delivery velocity?
http://ibm.co/LaKtJt
30. Where to get more
information?
• My Blog:
o http://sdarchitect.wordpress.com/tag/devops/
• Enterprise DevOps blog
o http://ibm.co/JrPVGR
• 6 Ways for Enterprises to Adopt DevOps blog
o http://ibm.co/xq71xY