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

Lec 1

The document outlines the principles and benefits of DevOps, emphasizing its role in enhancing collaboration between development and operations teams to improve software delivery processes. It details the DevOps lifecycle, which includes planning, coding, testing, deploying, and monitoring, while also highlighting the advantages such as faster delivery, improved quality, and increased automation. Additionally, it discusses common practices, tools, and the need for a DevOps framework to achieve agility, efficiency, and continuous improvement in software development.
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)
3 views

Lec 1

The document outlines the principles and benefits of DevOps, emphasizing its role in enhancing collaboration between development and operations teams to improve software delivery processes. It details the DevOps lifecycle, which includes planning, coding, testing, deploying, and monitoring, while also highlighting the advantages such as faster delivery, improved quality, and increased automation. Additionally, it discusses common practices, tools, and the need for a DevOps framework to achieve agility, efficiency, and continuous improvement in software development.
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/ 52

Testing in a DevOps

Lifecycle
Lecture 1 - 4
DevOps Frameworks and Navigating
Session Objective
By the end of this class, you will be able to:

● Definition and Benefits of DevOps


Frameworks
● DevOps Frameworks Landscape
● Continuous Delivery and Deployment
Frameworks
● Choosing the Right DevOps
Framework for Your Organization
DevOps

DevOps Lifecycle

DevOps tools
DevOps
DevOps is a software development approach
emphasizing collaboration, automation, and
continuous delivery to provide high-quality products
to customers quickly and efficiently.
What is DevOps?

▪ DevOps breaks down silos between development and operations teams to enable
seamless communication, faster time-to-market, and improved customer
satisfaction. It allows a team to handle the complete application lifecycle, from
development to testing, operations, and deployment. It shows cooperation between
Development and Operations groups to deploy code to production quickly in an
automated and repeatable manner.

▪ Every phase of the software development lifecycle, including planning, coding,


testing, deployment, and monitoring, is heavily automated in DevOps. This improves
productivity, ensures consistency, and lowers error rates in the development
process. A culture of continuous improvement is also promoted by DevOps, where
feedback loops are incorporated into the procedure to facilitate quicker iteration
and better decision-making. Organizations can increase their agility, lower costs,
and speed up innovation by adopting DevOps.
Definition/ What is Devops?

DevOps is basically a combination of two words- Development and


Operations. DevOps is a culture that implements the technology in
order to promote collaboration between the developer team and the
operations team to deploy code to production faster in an automated
and repeatable way.
Why DevOps?
Think

▪ The goal of DevOps is to increase an


organization’s speed when it comes to
delivering applications and services.

▪ Many companies have successfully


implemented DevOps to enhance their
user experience including Amazon,
Netflix, etc.
Think ▪ Facebook’s mobile app which is
updated every two weeks effectively
tells users you can have what you want
and you can have it. Now ever
wondered how Facebook was able to
do social smoothing? It’s the DevOps
philosophy that helps Facebook ensure
that apps aren’t outdated and that
users get the best experience on
Facebook. Facebook accomplishes this
true code ownership model that makes
its developers responsible that
includes testing and supporting
through production and delivery for
each kernel of code.
Why DevOps?....

Industries have started to gear up for digital transformation by


shifting their means to weeks and months instead of years
while maintaining high quality as a result. The solution to all
this is- DevOps.
How DevOps is different
from Traditional IT?
Traditional IT has 1000s lines of code and is created by
different teams with different standards whereas
DevOps is created by one team with intimate knowledge
of the product. Traditional IT is complex to understand
and DevOps is easily understandable.
DevOps

DevOps Lifecycle

DevOps tools
DevOps Lifecycle
DevOps lifecycle is the methodology where professional
development teams come together to bring products to
market more efficiently and quickly. The structure of the
DevOps lifecycle consists of Plan, Code, Building, Test,
Releasing, Deploying, Operating, and Monitoring.
DevOps Life Cycle
Lifecycle

Plan: Code: Build: Test:


Determining the At this level, the code for After the coding part, This level is very
commercial needs and the same is developed programmers use important to assure
gathering the opinions and in order to simplify various tools for the software integrity.
of end-user by the design, the team of submission of the code Various sorts of tests
professionals in this developers uses tools and to the common code are done such as user
level of the DevOps extensions that take care source. acceptability testing,
lifecycle. of security problems. safety testing, speed
testing, and many
more.
Lifecycle

Release: Deploy: Operate: Monitor:


