2. Introduction to DevOps
● DevOps is the offspring of agile software development.
● DevOps is a culture which promotes collaboration between
Development and Operations.
● DevOps = Development + Operations
3. Models before DevOps
● Waterfall Model
● Agile Methodology
DevOps grows out of the agile software development movement
4. Before DevOps - Waterfall
● Long planning phases
● Sequential
● Top-down approach
● Linear
● A lot of time to produce the product
● The working software was delivered only after the final
phase
● Suitable for projects with stable requirements.
(Requirement will no change by the time)
6. Before DevOps - Agile Methodology
● Continuous Iteration of development and testing
● Development and testing are concurrent
● Lack of collaboration between developers and operations
8. Before DevOps - Development Team
● Gathering business requirements for a software program
and writing codes.
● Ship as many features as possible.(Speed)
9. Before DevOps - Quality Assurance Team
● Test the program in an isolated environment.
● Find as many bugs as possible.
10. Before DevOps - Operations Team
● Stability of Application
● Deploying
● Networking
● Database operations
11. Before DevOps - Problems
➔ Dev is unaware of QA and Ops roadblocks, that prevent the
program from working as anticipated.
➔ QA and Ops are typically working across many features and
have little context of business purpose and value of
software.
➔ Each group has opposing goals that can lead to
inefficiency and finger pointing when something goes
wrong. (each team is a black box for the other team)
14. DevOps Goals
● Fast Time To Market
● Few production failures
● Immediate recovery from failures
Development & Operations
Speed & Stability
15. With DevOps
● Happier Teams
○ Tech employees tend to be happier doing devops than doing traditional
silos
○ More time to innovating
○ Devs don’t feel like they have to fight to get their work out there
○ Operation people don’t have to fight devs for stability
● Happier Customers
○ Give customers the features they want quickly
○ Use more stable Applications
16. What is DevOps?
DevOps is the practice of operations and development
engineers participating together in the entire service
lifecycle, from design through development process to
production support.
18. When to adopt DevOps?
It should be used for large distributed applications:
● eCommerce sites
● Applications hosted on a cloud platform
19. When not to adopt DevOps?
It should not be used in a mission-critical application,
which it need strict access controls on production
environments:
● Bank
● Power
● Sensitive data sites
21. DevOps Life Cycle: Continuous Development
● Planning
➔ Understanding the vision of project
➔ Envisioning a software based on perceptions
● Software Coding
➔ Developing the source code
➔ Maintaining the code (SCM)
◆ Version Control tools: Subversion, Git
● Packaging
➔ Producing .exe, jar, war files
◆ Using Maven, Gradle
22. DevOps Life Cycle: Continuous Integration
● The core of entire life cycle.
● Frequently merging code changes done by developers.
● Developers run tools for unit testing, code review,
integration testing.
● Early reflection of end-users to the updated code.
● Tool for procuring the updated source code and
constructing to the build formate: Jenkins
23. DevOps Life Cycle: Continuous Testing
● Continuously testing of developed software for bugs.
○ Automation testing Tools: Selenium, JUnit, TestNG
● Using Docker containers to simulate the test environment.
● Automation testing saves the time.
24. DevOps Life Cycle: Continuous Deployment
● Here Code is deployed to the production server.
● Configuration Management: Precise deployment of code on
all servers
○ Tools used: Ansible, Puppet, Chef
● Code is released to servers, Updates are scheduled for
servers
● Containerization Tool: Maintaining consistency across the
environment where the application deployed.
○ Tools used: Docker, Vagrant
25. DevOps Life Cycle: Continuous Monitoring
● Continuously monitor the performance and stability of
application
● Vital information about the use of software like
○ Memory usage (“low memory” error)
○ Cpu
○ Disk I/O
○ Application log
○ Network traffic
○ Other resources over time
● Increasing the productivity and reliability of the system
○ Tools: Sensu, ELK stack, New Relic
26. Continuous Monitoring: Why do Monitoring?
● Fast Recovery
○ The sooner a problem detected, the sooner it can be fixed
● Better root cause analysis
○ The more data you have, the easier it is to determine the causes
● Visibility across the teams
○ Give useful data to both developers and production people about the
performance of code in production.
● Automated response
○ Monitoring data used alongside orchestration to provide automatic
responses to events and recovery from failures