2. 2
Agenda
Current Business Problems and Symptoms
Why DevOps
What DevOps is Not and What it is…
Culture and Mind set change
Focus Areas
Continuous Integration / Delivery / Deployment
Conclusion
Appendix
5. Why DevOps? Put Simply…
Your competition is already doing this.
Increase Velocity.
Reduce Downtime.
Reduce Human Error.
6. What DevOps is Not / Common Myths
DevOps is all about tools
DevOps involves only Development and Operations
There is only “One Way” to do DevOps
DevOps is about reducing the staff by half
DevOps is 100% end to end Automation
DevOps only works well with Startups
7. What is DevOps?
Take 1 of 3
Change / Modify /
Test Features
Enhance Stability /
Services
DevOps isn't one team's job. It's everybody's job. And DevOps
culture is all about shared responsibility. That means a shift toward
transparency, communication, and collaboration across development,
IT/ops, and "the business“.
https://www.atlassian.com/team-playbook/examples/devops-culture
8. What is DevOps?
Take 2 of 3
Set of practices that emphasize the collaboration and
communication of both software developers and
information technology (IT) professionals while automating
the process of software delivery and infrastructure changes.
(Wikipedia)
Approach to bridge the gap between agile software
development and operations. (agileweboperations.com)
Union of people, process, and products to enable
continuous delivery of value to our end users. (Donovan
Brown, Principal DevOps Program Mgr., Microsoft -
http://donovanbrown.com/post/what-is-devops)
Cultural and operational model that fosters collaboration to
enable high performance IT to achieve business goals. (DASA) Source: Wikipedia
14. DevOps – Concepts and Jargons
Continuous Integration (CI)
Continuous Delivery (CD)
Configuration Management
Infrastructure as Code (IaC)
Application Performance Monitoring/Management (APM)
Automated Testing
Improved communication and collaboration
15. What is Continuous Integration (CI)?
Source: Carnegie Mellon University’s Software Engineering Institute
Simply put, CI is the process
of integrating code into a
mainline code base
Source:
https://devops.com/continuous-
integration-vs-continuous-delivery-
theres-important-difference/
Development practice that
requires developers to
integrate code into a
shared repository several
times a day.
Source:
https://www.thoughtworks.com/con
tinuous-integration
16. Continuous Integration (CI) – Key Elements
Version/Source
Control
Code Stability
Code Quality
Code Coverage
Automated
Testing
Build
Automation
Frequent
Commits Stable Build
Availability
Test Outcome
Results
Availability
17. Why CI?
Early detection of bugs / issues
Immediate feedback on system-wide impact of local
changes
Enforces discipline of frequent automated testing
Faster time to release with repeatable processes
Constant availability of a "current" build for testing,
demo, or release purposes
Automated test suites require considerable amount of
work to set up and also for ongoing needs.
Value added depends on the quality of tests and how
testable the code really is
Builds queueing up can slow down everyone
Work involved to set up a build system
Partial code could easily be pushed and therefore integration
tests could fail until the feature is complete
https://en.wikipedia.org/wiki/Continuous_integration#Costs_and_benefits
Downsides
Benefits
18. CI Tool Box Usage
https://blog.1and1.com/2016/08/11/continuous-integration-trends-from-bitnamis-user-survey/
19. What is Continuous Delivery / Deployment (CD)?
Take 1 of 2
Source: puppet
20. What is Continuous Delivery / Deployment (CD)?
Take 2 of 2
Continuous Deployment
Continuous Delivery
Essentially, it is the practice of releasing every good build to users
While continuous deployment implies continuous delivery the converse is not true
https://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/
Implementing continuous delivery means making sure your software
is always production ready throughout its entire lifecycle - that any
build could potentially be released to users at the touch of a button
using a fully automated process in a matter of seconds or minutes.
What makes continuous deployment special is deploying every change that passes the
automated tests to production
Continuous deployment is the next step of continuous delivery. (Source: puppet)
21. Continuous - Integration vs Delivery vs Deployment
http://www.saviantconsulting.com/blog/difference-between-continuous-integration-continuous-delivery-and-
continuous-deployment.aspx
DevOps
22. CI / CD Pipeline (With Feedback System)
Source: https://devops.com/i-want-to-do-continuous-deployment/
Build + Integration Release + Deploy
23. DevOps – Using the right tools to achieve DevOps
Please see Appendix section for a more elaborate list of tools
Tech is evolving at a great pace and so are the needs of business, but IT needs more time to respond to these market changes
We often heard of No deployment one week from Black Friday or Thanks Giving, so despite we have fixes for many known issues, we defer our deployment just to avoid risk (There is a fear of unknown)
Despite slow release cycles we still have multiple bugs
So we spend majority of our time in fixing the issue rather than enhancing the product or innovating
I’m sure each one of you on this WebEx is aware of this term Continuous Integration (CI). Irrespective of the role you play (PM, Dev, QA or even for that matter creative) would be familiar with the term CI or have at least hear this term CI.
CI is all about minimizing code conflicts and maximizing efficiency.
It describes an automated process designed to build a project whenever the codebase changes.
The entire process starts with developers committing code to a shared repository one or more times a day. It ends with the CI system successfully building the project from scratch.
What we get from CI:
Early Error Detection – A build failure is identified immediately after the code is merged in, making it easy to identify the broken commit(s)
Better Quality Code – Master branch is always deployable
Better Tested Code – Unit tests, end-to-end tests, and code coverage reports can be run automatically to ensure all tests pass and code coverage does not slip
Production Snapshot – Building from scratch means that the build on QA is going to be the same on UAT, which is going to be the same as production
Project Confidence
Continuous Delivery (CD) can be seen as a natural evolution from CI and agile software development practices.
WHO IS RESPONSIBLE FOR PRODUCTION SUPPORT?
Is your software confirmed to be in a shippable state every time a new feature or patch is added?
Does your team perform push-button deployments of any desired version of your software to any environment on-demand?
Do all of the stakeholders have immediate visibility into the production readiness of your systems?