At this level, everything In this level, At this level, the available The observation is
is ready to be deployed Infrastructure-as-Code version is ready for users done at this level that
in the operational assists in creating the to use. Here, the depends on the data
environment. operational infrastructure department looks after which is gathered from
and subsequently the server configuration consumer behavior, the
publishes the build using and deployment. efficiency of
various DevOps lifecycle applications, and from
tools. various other sources.
Best Practices

Implement automated dashboard 1

2 Keep the entire team together

Allow DevOps to be a cultural change 3

4 Be patient with the developers

Maintain a centralized unit 5

6 Build a flexible infrastructure


DevOps

DevOps Lifecycle

DevOps tools
Benefits of DevOps Frameworks

▪ Faster Delivery: DevOps enables


organizations to release new products
frequently.
▪ Improved Collaboration: DevOps
promotes collaboration between
development and operations teams
▪ Improved Quality: DevOps emphasizes
automated testing and continuous
integration.
▪ Increased Automation: DevOps
enables organizations to automate
many manual processes.
Advantages of DevOps Frameworks

■ Better Scalability: DevOps enables


organizations to quickly and efficiently scale
their infrastructure to meet changing demands.

■ Increased Customer Satisfaction: DevOps


helps organizations to deliver new features and
updates more quickly.

■ Improved Security: DevOps promotes security


best practices, such as continuous testing and
monitoring, which can help to reduce the risk of
security breaches and improve the overall
security of an organization’s systems.

■ Better Resource Utilization: DevOps enables


organizations to optimize their use of
resources.
Core benefits of DevOps

1 Renews focus on the customers.

2 Unites teams for faster product shipments.

3 Simplifies development focus.

4 Introduces automation to the development process.

5 Supports end-to-end responsibility.


Disadvantages

▪ High Initial Investment: Requires


significant investment in technology,
infrastructure, and personnel.
▪ Skills Shortage: Organizations may
need to invest in training and
development programs to build the
necessary skills within their teams.
▪ Resistance to Change: Some
employees may resist the cultural
changes required for successful
DevOps adoption, which can result in
resistance, resistance to collaboration,
and reduced efficiency.
Disadvantages

▪ Increased Complexity: DevOps can


increase the complexity of software
delivery, requiring organizations to
manage a larger number of moving
parts.
▪ Dependency on Technology:
Organizations may need to invest in a
variety of tools and platforms to
support the DevOps process.
▪ Need for Continuous Improvement:
Organizations must be prepared to
continuously adapt and evolve their
DevOps practices to remain
competitive.
What is DevOps framework?
DevOps framework refers to a set of principles and practices
that guide organizations in implementing and adopting
DevOps methodologies. It provides a roadmap and guidelines
for aligning development and operations teams, integrating
automation, improving collaboration, and streamlining the
software development and delivery process.
Benefits of DevOps Frameworks

▪ Increased speed and agility: DevOps


can help organizations to release new
features and updates to their
applications more quickly.
▪ Improved quality: DevOps can help to
improve the quality of software by
automating the testing and
deployment process.
▪ Reduced costs: DevOps can help to
reduce the costs associated with
software development and IT
operations.
Common Practices

▪ Continuous integration: Continuous


integration (CI) is a practice where
developers regularly merge their code
changes into a shared repository. This
allows for early detection of errors and
helps to ensure that code is always in a
working state.
▪ Continuous delivery: Continuous delivery
(CD) is a practice where software is
automatically deployed to production
environments on a regular basis. This
allows for the rapid release of new
features and updates to applications.
Common Practices

▪ Continuous monitoring: Continuous


monitoring is the practice of collecting
data about software applications and
infrastructure in order to identify and fix
problems before they impact users.
▪ Automation: Automation is the use of
tools and technologies to automate tasks
that are typically performed manually.
This can help to improve efficiency and
reduce errors.
DevOps tools
1. Version Control Systems

Git: A distributed version control system used for tracking changes in source code
during development.
2. Continuous Integration and Build Tools

▪ Jenkins: An open-source automation server that enables continuous integration,


building, and testing of software projects.

▪ CircleCI: A cloud-based CI/CD platform that automates the build, test, and
deployment processes.

▪ Travis CI: A hosted CI service that integrates with GitHub for building and testing
applications.

▪ Bamboo: A commercial CI/CD tool by Atlassian that automates build, test, and
deployment processes.
3. Configuration Management

▪ Ansible: An open-source IT automation platform that helps with configuration


management, application deployment, and orchestration.
▪ Chef: A configuration management tool that enables automation of infrastructure
and application deployment.
▪ Puppet: An infrastructure automation tool that manages and configures systems
and applications.
4. Containerization and Orchestration

Docker: A platform that allows developers to build and deploy applications in


