0% found this document useful (0 votes)
39 views

What Is Devops

Uploaded by

barkhabatool771
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

What Is Devops

Uploaded by

barkhabatool771
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

What is DevOps

• DevOps is a set of practices, tools, and a cultural philosophy that


automates and integrates the processes between software
DevOps development and IT teams, allowing them to build, test, and
release software faster and more reliably.
• The term DevOps is a combination of "development" and
"operations," reflecting a collaborative or shared approach to the
tasks performed by a company's application development and IT
operations teams.

1 2

1 2

DevOps Model
What does DevOps aim for?
Delivery Pipeline & Feedback Loop
• DevOps is a software development approach that aims to
shorten the software development lifecycle and improve the
quality and reliability of software releases.

• It emphasizes collaboration and communication between


development (Dev) and operations (Ops) teams.

3 4

3 4

DevOps Model - Delivery Pipeline DevOps Model – Feedback Loop


• The pipeline represents different stages that software goes • The loop indicates that information and learnings from the
through before it is released to production. production environment are fed back into the earlier stages of
• These stages include: the pipeline.
• Build: The stage where the software code is compiled and packaged • This feedback can be used to improve the software
into a deployable unit. development process and future releases.

• Test: The stage where the software is rigorously tested to ensure it


functions as expected and identifies any bugs.

• Release: The stage where the software is deployed to production for


end users.
5 6

5 6

1
DevOps Working DevOps Working
• DevOps eliminates the “siloed” conditions between the development team and • DevOps is a practice that enables a single team to handle the
operations team.
whole application lifecycle, including development, testing,
• These two teams work together for the entire application lifecycle, from development and test to
deployment to operations, and develop a range of skills not limited to a single function. release, deployment, operation, display, and planning.
• Teams in-charge of security and quality assurance may also integrate more closely with
development and operations over the course of an application’s lifecycle under various
DevOps models. • With the aid of DevOps teams can speed up the delivery of
• These teams employ procedures to automate labor-intensive, manual processes that
applications and services by a business.
were slow in the past. • Amazon, Netflix, and other businesses have all effectively embraced
• They employ a technological stack and tooling that facilitate the swift and dependable operation DevOps to improve their customer experience.
and evolution of apps. A team’s velocity is further increased by these technologies, which also
assist engineers in independently completing activities (such provisioning infrastructure or
delivering code) that ordinarily would have needed assistance from other teams.

7 8

7 8

Key Principles of DevOps Key Principles of DevOps


• Continuous Delivery (CD): CD extends CI by automatically deploying all code changes to a
• Collaboration and Communication: DevOps emphasizes the importance of testing environment and/or a production environment after the build stage. This ensures that
communication and collaboration between software developers and IT operations the software can be released at any time with minimal manual intervention.
staff. By working together throughout the entire software lifecycle, teams can reduce
miscommunications, increase efficiency, and improve the overall quality of the • Infrastructure as Code (IaC): IaC is the practice of managing and provisioning computing
product. infrastructure through machine-readable definition files, rather than physical hardware
configuration or interactive configuration tools. This approach allows for consistency and
• Automation: Automation is crucial in DevOps for streamlining repetitive tasks, such repeatability.
as testing, integration, and deployment. By automating these processes, teams can
• Monitoring and Logging: DevOps involves continuous monitoring of applications and
reduce errors, save time, and increase the speed of delivery.
infrastructure to identify performance issues, track user behavior, and ensure system health.
Logging provides detailed records of system activities, which are useful for debugging and
• Continuous Integration (CI): CI is the practice of merging all developers' working auditing.
copies to a shared mainline several times a day. Automated tests run to ensure that
the codebase is always in a stable state. This practice helps in identifying integration • Security: Often referred to as DevSecOps, integrating security practices within the DevOps
issues early. process ensures that security is considered at every stage of the software lifecycle.
Automated security testing, compliance checks, and monitoring help in identifying and
9
mitigating risks early. 10

9 10

DevOps Life Cycle DevOps Life Cycle – 7Cs


• DevOps lifecycle follows a process that promotes 1. Continuous Development
• continuous integration 2. Continuous Integration
• continuous delivery, and
• continuous feedback.
3. Continuous Testing
• By automating and integrating these phases, organizations can 4. Continuous Deployment/Continuous Delivery
achieve faster delivery, higher quality, and more reliable software. 5. Continuous Monitoring
• The key to a successful DevOps lifecycle is the collaboration 6. Continuous Feedback
between development and operations teams, supported by the 7. Continuous Operations
right set of tools and practices.

