Government agencies and contractors must build the competency to deliver software with greater predictability, quality, speed and frequency. The alternative of higher costs and late delivery is no longer acceptable - politically, economically or justifiably. This session will share findings from client experiences and lay out the DevOps approach that is help agencies and their contractors address the challenges inherent in software application delivery.
5. Market trends and expected client business outcomes
Dependent on rapid Software Innovation and Delivery
Rapidly deliver
differentiating
digital content,
applications and
services to fulfill
citizen needs &
obtain new users
Systems of Interaction
Systems of Engagement
SAP
Provide
differentiating client
experience to meet
the needs of
empowered citizens
Leverage cloud
to enable flexibility and offer
new services
HR
DB
Continuous
client experience
5
Systems of Record
ERP
Cloud-based
Services
Internet of Things
Integrate, evolve
and maintain
stability of services
and comply with
any regulations
and comliance
Partner value
chain
Enable a software
supply chain of
Government
System Integrators
Deliver software based innovation
to enable machine to machine
interactions
6. Organizations that effectively leverage software innovation
outperform their competitors... yet few are able to deliver it
effectively
86
%
of companies believe software delivery
is important or critical
But only…
25
%
of those who
leverage software
delivery today
69
%
outperform
those who don’t
leverage software delivery effectively today
6
Source: “The Software Edge: How effective software development drives competitive advantage,” IBM Institute of Business Value, March 2013
7. Innovation is increasingly being driven by software in
Government
Mobile is one of the fastest
growing areas of Government
it will be the most widely used
channel by 2020, if not sooner
7
The F-22 Raptor fighter jet
contains over 1.7 million lines of
software code
8. But realities stall software-driven innovation
Complexities in software delivery compounded by key pressures
Complex, Multi-platform
Systems and Applications
Increasing
Mandates
62% of companies have agile projects
requiring integration with legacy systems
2010 Spending in U.S. on governance,
risk and compliance was $29.8 billion
Globally Distributed Software
and Product Supply Chains
50% of outsourced projects
are expected to under perform
Cost
Reduction
70% budget locked in maintenance and
37% of projects go over budget
Unpredictability
in Software Delivery
62% of projects fail to meet
intended schedule
8
Changing Requirements
and Time to Market
30% of project costs are due to rework
and poor execution of requirements
10. Deming Cycle
William Deming – American statistician
Major influencer of Japanese manufacturing and
business
alit
Qu
y
Famous for Plan-Do-Check-Act cycle (Deming
Cycle)
– I like “Adjust” versus “Act”
PDCA cycles found in DevOps
10
William
Edwards
Deming
11. DevOps
Enterprise capability for continuous software delivery that enables clients
to seize market opportunities and reduce time to customer feedback
DevOps Lifecycle
Customers
Business
Owners
Development/
Test
Operations/
Production
Continuous Innovation, Feedback and Improvements
Accelerate Software Delivery
Balance speed, cost, quality and risk
Reduce time to customer feedback
11
11
12. DevOps approach: Apply Lean principles to software
innovation and delivery to create a continuous feedback
loop with customers
1
1. Get ideas into production fast
2. Get people to use it
3. Get feedback
2
Line-ofbusiness
Customer
Adopt DevOps approach to continuously
manage changes, obtain feedback and
, deliver changes to users
3
Eliminate any activity
that is not necessary
for learning what
customers want
13. Case Study: A state department providing medical insurance
Key Benefits:
The state department of welfare needed
testing integration capabilities to meet the
testing needs resulting from the expanded
scope of their infrastructure, so that the
State could be compliant with the Patient
Protection and Affordable Care Act.
IBM software solution was the best fit for the
department’s current and future IT needs -offering a complete cross platform software
solution, including application development,
testing, middleware and services
The department needed to
leverage a test and integration
solution to help meet the state’s
needs for development and test of
the state’s health care offerings.
Rational Test Workbench and
Rational Performance Test Server
will lead to an application
virtualization solution with
Rational Test Virtualization Server.
13
14. Starting Point: Release and Deploy
Case Study: WebMD
Accelerate delivery of usable
increments for continuous
outside-in feedback
Provide a continuous delivery
pipeline that automates deployments
to test and production environments
Reduce overhead with push-button
deployments
Quantify change stability and
measure transparently for
compliance
“Before it took 2 days to deploy
a build, with uDeploy and our new
processes, it takes us
less than 60 seconds.”
Matthew Wilson
Director, Consumer Web Operations
15. How We are Improving - An Example from CLM (RQM, RTC, RRC)
Measures of Operation
Lifecycle
Measurements
2008
2010
2012 –
2013
Total
Improvement
Project Initiation
30 days
10 days
2 days
28 days
Groomed Backlog
90 days
45 days
On-going
89 days
Overall Time To Development
120 days
55 days
3 days
117 days
Iteration Length
6 weeks
4 weeks
4 weeks
2 weeks
6
8
3
N/A
36 hours
12 hours
8 hours
400 %
N/A
18 hours
< 1hour
17 hours
Iteration Test Time
5 days
2 days
4 hours
4 days
Total Deployment Time
2 days
8 hours
2 hours
2 days
Overall Time To Production
9 days
3 days
15 hours
8 days
12 Months
12 Months
3 Months
9 Months
Number of Iterations
Composite Build Time
BVT Availability
Time Between Releases
17. DevOps Solution: Adoption paths, open platform and key
capabilities
Business
Owner
Service
Developer
Platform
Operations
Target
Customer
Plan /
Measure
Develop /
Test
Release /
Deploy
Monitor /
Optimize
Portfolio
Management
Code
Deployment
Monitoring
Requirements
Test
Provisioning
Customer
Feedback
Collaboration
Change & Configuration
Management
Jazz, OSLC and Open Standards Platform
Dashboards/
Analytics
18. Adopting DevOps: People/Culture
• Common Business Objectives
• Vision Statement
• Common measures of Success
• Across suppliers – System Integrators, other agencies
• The case for and against ‘DevOps Team’
Team Lead
Team
Member
Users
External
System Team
Auditors
Product
Owner
Team
Member
18
Team
Member
Domain
Experts
Senior
Executives
Operations
Staff
Gold Owner
Support Staff
19. Adopting DevOps: People/Culture
• Building a DevOps Culture
• There is no Silver Bullet
• Right People are needed
Team Lead
Team
Member
Users
External
System Team
Auditors
Product
Owner
Team
Member
19
Team
Member
Domain
Experts
Senior
Executives
Operations
Staff
Gold Owner
Support Staff
22. Adopting DevOps: Process
• DevOps as a Business Process
• A Process to get Capabilities from Ideation to Value
• Apply Lean Thinking to Processes
22
23. Adopting DevOps: Process
Key Capabilities
1. Collaborative Development & Continuous
Integration
2. Continuous Business Planning
3. Continuous Release and Deploy
4. Continuous Testing
5. Continuous Feedback
24. Adopting DevOps: Process
1. Collaborative Development and Continuous Integration
Mobile App
Developent
Teams
Back-end
Services
Developent
Teams
http://bit.ly/PRQ4a7
25. Adopting DevOps: Process
2. Continuous Business Planning
3. Continuous Release and Deploy
4. Continuous Testing
5. Continuous Feedback
http://bit.ly/PRQ4a7
27. Adopting DevOps: Technology
/* REXX */
/* REXX BIND processor sample */
trace o
Arg PACKAGE DBRM
rcode = 0
/* Set BIND options */
SYSTEM = 'DSN9'
i = Pos('(', DBRM)
len = Length(DBRM)
LIBRARY = Substr(DBRM, 1, i - 1)
MEMBER = Substr(DBRM, i + 1, len - i - 1)
OWNER = 'DEVDBA'
ACTION = 'REPLACE'
VALIDATE = 'RUN'
ISOLATION = 'CS'
EXPLAIN = 'NO'
QUALIFIER = 'DEVDBA'
Call Bind_it
Exit rcode
Bind_it:
/* Create a bind control statement as a single long line. Then */
/* queue that into a FIFO stack */
DB2_Line = "BIND PACKAGE("PACKAGE")" ||,
" LIBRARY('"LIBRARY"')" ||,
" MEMBER("MEMBER")" ||,
" OWNER("OWNER")" ||,
" ACTION("ACTION")" ||,
" VALIDATE("VALIDATE")" ||,
" ISOLATION("ISOLATION")" ||,
" EXPLAIN("EXPLAIN")" ||,
" QUALIFIER("QUALIFIER")"
/* Write the bind control statement to the data queue and execute */
/* DB2I to perform the bind. */
queue DB2_Line
queue "End"
Address TSO "DSN SYSTEM("SYSTEM")"
rcode = RC
Return
• Infrastructure as Code/Software
Defined Environments
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"
28. Adopting DevOps: Technology
• Common Collaboration Tools
• Common Work Item Management Tool
• Dashboards to show status/progress
28
30. DevOps Solution: Adoption paths, open platform and key
capabilities
Business
Owner
Service
Developer
Platform
Operations
Target
Customer
Plan /
Measure
Develop /
Test
Release /
Deploy
Monitor /
Optimize
Portfolio
Management
Code
Deployment
Monitoring
Requirements
Test
Provisioning
Customer
Feedback
Collaboration
Change & Configuration
Management
Jazz, OSLC and Open Standards Platform
Dashboards/
Analytics
31. UrbanCode: premier Release and Deploy Automation Solution
Enabling clients to more rapidly deliver mobile, cloud, big data and traditional
applications with high quality and low risk
IBM UrbanCode Release
IBM UrbanCode Deploy
•
•
•
•
•
31
Simplifies deployment automation for
applications
Manage configurations across
environments
Intelligent deployment artifact tracking
Higher quality with repeatable, reliable,
and governed processes
Technology plugins supported out of the
box
•
•
•
•
•
Define, manage, and coordinate
operational releases
Aggregates applications into single
release
Phases to support quality and geo
dispersed deployments
Coordinate manual and automated tasks
Replaces manual spreadsheets and
documents
32. Improve Delivery Lifecycle with Software Defined Environments
Build Automation
Build Automation
SCM
SCM
Pull
changes
Publish build
IBM PureApplication System
SmartCloud Orchestrator
Execute application
deployment and
manage settings
across environments
Environments
Provision platform
DEV
DEV
DEV
DEV
DEV
DEV
QA
QA
PROD
PROD
Patch/update
Platform Config Management
IBM Endpoint
IBM Endpoint
Manager
Manager
Deploy early and
Deploy early and
often to ensure
often to ensure
higher quality and
higher quality and
faster releases
faster releases
using repeatable,
using repeatable,
reliable, and
reliable, and
managed
managed
automation
automation
33. Application Deployment vs Environment Provisioning
Capabilities
Security, approvals and promotion of
applications through different stages.
Application
Application
Automated Deployment of all
components of Application (DB, Web,
Mobile)
IBM UrbanCode
Deploy
Middleware
Middleware
Cloud
Provisioning
(IBM
PureApplication
System)
Middleware
Middleware
Packaged
Packaged
Software
Software
Packaged
Packaged
Software
Software
OS
OS
OS
OS
Compute | |
Compute
Storage
Storage
Compute | |
Compute
Storage
Storage
Network
Network
Cloud Management
Automated Middleware configuration
required for Application Deployment
Discover MW Configuration for WAS
Virtual System Pattern Creation and
Provisioning
Self Service Portal for VM Provisioning
Image Library (Search / Compare,
Versioning, and SW Stacks)
Basic Single Image Composition,
Manipulation of images with preconfigured middleware
Multi-tenancy, Isolation, Rapid ,
Scalable Provisioning
Cloud Administration
34. Virtual System Patterns
VirtualAppliance
Appliance
Virtual
Operating
system
Software
application
Operating
system
Software
application
Virtual
HTTP
Appliance
Server
Metadata
Virtual
Application
Appliance
Server
Virtual
Application
Appliance
Server
Virtual Appliances
Operating
system
Metadata
Metadata
Operating
system
Virtual Application
Patterns
Metadata
Virtual System
Patterns
• Standard software installation
and configuration on OS
• Automated deployment of
middleware topologies
• Images created through
extend/capture
• Traditional administration
and management model
• Traditional administration and
management model
• Application and infrastruture
driven elasticity
• Highly automated
deployments using expert
patterns
• Business policy driven
elasticity
• Built for the cloud
environment
• Leverages elastic workload
management services
• Infrastructure driven elasticity
Virtual Appliances
Standard TCO
existing applications
Virtual System Patterns
Improved TCO
virtualized applications
Virtual Application Patterns
Best TCO
cloud applications
35. Continuous Delivery to Cloud
The freedom to provision a version of a full stack or incrementally deploy an application version
into an already provisioned environment
IBM UrbanCode Deploy
Blueprint
Blueprint
Resource
Resource
Application
Application
Template
Template
Environments | Processes |
Configurations
Import pattern
Deploy app
Create env
from pattern
Capture cloud pattern to be used
for creating an Environment
Incremental deployment of
application builds to cloud
environments
Map the application to multiple
cloud patterns
DEV
DEV
DEV
DEV
DEV
DEV
QA
QA
PROD
PROD
36. Using Chef Solo to configure a Component
Chef is a ruby-based automation
platform created by Opscode
Chef Solo runs a local client to
“converge” the node which just
means execute the automation Replace tokens in the
Optionally install chefOptionally install chefsolo onto the host, or
solo onto the host, or
pre-install into virtual
pre-install into virtual
image
image
Replace tokens in the
*_node.json files which
*_node.json files which
are included in the
are included in the
component artifacts
component artifacts
We can embed Chef recipes in a
Component version, and use
properties known to UCD to drive
customization of the recipe
– Example: replace token with value of
database hostname, which will then by
used by the recipe to configure the
connection
Invoke chef-solo –N
Invoke chef-solo –N
<nodeName> to
<nodeName> to
configure the host
configure the host
37. Application-centric middleware configuration management
Middleware
Administrator
-orApplication
Developer
Deployment
Automation
Developer
2 - Plugin
Artifact Library
3 - Import
4 - Assemble
5 - Publish
Exemplar
WAS Cell
6 – Define
Deployment
Process
Cluste
Cluste
rr
WAR
WAR
templa
templa
DB
DB
te
te
Application
EAR
EAR
WAS
Configuration
Template
Application Deployment Automation
WAS Configuration Template Creation
Dev
QA
Prod
Application Environments
38. IBM UrbanCode
Deploy v6.0
Accelerate continuous testing with Service
Virtualization
1
IBM UrbanCode Deploy
RTW plugin
Test
Deplo
y
Dev
Dev
QA
QA
RTVS plugin
3
Rational Test Workbench
2
Confi
gure
Databases
Mainframe
applications
Third-party
Services
Virtualized services
Rational Test Virtualization Server
Deploy what is ready, virtualize the rest - Enable continuous integration testing and
progressive deployments throughout the software delivery lifecycle for complex applications
Automate the creation of virtual test environments as part of the end-to-end DevOps
process Establish a virtual system pattern with automated deployment to standardize and share
test environments quickly and easily across projects and teams
Enable an end-to-end Agile software delivery process Increase the frequency of releases by
testing earlier in the development cycle and deploying reliably to pre-production and production
environments..
39. IBM UrbanCode
Deploy v6.0
DevOps for Mobile
IBM UrbanCode Deploy
RTW Mobile
IBM UrbanCode Release
IBM UrbanCode Build
Mobile Application
Deploy Process
Worklight
Console
Accelerate delivery of mobile apps focusing
on quality and user experience – Automate
deployment of Worklight mobile applications as
part of end-to-end delivery process.
Continuous Feedback and Optimization
using Tealeaf helps monitor user sentiment
and usage, letting teams react to poor
feedback before it spirals
Application
Center
adapter
.wlapp
Binary
(IPA/APK)
40. IBM UrbanCode Deploy v6.0 – Plug-ins
•
•
•
•
40
51 plug-ins from15 different vendors and open source organizations
Broad range of plugins supported:
•
Application servers
•
Databases
•
Messaging platforms
•
Test automation
•
Issue tracking systems
•
Operating system services
•
Cloud platforms
•
Issue tracking
•
Even more…
Plug-ins can be downloaded for free from
http://plugins.urbancode.com/IBMUrbanCodeDeploy
Dedicated team focused on rapid delivery of new and updated plug-ins
IBM Confidential: NDA
41. Example DevOps Tool Chain
Incrementally adopt when/if needed
Rational Focal Point
Rational Requirements Composer
IBM UrbanCode Release
Line of
Business
SmartCloud Orchestrator
IBM Pure Application System
IBM UrbanCode Deploy
Jenkins
IBM UrbanCode Build
Rational Application Developer
Rational Team Concert
Rational Quality Manager
Rational Test Workbench
Rational Test Virtualization Server
SmartCloud Application Performance Management
41
Mandatory closing slide (1 of 2)
Acknowledgements and disclaimers
IBMers must include This mandatory “Acknowledgements and Disclaimers” slide at the end of your presentation before the closing “Thank You” slide.
- You will need to customize the “Acknowledgements and Disclaimers” text in red appropriately.
Main Point: We know organizations have a gap between the software delivery capabilities they need to succeed and the ones they have in house currently. Successful organizations know that when they improve their abilities in this area, they increase their success.
In fact a recent IBV study where organizations self-reported that... Insights from 435 executives in 58 countries, spanning 18 industries
85% realize and reported it is important to critical
Only 25% say they are able to fully leverage software delivery effectively
So there is a gap -- but when companies that can close the resulting execution gap stand to benefit.
Almost 70 percent of the companies currently leveraging software development for competitive advantage outperform their peers from a profitability standpoint
TRANSITION – so there is a huge opportunity for our clients to close that gap…let’s move to the next slide and talk about how
--------------------------------------------------------------------------------------------------
Note: Outperformers were determined by a self-assessment of profitability against peers in the industry, ranging from 1 (Significant underperformers) to 5 (Significant outperformers) Significant outperformers were ranked as a 5, Average performers a 3-4 and Underperformers 1-2
new Rational/WebSphere IBV Study "The Software Edge - How effective software development drives competitive advantage"
This study examined the correlation between software delivery competency and industry competitive advantage
Insights from 435 executives in 58 countries, spanning 18 industries
Roles included executives at director level and above in IT and other software organizations
Software delivery refers to all areas of development, operations, and support within IT and other development / engineering organizations
“There was 54% of the companies who said they believe software is critical and 32 percent who called it moderately important – so that’s 86 percent of the respondents say software is either critical or moderately important and that points to the need for better tooling for software development and delivery.” said Randy Newell, director of capabilities marketing for IBM Software Group with a focus on the Rational brand.
Today we operate in a wave of innovation called the Wave of Smarter Products and Services. This is driven by unprecedented connectivity between systems, processes and infrastructure.
Software is the primary driver of this Wave of innovation. Because it is through software that businesses are able to create products and services that are increasingly instrumented, interconnected, and intelligent. This software is not only driving innovation but also competitive differentiation for our clients.
You can see it in the area of mobile applications, where new business models are exploding.
For example, Deloitte predicts mobile banking will soon surpass online banking as the most widely used banking channel.
It is also evident in the automotive industry, where a typical automobile today includes 10 million lines of code. That’s more than a fighter jet.
But innovating through software isn’t easy. The process underlying software-driven innovation is software and systems delivery – and delivery has become more challenging than ever.
The systems and applications being built today are more powerful and interconnected than every before– but they are also more complex. This makes them harder to build, harder to verify, and harder to manage.
This complexity is made worse by the need for faster delivery, driven by today’s very competitive landscape. Customers expect the “next new thing” faster than ever before.
And yet a recent IBM study determined that approximately 60% of software projects fail to meet their intended schedule.
That said, there are companies that are aggressively driving new innovation through software, and they are finding ways to overcome these challenges, and gain competitive advantage.
They are doing this by transforming their entire approach to software and systems delivery.
From the Agenda:
In this “new normal,” the most forward thinking companies will: Establish an enterprise capability for accelerated delivery of software that enables them to seize market opportunities and reduce time to customer feedback, improve governance while balancing quality and cost
The Patient Protection and Affordable Care Act is more commonly referred to as Obamacare.
Continuous release and deployment: Continuous release and deployment provides a continuous delivery pipeline that automates deployments to test and production environments. It reduces the amount of manual labor, resource wait-time, and rework by means of push-button deployments that allow higher frequency of releases,reduced errors, and end-to-end transparency for compliance.
ibm.com/software/products/us/en/continuousdelivery/
WebMD:
1. Problem: WebMD offers numerous online applications that provide information to clients on critical health issues. As they made the move to an agile methodology, they needed to reduce the cost of deployments in able to be more iterative.
2. Solution: Deployment automation for both test and production leveraging UrbanCode’s uDeploy.
3. Result: Before it took 2 days to deploy a build, with uDeploy, it takes us less than 60 seconds.
<<Maciej>>
UrbanCode improves software delivery enabling continuous release and deployment via application release automation, helping to drive down costs, speed time to market and reduce risk.
Seamless process flow for incremental, full stack provisioning and application deployment automation
Extend UrbanCode Deploy to capture Resource Templates
Describe desired pattern to use from the cloud
Associate application components to pattern resources
Deployment Automation Developer or Deploy Administrator imports the AMC Plug-in into Deploy. The Plug-in is configured to auto-discover WAS installs on specific resources so when the agent comes on-line it will invoke the AMC plug-in which will discover the cell topology and create WAS Cell and WAS Cluster subresources back on the Deploy server.
A Middleware Administrator or Application Developer unzips the AMC plug-in on a system that has connectivity to the exemplar WAS cell
The Middleware Administrator or Application Developer will run a script packaged in the AMC plug-in that will prompt for some information, then discover and import configuration from the exemplar WAS cell
The AMC template creation script will ask the user for a base product template (e.g. WAS v8.5) and to chose what configuration data from the imported cell should be added (either only cell scoped configuration or a cluster configuration). Note that if any custom tokens are required (e.g. host specific information like JDBC connection URL, etc.), then the Middleware Administrator or Application Developer will need to open the appropriate template file up for editing and insert the tokens manually. They will then need to create appropriate properties on the appropriate WAS Cell/Cluster resources to ensure the token substitution happens correctly during deployment (this is not directly shown in the diagram above for the sake of clarity).
The AMC template creation script will prompt the user for information required to connect to a Deploy server, including the name of the WAS configuration component and will create/update the template in CodeStation.
The Deployment Automation Developer should now have all the Deploy artifacts he needs to assemble the Application including deploy/undeploy processes
The application, including WAS configuration, can be deployed and promoted across all environments defined in the application
Industry pattern is to target a subset of devices and progressively roll out – Facebook, Mailbox
Optional slide. Graphic is available in English only.
Mandatory closing slide (2 of 2)
Thank You Slide (available in English only).