DevOps
DevOps is a set of practices that combines software development (Dev) and IT
operations (Ops). It aims to shorten the systems development life cycle and
provide continuous delivery with high software quality. DevOps is complementary
with Agile software development; several DevOps aspects came from the Agile
methodology.
As
DevOps is intended to
be a cross-functional mode of working, those who practice the methodology use
different sets of tools—referred to as "toolchains"—rather than a
single one These toolchains are expected to fit into one or more of the
following categories, reflective of key aspects of the development and delivery
process.
·
Coding – code development and review, source code management
tools, code merging.
·
Building – continuous integration tools, build
status.
·
Testing – continuous testing tools that provide
quick and timely feedback on business risks.
·
Packaging – artifacts repository, application
pre-deployment staging.
·
Releasing – change management, release approvals,
release automation.
·
Configuring – infrastructure configuration and
management, infrastructure as code tools.
·
Monitoring – applications performance monitoring,
end-user experience.
Benefits of DevOps
DevOps
reduces the complexity of managing software engineering projects through
collaboration and automation. Some benefits of adopting DevOps include:
·
Ensure
quicker and frequent delivery of application features that improve customer
satisfaction
·
Create
a balanced approach to managing an SDLC for enhanced productivity of software
teams
·
Innovate
faster by automating repetitive tasks
·
Remediate
problems quicker and more efficiently
· Minimize production costs by cutting down errors in maintenance and infrastructure management
SRE (Site-reliability engineering)
A site reliability engineer (SRE)
monitors and helps stabilize services in production, sets and maintains
acceptable performance and availability thresholds (service level objectives),
writes code that automates repetitive tasks (toil), and works on-call shifts
responding to alerts.
SRE essentially creates a new role: the site reliability engineer. An SRE is tasked with ensuring seamless collaboration between IT operations and development teams through the enhancement and automation of routine processes. Some core responsibilities of an SRE include:
·
Developing,
configuring, and deploying software to be used by operations teams
·
Handling
support escalation issues
·
Conducting
and reporting on incident reviews
·
Developing
system documentation
·
Change
management
·
Determining
and validating new features and updates
SRE
tools
SRE teams rely on the automation of
routine processes using tools and techniques that standardize operations across
the software’s lifecycle. Some tools and technologies that support Site
Reliability Engineering include:
·
Containers package applications in a unified
environment across multiple deployment platforms, enabling cloud-native
development.
·
Kubernetes is a popular container orchestrator
that can effectively manage containerized applications running on multiple
environments.
·
Cloud platforms allow you to provision scalable,
flexible, and reliable applications in highly distributed environments. Popular
platforms include Microsoft Azure, Amazon AWS, and Google Cloud.
·
Project planning & management tools allow you to manage IT operations
across distributed teams. Some popular tools include JIRA and Pivotal Tracker.
·
Source control tools such as Subversion and GitHub
erase boundaries between developers and operators, allowing for seamless
collaboration and release of application delivery. Source control tools include
Subversion and GitHub.
SRE vs DevOps
Both methodologies enforce minimal
separation between Development and Operations teams. But we can sum up the key
difference as this: DevOps focuses more on a cultural and philosophical shift,
and SRE is more pragmatic and practical.
This highlights various differences in how the concepts operate, including:
·
Essence: SRE
was developed with a narrow focus: to create a set of practices and metrics
that allow for improved collaboration and service delivery. DevOps, on the other hand, is the
collection of philosophies that enable the mindset of culture and collaboration
between siloed teams.
·
Goal: SRE and DevOps
aim to bridge the gap between development and operations, though SRE involves
prescriptive ways of achieving reliability, DevOps works as a template that guides collaboration.
·
Focus: SRE mainly
focuses on enhancing system availability and reliability DevOps focuses on speed of development and delivery while enforcing
continuity.
·
Team structure: SRE
is composed of site reliability engineers who have a background in both
operations and development. DevOps
teams include a variety of roles, including QA experts, developers, engineers,
SREs and many others.
DevSecOps short for development, security, and
operations—automates the integration of security at every phase of the software
development lifecycle, from initial design through integration, testing,
deployment, and software delivery
What is the difference between DevOps and DevSecOps?
A DevOps engineer thinks about things like how he or she
can deploy updates to an app as efficiently as possible with minimal disruption
to the user experience. ... DevSecOps emphasizes that developers should create code with security in mind and aims to
solve the issues with security that DevOps doesn't address
No comments:
Post a Comment