11 12

11 12

2
1. Continuous Development 2. Continuous Integration (CI)
• CI is the practice of merging all developers' working
• In Continuous Development code is written in small, copies to a shared mainline several times a day.
continuous bits rather than all at once. Automated tests are run to ensure that the codebase
• Continuous Development is important in DevOps because this is always in a stable state. CI helps in detecting
improves efficiency every time a piece of code is created, it is integration issues early in the development process.
tested, built, and deployed into production. • In DevOps Continuous Integration involves mainly
• Continuous Development raises the standard of the code and in 4 stages that are the flow of Continuous
streamlines the process of repairing flaws, vulnerabilities, and Integration. The stages are:
defects. 1.Getting the SourceCode from SCM
• It facilitates developers’ ability to concentrate on creating high- 2.Building the code
quality code. 3.Code quality review
4.Storing the build artifacts
13 14

13 14

2. Continuous Integration (CI) 3. Continuous Testing


• There are tools available that teams can select that suit their
requirement in each stage. Some are; GitHub, Maven, • Organizations deploy continuous testing with the use of the agile and DevOps methodologies.
SonarQube, Nexus
• The most popular tools are GitHub for source code
management(SCM) when the developer develops the code on his • Depending on their needs, they can perform continuous testing using automation testing tools
local machine, they push it to the remote repository which is such as Testsigma, Selenium, LambdaTest, etc.
GitHub from where whoever having access can Pull, clone and can
make required changes to the code.
• With these tools, teams can test their code and prevent problems, as well as test more quickly and
• From there by using Maven the team can build the required
package and can test the unit cases.
intelligently.
• SonarQube performs code quality reviews where it will measure
the quality of source code and generates a report in the form of • With the aid of a continuous integration platform like Jenkins, the entire process can be automated,
HTML or PDF format.
which is another added benefit
• Nexus for storing the build artifacts will help us to store
the artifacts that are build by using Maven and this whole process
is achieved by using a Continuous Integration tool Jenkins.

15 16

15 16

4. Continuous Deployment/ Continuous Delivery 4. Continuous Deployment/ Continuous Delivery

Continuous Deployment (CDep): is the process of automatically Continuous Delivery (Cdel): is the process of deploying an
deploying an application into the production environment when application into production servers manually when it has
it has completed testing and the build stages. completed testing and the build stages.
Here, everything is automated, from obtaining the application’s Here, the continuous integration processes is automated,
source code to deploying it. however, manual involvement is still required for deploying it to
the production environment.

17 18

17 18

3
5. Continuous Monitoring 6. Continuous Feedback
• By continuous monitoring, the DevOps team can continuously monitor • As the application is released into the market and end users use it, they give
and can get notified before anything goes wrong feedback about the performance of the application and any glitches affecting the
user experience.
• Continuous Monitoring can be achieved with the help of software like;
Prometheus and Grafana. • After getting multiple feedback from the end users’ the DevOps team analyzes
the feedbacks given by end users and they reach out to the developer team.
• Prometheus is an application used for event monitoring and alerting.
• Grafana is a powerful tool for DevOps teams, helping to monitor, visualize, and • The developer team tries to rectify the mistakes and by this this can
understand the vast amount of data generated by their systems and applications reduce/remove the errors or bugs.
• Prometheus helps gather many performance measures, including CPU and memory • Continuous Feedback can increase the performance of the application and
utilization, network traffic, application response times, error rates, and others. reduce bugs in the code making it smooth for end users to finally use the
• Grafana makes it possible to visually represent and keep track of data from time application.
series, such as CPU and memory utilization.

19 20

19 20

7. Continuous Operations Benefits of DevOps


• Faster Time to Market: By automating and streamlining processes,
• The DevOps team sustains the higher application uptime by DevOps enables faster delivery of software updates and features.
implementing continuous operation, which will assist them to • Improved Collaboration and Efficiency: Breaking down silos between
cut down on the maintenance downtime that will negatively development and operations teams fosters a more collaborative and
efficient work environment.
impact end users’ experiences.
• Higher Quality Products: Continuous testing and integration help in
• More output, lower manufacturing costs, and better-quality identifying and fixing bugs early, leading to higher quality software.
control are benefits of continuous operations. • Increased Reliability: Automated deployment and monitoring ensure that
software is released in a consistent and reliable manner, reducing the risk
of downtime.
• Scalability: DevOps practices, such as IaC, allow for scalable
infrastructure management, making it easier to adapt to changing needs.
• Enhanced Security: Integrating security into the DevOps process ensures
that vulnerabilities are identified and addressed early, improving the
21
overall security posture. 22

