A Beginner's Guide To Everything DevOps - Opensource - Com1
A Beginner's Guide To Everything DevOps - Opensource - Com1
Subscribe now
Articles Resources
x Downloads About Open Organization
Get the highlights in your
inbox every week.
Image by : Opensource.com
A great deal has happened since DevOps became a common term in the IT world. With
so much of the ecosystem being open source, it's important to review why it started and
what it means to IT careers.
What is DevOps?
The DevOps discussion centers around the relationship between developers, the
individuals who write software for a living, and operators, those responsible for
maintaining that software.
Developers are typically enthusiastic and willing to adopt new approaches and
technologies to solve organizations' problems. However, they do face challenges, such
as:
Operators are historically focused on the stability and reliability of IT services. The
operations team is, therefore, concerned about making changes to resources,
technologies, or approaches as they look for stability. Their challenges include:
Instead of releasing a large number of application features at once, companies are trying
to see if they can roll out a small number of features to their customers through a series
of release iterations. This has several advantages, like better software quality, quicker
feedback from customers, etc. These, in turn, ensure high customer satisfaction. To
achieve these objectives, companies are required to:
DevOps fulfills all these objectives and helps achieve seamless delivery. Organizations
adopt DevOps to achieve levels of performance that were unthinkable even a few years
ago. They are doing tens, hundreds, or even thousands of deployments per day while
delivering world-class reliability, stability, and security. (Read more about batch sizes
and the impact on software delivery.)
DevOps is often discussed in relation to other IT practices, notably agile and waterfall IT.
Comparing the traditional software waterfall model with DevOps is a good way to
understand the benefits DevOps provides. The following example assumes the
application is scheduled to go live in four weeks, coding is 85% complete, the
application is a fresh launch, and the process of procuring the servers to ship the code
has just been initiated.
After placing an order for new After placing an order for new servers, the
servers, the development team development and operations teams work together
works on testing. The on the processes and paperwork to set up the new
operations team works on servers. This results in better visibility into the
extensive paperwork, as infrastructure requirements.
required in enterprises, to
deploy the infrastructure.
The operations team has no The operations team is completely aware of the
idea of the development team’s progress the development team is making. The
progress. The operations team operations team interact with the development
develops a monitoring plan team, and they jointly develop a monitoring plan
based on their understanding. that caters to the IT and business needs. They also
leverage application performance monitoring (APM)
tools.
Before go-live, the load test Before the go-live, the load test makes the
crashes the application, which application slow. The development team swiftly
delays the release. fixes the bottlenecks, and the application is
released on time.
DevOps lifecycle
Continuous planning
Continuous planning leverages lean principles in order to start smaller by identifying the
resources and outcomes needed to test the business value or vision, adapt continually,
measure progress, learn from the customers' needs, shift direction as needed with
agility, and update the business plan.
Collaborative development
Continuous testing
Continuous testing reduces the testing cost while helping the development teams
balance speed and quality. It also eliminates testing bottlenecks through virtualized
services and simplifies the creation of virtualized test environments that can be easily
shared, deployed, and updated as systems change. These capabilities reduce the cost
of provisioning and maintaining test environments and shorten test-cycle times by
allowing integration testing early in the lifecycle.
This adoption path entails one major practice: continuous release and deployment.
Continuous release and deployment provide a continuous delivery pipeline that
automates key processes. It reduces the number of manual processes, wait times for
resources, and amount of rework by enabling push-button deployment that ensures
higher numbers of releases, reduced errors, and end-to-end transparency.
Automation plays a key role in ensuring the software is released repeatably and reliably.
One critical objective is to take manual processes like build, regression, deployment,
and infrastructure provisioning and automate them. This requires version control for
source code; test and deployment scripts; infrastructure and application configuration
data; and the libraries and packages the application depends on. The ability to query the
state of all environments is another important factor.
Continuous monitoring
Continuous feedback and optimization provide visual evidence for analyzing customer
journeys and pinpointing pain areas. Feedback can be enabled for both pre- and post-
production phases to maximize value and ensure that even more transactions are
successfully completed. This provides immediate visibility into the root cause of
customer struggles that affect behavior and impact business.
Benefits of DevOps
DevOps can facilitate a collaborative environment where developers and operators work
as a team toward common ends. A major milestone in this process is the implementation
of continuous integration and continuous delivery (CI/CD). This enables teams to launch
software to the market faster with fewer errors.
Predictability: DevOps offers a significantly lower failure rate for new releases.
Maintainability: It enables effortless recovery in the event of a new release crashing
or disabling the application.
Reproducibility: Versioning the builds or the code enables earlier versions to be
restored as needed.
Higher quality: Incorporating infrastructure issues improves application development
quality.
Time to market: Streamlined software delivery reduces time to market by 50%.
Reduced risk: Incorporating security into the software lifecycle reduces defects
across its lifecycle.
Cost-efficiency: Driving cost-efficiency in software development pleases senior
management.
Resiliency: The software system is more stable, secure, and changes are auditable.
Breaks larger codebase into manageable pieces: DevOps is based on the agile
programming method, which supports breaking down larger codebases into smaller,
more manageable chunks.
DevOps principles
DevOps adoption has produced several principles that have evolved (and are still
evolving). Most solution providers have developed their own variants. All these principles
take a holistic approach to DevOps, and organizations of all sizes can adopt them.
The objective is to allow the development and quality assurance (QA) teams to develop
and test against systems that behave like production systems, so they can see how the
application behaves and performs well before it is ready for deployment.
This principle allows the development and operations teams to support an agile software
development process throughout the lifecycle. Automation is critical to creating
processes that are iterative, reliable, and repeatable. Hence, the organization must
create a delivery pipeline that enables continuous, automated deployment and testing.
Frequent deployments also allow teams to test the deployment processes, thereby
lowering the risk of deployment failures during actual releases.
Organizations are good at monitoring applications in production because they have tools
that capture metrics and key performance indicators (KPIs) in real time. This principle
moves monitoring to early in the lifecycle, ensuring that automated testing monitors
functional and nonfunctional attributes of the application early in the process. Whenever
an application is tested and deployed, quality metrics should be captured and analyzed.
Monitoring tools provide early warning about operational and quality issues in the
landscape that may occur in production. These metrics should be gathered in a format
that all business stakeholders can understand and articulate.
5 Release
Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible,
6 Deploy
Apache ZooKeeper, etcd, Netflix Archaius, Terraform
7 Ops Operate*
* Operating is best numbered as the final step for Operations teams, but its tooling
overlaps with release and deploy lifecycle stages. It was moved for ease of readability.
In conclusion
Would you consider your IT department to be DevOps adopters? Please tell your story
in the comments.
This article is an adaptation of DevOps Tools & Frameworks: Everything You Need To
Know. It has been republished with permission.
Topics : DevOps
• More about me
Recommended reading
How does kanban relate to DevOps? How to be the right person for How to test failed authentication
DevOps attempts with test-driven
development
Why is agile so much more How service virtualization relates to How to solve the DevOps vs. ITSM
successful than waterfall? test-driven development culture clash
3 Comments
Reply
Reply
os on 16 Mar 2020 0
Nice Article, really its very helpful to the beginner's.
Reply
Comment now
Login or Register to earn points for your comments.
Your name *
E-mail *
The content of this field is kept private and will not be shown publicly.
Accept the Terms of Use to continue. You are licensing your contribution(s)
as CC-BY-SA. *
CAPTCHA
This question is for testing whether or not you are a human visitor
and to prevent automated spam submissions.
Save
Subscribe
Privacy Statement
Find us: Privacy Policy | Terms of Use | Contact | Meet the Team | Visit opensource.org
For more discussion on open source and the role of the CIO in the enterprise, join us at The EnterprisersProject.com.
The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat.
Opensource.com aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring
that you have the necessary permission to reuse any work on this site. Red Hat and the Red Hat logo are trademarks of Red Hat, Inc., registered in the