lightweight, isolated containers.
Kubernetes: An open-source container orchestration platform that automates the
deployment, scaling, and management of containerized applications.
Docker Swarm: A native clustering and orchestration solution for Docker containers.
Amazon Elastic Container Service (ECS): A fully managed container orchestration
service provided by AWS.
5. Infrastructure as Code (IaC)

▪ Terraform: An open-source tool for provisioning and managing infrastructure


resources declaratively.
▪ AWS CloudFormation: A service provided by AWS for provisioning and managing
AWS resources using templates.
▪ Azure Resource Manager (ARM): A service provided by Microsoft Azure for
deploying and managing Azure resources using templates.
6. Continuous Deployment and Release Management

▪ Spinnaker: An open-source multi-cloud continuous delivery platform that


facilitates deploying applications to different cloud environments.
▪ AWS CodeDeploy: A service provided by AWS for automating application
deployments to EC2 instances and other compute resources.
▪ Azure DevOps: A suite of DevOps tools provided by Microsoft that includes
features for source control, CI/CD, and release management.
DevOps

DevOps Lifecycle

DevOps tools
Need for DevOps framework

■ Faster Time to Market: DevOps practices,


such as continuous integration, delivery,
and deployment, enable organizations to
release software updates and new
features more frequently. This accelerated
delivery cycle helps businesses respond to
market demands faster, gain a competitive
edge.
■ Increased Collaboration and
Communication: DevOps promotes
collaboration and communication between
development, operations, and other teams
involved in the software development
lifecycle. Breaking down silos and
fostering cross-functional collaboration
leads improved efficiency.
Need for DevOps framework

■ Improved Quality and Reliability: DevOps


emphasizes automation, testing, and
monitoring throughout the development
process. Automated testing helps identify
and fix bugs earlier, reducing the
likelihood of defects in production.
Continuous monitoring provides insights
into application performance, allowing for
proactive issue detection and resolution.
■ Enhanced Stability and Scalability: By
using infrastructure as code and
configuration management tools, DevOps
ensures consistent and reproducible
deployment environments.
Need for DevOps framework

■ Continuous Feedback and Improvement:


DevOps embraces a culture of continuous
improvement and feedback. Through
monitoring, analytics, and user feedback,
organizations gain insights into application
usage patterns, performance bottlenecks,
and user experience. This feedback loop
enables teams to identify areas for
optimization, address issues promptly, and
iterate on the software to meet evolving
user needs.
■ Increased Efficiency and Cost Savings:
Automation is a key aspect of DevOps. By
automating repetitive tasks, such as code
building, testing, and deployment, teams
save time and effort.
Need for DevOps framework

■ Agility and Adaptability: DevOps enables


organizations to respond quickly to
changing market conditions, customer
requirements, and emerging technologies.
The iterative and incremental
development approach, coupled with
automation and continuous delivery,
allows teams to iterate on the software
rapidly and incorporate feedback in a
timely manner. This agility and
adaptability are crucial in today’s dynamic
business landscape.
Recaps

▪ DevOps promotes collaboration, automation, and continuous improvement, leading


to faster time to market, improved quality, stability, scalability, efficiency, and
adaptability.
▪ It helps organizations meet customer expectations, drive innovation, and stay
competitive in a rapidly evolving technological landscape.
▪ DevOps is a complex approach that can be challenging to implement. However, it
can bring a number of benefits to organizations that are successful in adopting it. If
you are considering implementing DevOps, it is important to do your research and
develop a plan that is tailored to your specific needs.
w le dge
e fo r K no
Tim ck ! !
C h e
What is DevOps?

DevOps is a software development methodology that


combines software development (Dev) and IT operations
(Ops) to enhance collaboration and streamline the
software delivery process.
What are the key principles of
DevOps?

The key principles of DevOps include continuous


integration and continuous delivery (CI/CD), automation,
infrastructure as code, monitoring and logging, and
culture of collaboration and shared responsibility.
What is continuous integration (CI)?

Continuous integration is the practice of frequently


merging code changes from multiple developers into a
shared repository. It aims to detect integration issues
early by automatically building and testing the codebase.
What is continuous delivery (CD)?

Continuous delivery is an extension of continuous


integration where the software is always in a releasable
state. It involves automating the entire release process,
including testing, deployment, and infrastructure
provisioning, to enable rapid and reliable software
releases.
What is infrastructure as code
(IaC)?

Infrastructure as code is an approach where


infrastructure components, such as servers, networks,
and storage, are defined and managed using code. It
allows for version control, automation, and
reproducibility of infrastructure configuration.and
reliable software releases.

You might also like