DevOps What is your definition of DevOps? Steve Boone DevOps SME @Steve_Boone 1
Jez Humble: Continuous Delivery DevOps is much of the how of achieving continuous delivery 2
DevOps IBM s Definition: DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback 3
DevOps DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback Enterprise capability When we say that DevOps is an enterprise capability, we are saying quite a lot. First, that there is no single individual, team or tool that does DevOps. DevOps emphasizes systems thinking as opposed to silo d thinking. Continuous Software Delivery Many organizations successfully underwent Agile transformations but lack the rapid planning, testing, deployment and release capabilities to fully benefit from continuous software delivery. DevOps integrates agile development with continuous testing and deployment as well as continuous monitoring and customer feedback to assist in planning and backlog prioritization. That enables clients to seize market opportunities Why are we doing DevOps? Because traditional IT practices are too slow to meet the needs of our businesses. Companies increasingly compete on software and need to be able to rapidly change course, or exploit a new or transient market opportunity. The challenge before the industry is to become more nimble. DevOps focuses on building this nimbleness as an enterprise capability. 4
DevOps DevOps is an enterprise capability for continuous software delivery that enables clients to seize market opportunities and reduce time to customer feedback Reduce time to customer feedback How do we know what to build? A big part is getting feedback from our users. While we often think of continuous delivery as a left to right process moving from development to production, knowledge flows right to left from test to development and from users in production towards the business. Periodic focus groups aren t enough. We want near instant feedback on each of our continuous, small releases. Are we making more money? Are the customers getting tasks done quicker? How often are error pages showing up? Do we need to rollback or change course? 5
The Hidden Factory Opportunity 50 % DevOps Transformation 20 % 50 % 80 % Waste Productive Hidden Factory= additional value you could create if you eliminated waste and redirected those resources at innovation 6
The Big Sources of Wasted Efforts: Find the Hidden Factory Lean / DevOps Transformation Non-Value-added waste Value-added production work Type of Waste Create Feature Deliver Feature Unnecessary Overhead Communicating ideas/knowledge Communicating between development and operations Unnecessary Re-work Tasks assigned back to developers from testing and usage Tasks assigned back to developers from production rollbacks Over-production Unnecessary functionality produced Unnecessary hardware, data center, personnel 7 7
DevOps approach: Apply Lean principles accelerate feedback and improve time to value Line-ofbusiness 1 2 3 Customer 1. Get ideas into production fast 2. Get people to use it 3. Get feedback Adopt DevOps approach to continuously manage changes, obtain feedback and, deliver changes to users Change speed must be an asset, Not an anchor Lean Transformation Non-Value-added waste Value-added production work 8
IBM DevOps Adoption Model Practices, tools and services to plan and execute a staged adoption of DevOps to improve business outcomes Inefficient Leaner Leaner and Smarter Steer Process-based Product-based Optimizing Develop/Test Process-heavy Agile More Predictable Deploy Manual Automated More Transparent Operate Silo-ed Collaborative More Continuous Efficiency Productive Waste Feedback Cycles 9
Why is DevOps Necessary? To better answer this question, we should first take a look at our past. Continuous Integration: Why do development teams choose to implement CI? The reason teams do CI is simple, it helps improve quality. The more often we integrate the code, and the more often we test the code by compiling it, the better we can determine the quality of the build. Once a build is complete, how do we further test for quality? To further push our quality metric we need to deploy the built artifacts to a target server, and execute our tests. 10
Agile and DevOps: it s about Quality Help deliver better quality software faster. DevOps is about ensuring quality into your Production environments. Over the past years development teams have been widely successful with CI and CD. However, one main problem still existed. The deployments were not being automated all the way into production. The automation process was not truly "end to end." 11 1
Difference between DEV and OPS DEV Very High Tempo Can rebuild database / app from scratch - No need for rollbacks Audit is a nice to have - Security, traceability, separation of duties New Environments are common OPS Slower Tempo Incremental updates to Database and App - Rollbacks are huge Audit is Critical New Environments are rare 12 1
DevOps: Agile reaches Ops 13 1
Common patterns impacting continuous delivery Failures due to inconsistent dev and production environments Bottlenecks trying to deliver more frequent releases to meet market demands Complex, manual, processes for release lack repeatability and speed Poor visibility into dependencies across releases, resources, and teams How do we ensure that we release and deploy What we want, When we want, Where we want! 14
Our customers are facing the same challenges 15 *Data based on UrbanCode customer survey
DevOps: Optimization of the Software Delivery Pipeline Optimizing the software delivery pipeline Reduce time to market Improve quality Decrease costs 17
The Pipeline is an Assembly Line 18
Balancing the Assembly Line Equal process throughput avoids backlogs Upgrading a proceeding process causes downstream backlogs Upgrading downstream process throughput reestablishes balance 19 19
Basic DevOps toolchain SCM Asset Repository Unit testing Test Automation Test Stubbing Environment Configuration Build / CI Server Delivery Pipeline Automated Monitoring 20
Continuous Delivery Pipeline 21
IBM DevOps Maturity Model 22
Multi-tier applications introduce additional complexity Client Tier Devices Middle Tier Server Back-end Data & Services Coordinating separate pipelines for each tier is critical Disparate teams Different processes Separate tools 23
The Need: Integrate systems of engagement with systems of record Integration Test By bringing together the culture, processes, and tools across the entire software delivery lifecycle spanning mobile to mainframe platforms Systems of Engagement (SoE) Apps Develop and Test Release and Deploy Monitor and Optimize Rapid Releases AppStore Web Apps Develop Databases and Test Monitor and Optimize Frequent Releases Databases Systems of Record (SoR) Apps Fewer Releases Production Environment 24 24
6-12 Month Delivery Cycles are still the Norm Quarters 35% Months 40% Delivery cycle profile across 600 business enterprises Weeks 15% Days <10% Feedback cycles Profile source: A commissioned study conducted by Forrester Consulting on behalf of IBM, May 2014 25
Slow deployment of application environments Release Deploy Environment Deploy Application UrbanCode Deploy helps deploy applications faster to static and long running environments Static environments are becoming a challenge for continuous application delivery New projects demand new environments for delivery pipeline Developers and testers don t have enough test environments Seasonal demands to scale up production environments Example: Building environments for a new delivery pipeline at Macquerie requires $1M and 6 months effort 26
Manual environment build-outs Development team Operations team I used the images you gave.. The application works in Dev environment I gave you all machine images, still your application doesn t work on production What did you do with your Dev / Test instances of the images? Both: Why is this not coming together? 27
Rapidly deploy application environments in 3 simple steps Application Middleware Configuration Middleware Compute, Storage, Network Configuration Policies 1. Create stacks Describe full stack environments using infrastructure building blocks like Images, Middleware scripts, and Application code OS / Platform Image Load Balancer Firewall Web Servers App Servers 2. Assemble multi-tier and scalable environment blueprints Assemble multi-tier application environments and define auto-scaling policies to meet operational needs. Database Servers VMware vcenter Virtual Datacenter Private Public 3. Portable across different virtualized infrastructure Provide portability across heterogeneous virtual datacenter, private and public clouds 28
UrbanCode Deploy with Patterns Application Pattern designer Design open, full stack application environments in a diagram or textual editor Design once, deploy anywhere Deploy full stack environments to multiple clouds Environment lifecycle management Manage infrastructure change and easily apply changes to existing environments Middleware Configuration Middleware Compute, Storage, Network Configuration OS / Platform Image Policies IBM UrbanCode Deploy with Patterns Delivery process automation Automated delivery process with integrated full stack environments Virtual Datacenter Private Public 29 VMware vcenter
Faster, repeatable, reliable full-stack deployment processes IBM Bluemix SCM Pull changes Build Automation IBM UrbanCode Deploy with Patterns Publish build IBM PureApplication System IBM Cloud Orchestrator IBM Cloud Manager with OpenStack Configure the entire stack with your cloud of choice. Iterate on application and infrastructure changes seamlessly. Promote changes to your cloud environments through the entire delivery lifecycle. App DEV DEV DEV App QA App PROD 30
Implementation Rollout Intended Audience: Development, Deployment & Operations Organizations Value Proposition Immediate ROI by automating the deployment process for a production application Develop and validate the usage model for a high priority subset of the future state solution Build tool experience on a core technical team Establish baselines and learnings for an enterprise rollout Resources (2-3 IBM Consultants) Solution Architect udeploy SME Project Manager Key Activities Establish Core Team Define Working Model Prepare Project Project Execution Confirm goals and expectations Establish Core Team Define solution architecture Install and configure UCD Mentor system administrator on installation Core Team Enablement Mentor core adoption team Define Usage Model UCD Solution Configuration Develop Training Material End User Training Production readiness and testing Launch Production Project Measure outcomes and capture improvements and lessons 31