2. DevOps Model
• DevOps is the combination of cultural philosophies,
practices, and tools that increases an organization’s
ability to deliver applications and services at high
velocity: evolving and improving products at a faster
pace than organizations using traditional software
development and infrastructure management processes.
This speed enables organizations to better serve their
customers and compete more effectively in the market.
3. How DevOps Works?
• Under a DevOps model, development and operations teams are no longer
“siloed.” Sometimes, these two teams are merged into a single team where
the engineers work across the entire application lifecycle, from
development and test to deployment to operations, and develop a range of
skills not limited to a single function.
• In some DevOps models, quality assurance and security teams may also
become more tightly integrated with development and operations and
throughout the application lifecycle. When security is the focus of everyone
on a DevOps team, this is sometimes referred to as DevSecOps.
• These teams use practices to automate processes that historically have
been manual and slow. They use a technology stack and tooling which help
them operate and evolve applications quickly and reliably. These tools also
help engineers independently accomplish tasks (for example, deploying
code or provisioning infrastructure) that normally would have required help
from other teams, and this further increases a team’s velocity.
5. Benefits of DevOps
Speed
• Move at high velocity so you can innovate for
customers faster, adapt to changing markets
better, and grow more efficient at driving business
results. The DevOps model enables your
developers and operations teams to achieve these
results. For example, microservices and
continuous delivery let teams take ownership of
services and then release updates to them quicker.
6. Benefits of DevOps cont..
• Rapid Delivery
• Increase the frequency and pace of releases so
you can innovate and improve your product faster.
The quicker you can release new features and fix
bugs, the faster you can respond to your
customers’ needs and build competitive
advantage. Continuous integration and
continuous delivery are practices that automate
the software release process, from build to deploy
7. Benefits of DevOps cont..
Reliability
• Ensure the quality of application updates and
infrastructure changes so you can reliably deliver
at a more rapid pace while maintaining a positive
experience for end users. Use practices like
continuous integration and continuous delivery
to test that each change is functional and safe.
Monitoring and logging practices help you stay
informed of performance in real-time.
8. Benefits of DevOps cont..
Scale
• Operate and manage your infrastructure and
development processes at scale. Automation
and consistency help you manage complex or
changing systems efficiently and with reduced
risk. For example, infrastructure as code helps
you manage your development, testing, and
production environments in a repeatable and
more efficient manne
9. Benefits of DevOps cont..
Improved Collaboration
• Build more effective teams under a DevOps cultural
model, which emphasizes values such as ownership
and accountability. Developers and operations
teams collaborate closely, share many
responsibilities, and combine their workflows. This
reduces inefficiencies and saves time (e.g. reduced
handover periods between developers and
operations, writing code that takes into account the
environment in which it is run).
10. Benefits of DevOps cont..
Security
• Move quickly while retaining control and
preserving compliance. You can adopt a
DevOps model without sacrificing security by
using automated compliance policies, fine-
grained controls, and configuration
management techniques. For example, using
infrastructure as code and policy as code, you
can define and then track compliance at scale.
11. Why DevOps Matters?
• Software and the Internet have transformed the world and its
industries, from shopping to entertainment to banking. Software
no longer merely supports a business; rather it becomes an
integral component of every part of a business. Companies
interact with their customers through software delivered as online
services or applications and on all sorts of devices. They also use
software to increase operational efficiencies by transforming every
part of the value chain, such as logistics, communications, and
operations. In a similar way that physical goods companies
transformed how they design, build, and deliver products using
industrial automation throughout the 20th century, companies in
today’s world must transform how they build and deliver software.
12. • DevOps Cultural Philosophy
• Transitioning to DevOps requires a change in culture and mindset. At its
simplest, DevOps is about removing the barriers between two traditionally
siloed teams, development and operations. In some organizations, there may
not even be separate development and operations teams; engineers may do
both. With DevOps, the two teams work together to optimize both the
productivity of developers and the reliability of operations. They strive to
communicate frequently, increase efficiencies, and improve the quality of
services they provide to customers. They take full ownership for their services,
often beyond where their stated roles or titles have traditionally been scoped by
thinking about the end customer’s needs and how they can contribute to solving
those needs. Quality assurance and security teams may also become tightly
integrated with these teams. Organizations using a DevOps model, regardless of
their organizational structure, have teams that view the entire development and
infrastructure lifecycle as part of their responsibilities.
13. DevOps methods
• There are a few common DevOps methods that organizations can use to speed and improve
development and product releases. They take the form of software development
methodologies and practices. Among the most popular ones are Scrum, Kanban, and Agile:
• Scrum. Scrum defines how members of a team should work together to accelerate
development and QA projects. Scrum practices include key workflows and specific
terminology (sprints, time boxes, daily scrum [meeting]), and designated roles (Scrum Master,
product owner).
• Kanban. Kanban originated from efficiencies gained on the Toyota factory floor. Kanban
prescribes that the state of software project work in progress (WIP) be tracked on a Kanban
board.
• Agile. Earlier agile software development methods continue to heavily influence DevOps
practices and tools. Many DevOps methods, including Scrum and Kanban, incorporate
elements of agile programming. Some agile practices are associated with greater
responsiveness to changing needs and requirements, documenting requirements as user
stories, performing daily standups, and incorporating continuous customer feedback. Agile
also prescribes shorter software development lifecycles instead of lengthy, traditional
“waterfall” development methods.
14. DevOps toolchain
• Followers of DevOps practices often use certain DevOps-friendly tools as part of their DevOps
“toolchain.” The goal of these tools is to further streamline, shorten, and automate the various
stages of the software delivery workflow (or “pipeline”). Many such tools also promote core
DevOps tenets of automation, collaboration, and integration between development and
operations teams. The following shows a sample of tools used at various DevOps lifecycle stages.
• Plan. This phase helps define business value and requirements. Sample tools include Jira or Git to
help track known issues and perform project management.
• Code. This phase involves software design and the creation of software code. Sample tools
include GitHub, GitLab, Bitbucket, or Stash.
• Build. In this phase, you manage software builds and versions, and use automated tools to help
compile and package code for future release to production. You use source code repositories or
package repositories that also “package” infrastructure needed for product release. Sample tools
include Docker, Ansible, Puppet, Chef, Gradle, Maven, or JFrog Artifactory.
• Test. This phase involves continuous testing (manual or automated) to ensure optimal code
quality. Sample tools include JUnit, Codeception, Selenium, Vagrant, TestNG, or BlazeMeter.
• Deploy. This phase can include tools that help manage, coordinate, schedule, and automate
product releases into production. Sample tools include Puppet, Chef, Ansible, Jenkins,
Kubernetes, OpenShift, OpenStack, Docker, or Jira.
• Operate. This phase manages software during production. Sample tools include Ansible, Puppet,
PowerShell, Chef, Salt, or Otter.
• Monitor. This phase involves identifying and collecting information about issues from a specific
software release in production. Sample tools include New Relic, Datadog, Grafana, Wireshark,
Splunk, Nagios, or Slack.
15. DevOps practices
• DevOps practices reflect the idea of continuous improvement and automation. Many practices focus
on one or more development cycle phases. These practices include:
• Continuous development. This practice spans the planning and coding phases of the DevOps
lifecycle. Version-control mechanisms might be involved.
• Continuous testing. This practice incorporates automated, prescheduled, continued code tests as
application code is being written or updated. Such tests can speed the delivery of code to
production.
• Continuous integration (CI). This practice brings configuration management (CM) tools together with
other test and development tools to track how much of the code being developed is ready for
production. It involves rapid feedback between testing and development to quickly identify and
resolve code issues.
• Continuous delivery. This practice automates the delivery of code changes, after testing, to a
preproduction or staging environment. An staff member might then decide to promote such code
changes into production.
• Continuous deployment (CD). Similar to continuous delivery, this practice automates the release of
new or changed code into production. A company doing continuous deployment might release code
or feature changes several times per day. The use of container technologies, such as Docker and
Kubernetes, can enable continuous deployment by helping to maintain consistency of the code
across different deployment platforms and environments.
• Continuous monitoring. This practice involves ongoing monitoring of both the code in operation and
the underlying infrastructure that supports it. A feedback loop that reports on bugs or issues then
makes its way back to development.
• Infrastructure as code. This practice can be used during various DevOps phases to automate the
provisioning of infrastructure required for a software release. Developers add infrastructure “code”
from within their existing development tools. For example, developers might create a storage volume
16. Benefits of DevOps
• DevOps proponents describe several business and
technical benefits, many of which can result in happier
customers. Some benefits of DevOps include:
• Faster, better product delivery
• Faster issue resolution and reduced complexity
• Greater scalability and availability
• More stable operating environments
• Better resource utilization
• Greater automation
• Greater visibility into system outcomes
• Greater innovation
17. The 10 best DevOps tools for 2021 and beyond
• 1. Gradle
• Your DevOps tool stack will need a reliable build tool. Apache Ant and Maven dominated the
automated build tools market for many years, but Gradle showed up on the scene in 2009, and its
popularity has steadily grown since then. Gradle is an incredibly versatile tool which allows you to
write your code in Java, C++, Python, or other languages. Gradle is also supported by popular IDEs
such as Netbeans, Eclipse, and IntelliJ IDEA. If that doesn’t convince you, it might help to know that
Google also chose it as the official build tool for Android Studio.
• While Maven and Ant use XML for configuration, Gradle introduces a Groovy-based DSL for
describing builds. In 2016, the Gradle team also released a Kotlin-based DSL, so now you can write
your build scripts in Kotlin as well. This means that Gradle does have some learning curves, so it can
help a lot if you have used Groovy, Kotlin or another JVM language before. Besides, Gradle uses
Maven’s repository format, so dependency management will be familiar if you have prior experience
with Maven. You can also import your Ant builds into Gradle.
• The best thing about Gradle is incremental builds, as they save a nice amount of compile time.
According to Gradle’s performance measurements, it’s up to 100 times faster than Maven. This is in
part because of incrementality, but also due to Gradle’s build cache and daemon. The build cache
reuses task outputs, while the Gradle Daemon keeps build information hot in memory in-between
builds.
• All in all, Gradle allows faster shipping and comes with a lot of configuration possibilities.