2. Nelkinda Software Craft Pvt. Ltd.
Agenda
● Overview
● History
● What is DevOps
● DevOps Lifecycle
● DevOps Misconceptions and Anti-Patterns
● DevOps Culture
3. Nelkinda Software Craft Pvt. Ltd.
DevOps
“DevOps (a clipped compound of “development” and “operations”) is a software
engineering culture and practice that aims at unifying software development (Dev) and
software operation (Ops). The main characteristics of the DevOps movement are to
strongly advocate automation and monitoring at all steps of software construction, from
integration, testing, releasing to deployment and infrastructure management.”
— Wikipedia
4. Nelkinda Software Craft Pvt. Ltd.
“DevOps is not a goal, but a never-ending process of continual improvement”
— Jez Humble
“You Build It, You Run It”
— Werner Voegls
5. Nelkinda Software Craft Pvt. Ltd.
“Complete definition of DEVOPS: the developers have to wear the
beeper”
— Ron Jeffries
7. Nelkinda Software Craft Pvt. Ltd.
Requirement
Gathering
Design
Integration and
Test
Maintenance
Built
Deployment
8. Nelkinda Software Craft Pvt. Ltd.
Waterfall
● Sequential progress of process
● Requirements are fixed & clear
● High cost to deliver software
● Slow to cope up with changing requirements
9. Nelkinda Software Craft Pvt. Ltd.
Agile
● Based on short feedback cycle
● Best to use when the requirements are changing
● Deliver working software frequently
11. Nelkinda Software Craft Pvt. Ltd.
How Things Worked Before DevOps?
● Separate teams - Requirement gathering, Development, QA, Operations -
Networking, Database
● Every team has separate goals
● Independent team adds more bottlenecks
● Specific to team & individuals
13. Nelkinda Software Craft Pvt. Ltd.
Idea / Feature /
Bug Fix
Production
Deploy
Get Feedback
Build QA Integration
Tester
User
Tester
Operations
14. Nelkinda Software Craft Pvt. Ltd.
DevOps
● Shares many characteristics with the Agile. DevOps is slice of Agile
○ Individuals and interactions over processes and tools
○ Working software over comprehensive documentation
○ Customer collaboration over contract negotiation
○ Responding to change over following a plan
● Emerged from “Agile Infrastructure” or “Agile Operations”
● Cultural movement for entire organization
● XP practices
● To avoid Silos
● Integrates multiple technologies, platforms, and tools
● Devops practices include CI, CD, infrastructure as a code, configuration
management.
16. Nelkinda Software Craft Pvt. Ltd.
Continuous Development
● Version control software - Git, SVN
● Build tools - Ant, Maven, Gradle, make, SBT
17. Nelkinda Software Craft Pvt. Ltd.
Continuous Testing
Adopt processes in following areas to enable continuous testing
● Test environment provisioning and configuration
● Test data management
● Integration, functional, performance, and security testing
19. Nelkinda Software Craft Pvt. Ltd.
Continuous Design Improvement
● Refactoring is not a different phase, it’s part of development cycle
● Ensures better design and code quality
● Ensures the code still works with the help of continuous testing
● Ongoing effort to improve products, services, processes, and practices
20. Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier
to find and remove.”
— Martin Fowler
21. Nelkinda Software Craft Pvt. Ltd.
What is Continuous Integration?
● Integrating/Merging of code
● Integrating module, component, application, environment
22. Nelkinda Software Craft Pvt. Ltd.
Process Before Continuous Integration
Developers Source Code
Repository
Integration
Test Server
Production
Server
Notify Bugs
23. Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
Developers Source Code
Repository
Production
Server
Build Test Deploy
CI server
Fetch Changes
Notify (Success / failure)
Feedback
24. Nelkinda Software Craft Pvt. Ltd.
Continuous Integration Practices
Continuous Integration (CI) is a development practice. Practices like:
● Maintain a single source repository
● Automate the build
● Make your build self-testing
● Every commit should build on an integration machine
● Keep the build fast
● Perform testing on production like server i.e. a clone of the production
environment
● Anyone should be able to get the latest executable version
25. Nelkinda Software Craft Pvt. Ltd.
Continuous Integration
● Integrating the code into shared repositories several times a day
● Each integration verified by automated build and automated test
● Quick detection of errors = Fast feedback
● Less rework
● Reduced debug time
● Exposes known & unknown risks
● Tools like Jenkins are used
26. Nelkinda Software Craft Pvt. Ltd.
CI - CD Server Benefits
● Serialises / Sequentialize workflow
● Reproducible build environment
● Trigger build without having your machine occupied
● Keeps track of the builds
28. Nelkinda Software Craft Pvt. Ltd.
Continuous Delivery / Deployment
"Essentially, it is the practice of releasing every good build to users”
— Jez Humble, author of Continuous Delivery
“Continuous Delivery doesn’t mean every change is deployed to production ASAP.
It means every change is proven to be deployable at any time”
— Carl Caum
29. Nelkinda Software Craft Pvt. Ltd.
Continuous Delivery / Deployment
● Continuous Delivery is extension of Continuous Integration
● Ensure that code is always in a deployable state
● Continuous Deployment is extension of Continuous Delivery
● The code is automatically deployed in the production environment
32. Nelkinda Software Craft Pvt. Ltd.
Misconceptions & Anti pattern
● Devops Only Involves Developers and System Administrators
● DevOps is a separate team
● Devops Is a Job Title/New Role
● Devops Means Doing All the Work with Half the People
● DevOps Is All About Tools
● Devops Is About Automation
33. Nelkinda Software Craft Pvt. Ltd.
DevOps Culture & Values
● Culture
● Collaboration & Communication
● Trust
○ “Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.” - Agile Manifesto
● Decreasing Silos
● Feedback Loops
● Lean
● DevOps Tools
● Automation
● Measurement
● Continuous Improvement