2. Intro
History of DevOps
Definition of DevOps
Why & When to use DevOps
DevOps & Agile
Principles and Practices of DevOps
DevOps Tools
DevOps as a Job
Content
2
4. Computer & Communication
Engineering
10+ in System Administration
Digital Transformation, IoT, DevOps,
Information Security, & Project
Management
Co-Founder Dx Arm
Who Am I?
6. • 2007, Patrick Debois began working on a large data center migration where he was in charge of testing
• 2008, Agile conference held in Toronto, Canada, Andrew Shafer tried to put together a meetup session
entitled “Agile Infrastructure.”
• Patrick showed up for the session
• They formed a discussion group for other people to post their ideas for how to solve this divide
between development and operations later that year.
• June 2009, John Allspaw and Paul Hammond gave a talk entitled “10+ Deploys a Day: Dev and Ops
Cooperation at Flickr.”
• Patrick was watching the streaming video of the presentation and he realized this was exactly the
solution for which he had been looking.
• October 2009, Patrick put out a call to have a gathering of developers and system administrators to get
together and discuss the best ways to start bridging the gap between the two disparate fields.
History Of DevOps
6
7. • October 2009, Patrick put out a call to have a gathering of developers and system
administrators to get together and discuss the best ways to start bridging the gap between
the two disparate fields.
• He named the event DevOpsDays
• This event garnered a fair amount of attention from experts in both fields and sparked lively
debates over Twitter where the hashtag was soon shortened to simply #DevOps
• Some of the smaller tech enterprises were attempting to put together DevOps practices as
well as tools built to aid these newly forming teams
• March of 2011, Cameron Haight of Gartner presented his predictions for the trajectory of
DevOps over the next few years
• Enterprises of all sizes were beginning to adopt these new practices. DevOps had officially
caught on as the next big thing since Agile for the IT industry.
History Of DevOps
7
8. The problem:
• Struggle in communication and collaboration between Dev team and Ops team
• Operations teams want to see development completed efficiently and with as few
resources spent as possible to complete the job to scope
• Development teams want to make sure the job gets done completely and to high
quality, regardless of the resources required to achieve success
Solution:
Participating together in the entire service lifecycle, from design through the
development process to production support
Definition
8
9. Definition
It’s a practice that aims at merging
development, quality assurance,
and operations (deployment and
integration) into a single,
continuous set of processes
9
10. Definition
A practice that emphasizes the
collaboration and communication
of both software developers and
other information-technology (IT)
professionals. It focuses on
delivering software product faster
and lowering the failure rate of
releases
10
11. Definition
DevOps is not a tool or a software,
it’s a culture that you can adopt for
continuous improvement. It will
help you to bring your Developer
Team and Operations Team on the
same page, allowing them to work
together with ease.
11
12. • Before DevOps the development and operation team worked in complete isolation.
• Testing and Deployment were is isolated activities done after design-built hence they consumed
more time than actual build cycles.
• Without using DevOps, team members are spending a large amount of their time in testing,
deploying, and designing instead of building the project.
• Manual code deployment leads to human errors in production.
• Coding and operation teams have their separate timelines and are in synch causing further delays.
There is a demand to increase the rate of software
delivery by business stakeholders.
Why DevOps?
12
13. DevOps allows agile Development Teams to implement continuous Integration
and continuous Delivery.
This helps them to launch products faster into the market.
Why DevOps?
13
15. DevOps should be used for largedistributedapplications such
as E-commerce sites or applications hosted on a cloud platform.
When?
It should not be used in a mission-criticalapplication like bank,
power and other sensitivedatasites, such applications need strict
access controls on the production environment, a detailed change
management policy, access control policy to the data centers.
But
15
16. Technical
• Continuous software delivery
• Less complex problems to fix
• Faster resolution of problems
Advantages of DevOps
16
Business
• Faster delivery of features
• More stable operating environments
• More time available to add value (rather than
fix/maintain)
18. Agile addresses gaps in Customer and Developer
communication.
DevOps addresses gaps in Developers and IT
Operations communication.
DevOps & Agile
18
19. • Agile is a set of values and principles about how to produce i.e. develop
software. It will be working on developer’s laptop or in a test environment.
But not on production infrastructure
• Agile software development methodology focuses on the development
of software
• DevOps on the other hand is responsible for development as well as
deployment of the software in the safest and most reliable way possible
DevOps & Agile
19
21. DevOps Pillars <CAMS>
Culture represented by human communication, technical processes, and
tools
Automation of processes
Measurement of KPIs
Sharing feedback, best practices, and knowledge
Principles & Practices
21
22. Practices
DevOps requires a delivery cycle
that comprises planning,
development, testing,
deployment, release, and
monitoring with active
cooperation between different
members of a team.
Principles & Practices
22
23. Agile planning
Continuous integration (CI)
Continuous Delivery (CD)
Infrastructure as a Code
Containerization
Microservices
Cloud infrastructure
Practices
23
24. Continuous integration is a development practice that requires
developers to integrate code into a shared repository on a daily basis.
Each check-in is validated by
• An automated build
• Automated unit, integration and acceptance tests
Continuous Integration
24
26. Continuous delivery, is an approach that merges development, testing, and
deployment operations into a streamlined process as it heavily relies on automation.
Development: Engineers commit code in small chunks multiple times a day for it to
be easily tested.
Continuous Testing : Automate code testing using tools like Selenium, Ranorex, UFT,
etc. If bugs and vulnerabilities are revealed, they are sent back to the engineering
team. Version control detects integration problems in advance. The code that
passes automated tests is integrated in a single, shared repository on a server.
Continuous Delivery and Automation
26
27. Continuous Deployment: The code is deployed to run in production on a public
server. Code must be deployed in a way that doesn’t affect already functioning
features and can be available for a large number of users.
Continuous monitoring. The final stage of the DevOps lifecycle is oriented to the
assessment of the whole cycle. The goal of monitoring is detecting the problematic
areas of a process and analyzing the feedback from the team and users to report
existing inaccuracies and improve the product’s functioning.
Continuous Delivery and Automation
27
29. • Infrastructure as a Code (IaC) is an infrastructure management approach that
makes continuous delivery and DevOps possible. It entails using scripts to
automatically set the deployment environment (networks, virtual machines, etc.) to
the needed configuration regardless of its initial state
• You may have different environments for development, testing, and production use.
• Without IaC, engineers would have to treat each target environment individually
Infrastructure as a Code
29
30. Advantages:
1. Can test it the way you test the source code itself and
2. Use a virtual machine that behaves like a production environment to test early.
3. Once the need to scale arises, the script can automatically set the needed number
of environments to be consistent with each other.
Infrastructure as a Code
30
31. • A lightweight and packaged with all runtime components (files, libraries, etc.)
• They don’t include whole operating systems, only the minimum required resources.
• Containers are used within DevOps to instantly deploy applications across various
environments and are well combined with the IaC
• A container can be tested as a unit before deployment.
• Currently, Docker provides the most popular container toolset.
Containerization
31
32. The microservice architectural approach entails building one application as a set of
independent services that communicate with each other, but are configured
individually. Building an application this way, you can isolate any arising problems
ensuring that a failure in one service doesn’t break the rest of the application
functions. With the high rate of deployment, microservices allow for keeping the
whole system stable, while fixing the problems in isolation
Microservices
32
33. Cloud infrastructure isn’t a must for DevOps adoption, it
provides flexibility, toolsets, and scalability to applications
Cloud infrastructure
33
34. - Infrastructure Automation:
AWS: being cloud service you do not need to be physically present in the data center.
Also they are easy to scale on-demand there are no up front hardware costs. It can be
configured to provision more servers based on traffic automatically.
- Configuration Management:
Ansible: It is useful DevOps tool for achieving speed, scale and consistency. It can be
used to easy out complex tasks and perform configuration management with this tool,
DevOps team can avoid making changes across ten thousand servers. Instead they
need to make changes in one place which is automatically reflected in other servers.
- Deployment Automation:
Gitlab-CI/CD : This tool facilitates continuous integration, test and delivery. It helps to
integrate project changes more easily by quickly finding issues as soon as a built is
deployed.
DevOps Tools
34
35. - Log Management:
Splunk: This is a tool solves the issues like aggregating, storing, and analyzing all
logs in one place.
- Performance Management:
App Dynamic : It is DevOps tool which offers real-time performance monitoring.
The data collected by this tool helps developers to debug when issues occur.
- Monitoring:
Nagios: It is also important to make people are notified when infrastructure and
related services go down. Nagios is one such tool for this purpose which helps
DevOps teams to find and correct problems.
DevOps Tools
35
37. Roles, Responsibilities and skills of a DevOps Engineer
• DevOps/Platform Engineer: who understands diverse coding languages to support the platform
• Build Engineer:responsible for the software build from conceptualizing through delivery, This role ensures
orchestration, development, and testing of all software, features, automation, and configurations.
• Reliability Engineer: As a reliability engineer uses a calculated mish-mash of coding and automation
orchestration to ensure the software product meets the requirements set out for it.his role ensures security
and the reliability of the many systems that create a DevOps framework.
• Release Manager: The release manager is also known as a release engineer. In this role, they serve a
management function to ensure the orchestration of release with build engineers. They are often the ones
who roadmap the entire flow of the delivery process.
• Data Analyst: The data analyst uses public and proprietary data to make determinations about user
satisfaction that impact the direction of the organization and programming efforts. This is an important role
in data processing that requires critical thinking and end-user engagement. Some titles you may see in this
modality are data analyst or QA analyst.
DevOps As a Job
37
38. • Tech background.
• Automation tool experience.
• Programming skills.
• Knowledge of database systems.
• Communication and interpersonal skills.
DevOps engineer skillset
38