DevOps Model
• DevOpsis 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.
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 DevOpscont..
• 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 DevOpscont..
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 DevOpscont..
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 DevOpscont..
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 DevOpscont..
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 CulturalPhilosophy
• 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
• Thereare 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
• Followersof 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
• DevOpspractices 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 on demand from Docker, Kubernetes, or OpenShift. This practice also allows operations
teams to monitor environment configurations, track changes, and simplify the rollback of
configurations.
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 bestDevOps 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.