evaluation of devops & why devops - sudeepta guchhaitdevops emerged in 2009 when a group of...
TRANSCRIPT
DevOps Myth?? By: Sudeepta Guchhait
Session 01 10th Mar 2018
The pace of change in our economy is accelerating remorselessly
“Software is eating the world”
- Marc Andreessen
“By 2018, one-third of the top 20 market share leaders in most industries will be significantly disrupted by competitors that use the 3rd Platform to create new services and business models.”
- Marc Andreessen
“There's a new trend called "devops" that is sweeping the enterprise IT world and its become a life-or-death career situation for many IT departments…Like the manufacturers were in the 1970s and 1980s were fighting for their lives, today's IT departments are going to fight for their survival.”
- Jim Whitehurst CEO, Red Hat
Traditional Dev/Ops Organizations
Development Responsible and measured on delivery of business functionality Require and like changes Poor understanding of writing “operational” applications Operations Responsible and measured on stability & availability Dislike changes Maybe even outsourced No common tools Handover points, check points (operations desperately trying to control ensure
deliveries are living up to their demands) ○ Don’t catch problems ○ Slow and expensive Support is difficult, and often across Dev & Ops A lot of ‘blame games’ Development projects and support are also separated making it worse
Operations Handover
2 organizations with very different priorities and goals, different tools, different attitude and mentality, often 2 companies, working together to implement a pipeline for delivering software from developer to production
Bound to fail
What is DevOps?
Is it a culture? Is it a job title? Is it a team? Is it a way of organizing? Is it a tool stack? Or just a way of thinking? DevOps emerged in 2009 when a group of Belgian developers hosted DevOps Days,
which advocated collaboration between developers and operational staff. DevOps is agile IT operations delivery, required to match the cadence of agile IT
development. DevOps is the philosophy of unifying Development and Operations at the culture,
practice, and tool levels, to achieve accelerated and more frequent deployment of changes to Production (The IT Sceptic)
Definition of DevOps
The term “DevOps” typically refers to the emerging professional movement that advocates a collaborative working relationship between Development and IT Operations, resulting in the fast flow of planned work (i.e., high deploy rates), while simultaneously increasing the reliability, stability, resilience and security of the production environment (Gene Kim). DevOps is a set of practices and principles that aims to optimize organizational structure, working practices, processes and tooling, enabling all stakeholders to deliver higher-quality software, faster.
Deliveries: A dynamic platform (CI), where resources can be provisioned automatic on the fly The resources must be available for development, test and production An automatic CD Pipeline, that goes the whole way to production
Continuous Delivery & DevOps provides new possibilities for test environments for manual and automated tests
What DevOps is Not…
• A tool • A single tool • A set of tools • A team • Just another way to say "sys admin”
“DevOps is not NoOps. Nor is it akin to putting a Dev in Ops clothing. DevOps is synergistic, rather than cannibalistic."
The DevOps Vision
Business Agility
Infrastructure Choice
Technical Innovation
DevOps
• Time-to-Market Acceleration
• Experimentation • Rapid Prototyping • Flexible Partnering • IoT/IoS Support
• Docker Foundation • Lightweight Hybrid Cloud
with AWS, VMware, & OpenStack
• Late Binding Deployment • Common Application Design
and Operations • DevOps Automation • API Support • Microservices Architecture • Blue-Green Deployment • Application Scaling and
Elasticity • PaaS
DevOps Concepts: Key Capabilities & Benefits
DevOps Concepts: Key Challenges
DevOps principles – i.e. how we can move quickly
Make devtest frictionless
Less UAT, more SIT, enabled by automation
Leverage existing tool investments
Standards-based FOSS, if they do the
job – keep costs down
Prefer easy to adopt and use, and keep in mind skill availability
Improve maturity first, flexibility
second, standardisation third
Self-serve supported with champions,
training, knowledge repositories
Success will mean obsolescense for Dev
Services
Agile Concepts : Typical lifecycles
Agile : Scrum Board PRODUCT BACKLOG SPRINT BACKLOG
TO DO (SPRINT)
IN PROGRESS
BLOCKED FOR TESTING
IMPEDIMENTS DONE
RETROSPECTIVE SCRUM CEREMONY
Agile Concepts : Common Tools
DevOps Integration Model
PLAN RELEASE
Code Deploy
Build Operate
Test Monitor
Continuous Integration
& Continuous Deployment
• Continuous integration framework, standardization processes tools
• QA implementation for DevOps
• Planning & scheduling
• Automated build deployment
• Unit testing, SIT and UAT • Develop automated
regression pack
• Configuration management • Acceptance testing
• Maintenance & support production
• Continuous quality monitoring
• Management dashboards
Process Flow P1
Project
Initiation & Planning
P2
Requirement
Gathering & Analysis
P3 Design & Development
P4 Testing
P5
Deployment
TEST
ING
D
EVEL
OP
ER
TEC
H L
EAD
Step 1 FRS, design doc
(BA Developer)
Step 2 Design Analysis
(Developer)
Step 3 Application
development (Developer)
Step 4 Code Check-in (Developer)
Step 5 Develop Unit test
scripts (Developer)
Step 6 Code Check-in (Developer)
Local IDE Workspace DIT Environment
Step 7 Build/ Deploy Code
(Developer)
Step 8 Compile & Run Unit
Test (Developer)
Step 9A Share test results for
verification (Developer)
Step 9B Verify
results? (Tech Lead)
Step 11
Promote Code to SIT envi
(Dev/Test Manager)
Step 12A Build Package &
Deploy code in SIT envi
(Deployment team)
Step 12B
Continue SIT (Test Manager Test
Team)
OK
SIT Environment
Step 9B.1 (Rework) Code failure & defects Unit test result Code coverage result (Tech Lead Developer)
Not OK
Step 10 Approval of Unit Test
Coverage (Development Manager)
Infuse DevOps & Continuous Integration
21
Requirements/ User Stories
Code development Code review /
check in Build Package
Refresh (Data/Envi)
Functional Test
API test / FIX
Test Automation
Non Functional test
Defect Management
Reports / Dashboard
Deploy in Test Environment
Project Mgt, Collaboration, KM and
Reference docs
Terminology and Tooling (examples)
DevOps vs. Agile
DevOPS AGILE
A technical practice to achieve and to end solution.
It is more about processes like scrum methodology and sprints
Operations as deployment is just a small part of ops. Other being configuration management etc. It is the link between design thinking and Devops
Aligns Ops with stability, such as scripting deployment and standardizaing app builds
Aligns development with business prioritization thus focusing on speeding up the development process
DevOps helps to bridge the line between several cross functional teams (Dev, QA, Monitoring, Deployment, infrasructure etc.) by simplyfying the process.
In agile, the gap between these teams are bridged in daily scrum calls where all roadblocks are discussed and resolved with agile scrum methodologies
Aims at faster deliveries through automation via carious applications and tools like Jira, Docket etc. These tools are used for automating deployment and tracking bugs in real-time for quick fix.
Aims at streamlined delivery via tools like Kanban board, Scrum, Test Driven Development (TDD) and Lean. These practices help in project management planning and collaboration.
Continuous Integration & Continuous Delivery
PRINCIPLES • Maintain a code repository • Automate the build • Make the build self-testing • Everyone commits to the baseline
every day • Every commit (to baseline) should
be built • Keep the build fast • Test in a clone of the production
environment • Make it easy to get the latest
deliverables • Everyone can see the results of the
latest build • Facilitate automated deployments
PRINCIPLES • Process should be automated • Reduces the number of features
introduced per release, minimizing shock to users
• Will reduce the standard release cycle
• Changes approach to releasing software from an event to a non-event
• Helps to avoid off-hour, high risk, expensive deployments
• Know your rollback plan (do you rollback or roll forward only)
• Build in health checks
Measure customer value
Use metrics to communicate value and judge progress
Achieve shared accountabiilty
Drive a fail-fast culture; celebrate failure and kill consensus
Culture «Blameless»
User Experience
Company performance
Technical Debt
Code Errors
Response time Interactivity Functionality
"Overcome cultural inertia; break traditions, educate,
train, coach, and incubate." CIO, Global Manufacturer
Business Technical
Continuous Learning
Metrics Collaboration
Customer Engagement
Productivity
Value
Quality
Costs Source: European DevOps Survey, 2016; IDC #US42308417, 2017
+ +
Balance the Risk
Balance the Risk
7% utilize DevOps CoE 20% DevOps teams created and organized
Help to gauge project readiness for DevOps adoption:
What are your IT and business cultural traits?
Who will lead DevOps, and what is their
motivation?
How will you manage cross-functional change?
Where is the most pain?
What is the automation and integration strategy?
Which processes will be impacted?
What is your DevOps architecture?
Is teamwork and collaboration incented?
Which project will deliver the biggest ROI?
How will IT silos be deconstructed?
Have metrics been defined, and are they
measurable?
Have HR performance metrics adjusted for
DevOps?
Are there dashboards?
Technology and automation
Collaboration and teamwork
Metrics and measurement
Culture and leadership
By 2018, 45% of CIOs will focus on platforms using DevOps for rapid development, cost reduction, and enterprise agility.
Difference in traditional versus DevOps testing?
How to Get There..
DevOps is a journey Dev and Ops need to look introspectively to understand their strengths and challenges,
and look for ways to contribute towards breaking down silos Dev sharpen skills on ops/admin, Ops sharpen skills on coding Set small goals to be awesome Don't automate what you don't understand CLAMS: First, be lean. Ensure that everybody have the same goal: developing and delivering working software Ensure you have people who want to develop and improve Think deployment & operations from the beginning of the project – Involve Operations
Culture Lean Automation Measurement Sharing
Think of DevOps as CLAMS
Hearts & Minds Embrace change
Focus on producing value Keep everything to a minimum [tools, meetings, sprints]
CI/CD Infrastructure as Code
Measure everything Set targets and chase anomalies
Open information sharing Collaboration
List of DevOps Practices
•
•
•
•
•
•
•
•
•
•
•
•
•
•
http://www.itproguy.com/devops-practices/
Common DevOps Strategies - Cultural
Regular code reviews are required, and Ops is involved with code reviews No app launches without automated testing in place at both the
infrastructure and app level. Bi-weekly 10-minute standups with Dev and Ops staff Find individuals that have both Dev and Ops skills and make liaisons All Production environments mirrored by identical Development
environments Regular infrastructure architecture/config/outage reviews are required, and
Dev is involved with infrastructure reviews. Dev and Ops staff all have scheduled "office hours“ Focus on automated testing of all infrastructure and software components. Both Dev and Ops have 7x24 accountability for the performance and
availability of the environment. Automated monitoring or platform monitors infrastructure and software
layers 7x24, and pages Dev and Ops 7x24. Shared sign-off by Dev and Ops before any application goes live
Thank you