21 22

What is Jenkins
• Jenkins is an open-source automation server widely used in the
DevOps lifecycle to automate the building, testing, and
Jenkins deployment of software.
• It helps developers integrate changes to projects more easily and
provides a way to continuously deliver software by integrating with
a vast number of testing and deployment technologies.

23 24

23 24

4
Jenkins Pipeline
• A Jenkins Pipeline is a suite of plugins that supports implementing and
integrating continuous delivery pipelines into Jenkins.
• It defines the stages of the pipeline (e.g., build, test, deploy) using a domain-
specific language (DSL).
• Jenkins Pipelines enable the automation of the entire ‘Continuous Integration’
Key Features and Components of
and ‘Continuous Delivery’ (CI/CD) process in a scriptable way, ensuring that the
pipeline is versioned alongside the application code. Jenkins

25 26

25 26

Continuous Integration and Continuous


Plugins and Extensibility
Delivery (CI/CD)
• Continuous Integration: Jenkins automates the process of • Jenkins has a rich ecosystem of plugins that extend its
integrating code changes from multiple developers into a shared capabilities.
repository several times a day, followed by automated builds and • These plugins support various stages of the development
tests to ensure that new code does not break the existing lifecycle, including source code management (e.g., Git), build
codebase. tools (e.g., Maven, Gradle), testing frameworks (e.g., JUnit,
• Continuous Delivery: Jenkins automates the deployment Selenium), and deployment tools (e.g., Kubernetes, Docker).
process, making it easier to deliver new code changes to
production or staging environments frequently and reliably.

27 28

27 28

Pipeline as Code Distributed Builds


• Jenkins allows the creation of complex build, test, and • Jenkins supports distributed builds, enabling the execution of jobs
deployment pipelines using a domain-specific language (DSL) across multiple machines.
• Jenkins Pipelines enable the automation of the entire ‘Continuous • This feature allows for load distribution, speeding up the build
Integration’ and ‘Continuous Delivery’ (CI/CD) process in a process, and enhancing the scalability of the CI/CD infrastructure.
scriptable way, ensuring that the pipeline is versioned alongside
the application code.

29 30

29 30

5
Integration with Other Tools
User Interface & Configuration
• Jenkins provides a web-based user interface for managing the • Jenkins integrates seamlessly with a wide array of development,
server, configuring jobs, and viewing build results. testing, and deployment tools, making it a versatile choice for
• The interface is user-friendly and offers various views and implementing CI/CD pipelines.
dashboards to monitor the status of jobs and pipelines. • It supports integrations with version control systems like Git,
Subversion, and Mercurial, build tools like Maven and Gradle, and
deployment tools like Kubernetes and Docker.

31 32

31 32

What is Docker
• Docker is an open-source platform that enables developers to
automate the deployment, scaling, and management of
applications inside lightweight, portable containers.
• Containers package an application and its dependencies
together, ensuring that it runs consistently across different
Docker environments.

33 34

33 34

Key Features and Components of Docker


• Containers
• Containers are lightweight, standalone, and executable units that include
everything needed to run an application, such as the code, runtime,
Key Features and Components of libraries, and system tools. Containers share the host system's kernel but
run in isolated processes.

Docker • Docker Engine


• The Docker Engine is the runtime that manages containers. It includes a
server (the Docker daemon) that builds, runs, and manages containers, a
REST API for interacting with the daemon, and a command-line interface
(CLI).

35 36

35 36

6
Key Features and Components of Docker Key Features and Components of Docker
• Docker Images • Dockerfile
• Docker images are read-only templates used to create containers. • A Dockerfile is a text file that contains a series of instructions on how to
build a Docker image.
• An image includes the application and its dependencies.
• It automates the creation of Docker images by specifying the base image,
• Images can be built from scratch or derived from existing images using application code, dependencies, and any additional configuration
Dockerfiles, which are scripts that specify the steps to create an image. required.

• Docker Hub • Networking


• Docker Hub is a cloud-based registry service that allows users to find, • Docker provides various networking options for containers, allowing them
store, and share container images. to communicate with each other and with external systems.
• It provides a centralized repository for both official and user-contributed • These options include bridge networks, host networks, overlay networks,
and custom networks.
images.
37 38

37 38

Key Features and Components of Docker


• Volumes
• Docker volumes are used to persist data generated by and used by Docker
containers.
• Volumes allow data to be stored outside the container's filesystem,
making it easier to manage and back up.

Questions

39 40

39 40

You might also like