You are on page 1of 25

UNIT 2

Fundamentals of Dev ops:

DevOps Architecture 101


Need a DevOps architecture primer? In the following section, we will cover the
DevOps model, DevOps architecture platforms and the vital topic of continuous
delivery.

DevOps Model
The DevOps model goes through several phases governed by cross-discipline
teams. Those phases are as follows:

Planning, Identify, and Track


Using the latest in project management tools and agile practices, track ideas and
workflows visually. This gives all important stakeholders a clear pathway to
prioritization and better results. With better oversight, project managers can
ensure teams are on the right track and aware of potential obstacles and pitfalls.
All applicable teams can better work together to solve any problems in the
development process.

Development Phase
Version control systems help developers continuously code, ensuring one patch
connects seamlessly with the master branch. Each complete feature triggers the
developer to submit a request that, if approved, allows the changes to replace
existing code. Development is ongoing.

Testing Phase
After a build is completed in development, it is sent to QA testing. Catching
bugs is important to the user experience, in DevOps bug testing happens early
and often. Practices like continuous integration allow developers to use
automation to build and test as a cornerstone of continuous development.

Deployment Phase
In the deployment phase, most businesses strive to achieve continuous delivery.
This means enterprises have mastered the art of manual deployment. After bugs
have been detected and resolved, and the user experience has been perfected, a
final team is responsible for the manual deployment. By contrast, continuous
deployment is a DevOps approach that automates deployment after QA testing
has been completed.

Management Phase
During the post-deployment management phase, organizations monitor and
maintain the DevOps architecture in place. This is achieved by reading and
interpreting data from users, ensuring security, availability and more.

Start with a Platform


If you haven’t already made the switch to DevOps, a reasonable first step is to
select a platform on which to approach this model. Several foundational
frameworks exist to assist with infrastructure and configuration management.
These include:

 Amazon Web Services (AWS)


 Microsoft Azure
 Red Hat OpenShift
 Chef Automation for Web-Scale IT
 Ubuntu Cloud

Finding the right platform for you could be as easy as speaking to the experts
at BMC for DevOps solutions.

Continuous Delivery
Finally, DevOps architecture is created on the premise of continuous delivery.
That is, any practices set in play to foster communication and collaboration
between teams should be working toward the frequent and routine delivery of
quality tested software. This can be automated, as in the case of continuous
deployment as described above.

DevOps: Architecture Best Practices


You’ve probably come to realize that DevOps is treated differently from
company to company. That’s partly because of its ability to scale for both large
and small organizations. But there are a couple of best practices that can be
applied universally:

DevOps Should be Agile


A traditional approach to development might look something like the waterfall
method of project management, whereas one team completes a project and then
the next team picks up the torch, and so on and so forth until you reach the base
of the waterfall. DevOps chucks that concept out the window.

In DevOps architecture, all necessary teams work simultaneously and cyclically


providing a tracked feedback loop along the way. The DevOps project
management approach is based on a foundation of achieving greater agility
through communication and collaboration.

Hiring the Right People


The outlook for DevOps jobs is excellent right now, as it should be. Enterprises
looking to implement this approach effectively should ensure they have the
right people in the right positions to do so.

Here are a few positions enterprises should seek to fill if they are making a
switch to DevOps architecture for software releases:

1. DevOps Architect
2. Release Manager
3. Automation Specialist
4. Integration Specialist
5. Software Developer
6. QA Tester
7. Database Engineer
8. Project Manager
These are just a few important roles that aid the DevOps process. The needs of
each organization will dictate which roles are the most critical to overall
success.

Benefits of DevOps Architecture


A properly implemented DevOps approach comes with a number of benefits.
These include the following that we selected to highlight:

Decrease Cost
Of primary concern for businesses is operational cost, DevOps helps
organizations keep their costs low. Because efficiency gets a boost with DevOps
practices, software production increases and businesses see decreases in overall
cost for production.
Increased Productivity and Release Time
With shorter development cycles and streamlined processes, teams are more
productive and software is deployed more quickly.
Customers are Served
User experience, and by design, user feedback is important to the DevOps
process. By gathering information from clients and acting on it, those who
practice DevOps ensure that clients wants and needs get honored, and customer
satisfaction reaches new highs.
It Gets More Efficient with Time
DevOps simplifies the development lifecycle, which in previous iterations had
been increasingly complex. This ensures greater efficiency throughout a
DevOps organization, as does the fact that gathering requirements also gets
easier. In DevOps, requirements gathering is a streamlined process, a culture of
accountability, collaboration and transparency makes requirements gathering a
smooth going team effort where no stone is left unturned.

DevOps Architecture and Your Business


In a perfect world, DevOps architecture creates a high collaboration, silo-free
environment for operations and development to thrive and build on
requirements obtained with relative ease. However, we all know that no two
DevOps organizations are the same, and things rarely go perfectly.

Still, building your organization on the principles of DevOps architecture is


proven to make your business more productive with better delivery along with
more frequent and consistent results to your customers. For these reasons,
implementing a DevOps approach to software design has become an
instrumental trend in enterprise businesses that is not likely to go away.

As more and more businesses achieve the benefits of an agile, collaborative


approach to software development, BMC is here to help guide them to the right
tools and techniques. If you’re considering DevOps for your organization, BMC
has solutions that could help you. Contact us today to learn more about
how BMC can assist your DevOps organization.

DEPLOYMENT:
What is continuous deployment? Continuous deployment (CD) is an automated software
release practice where code changes are deployed to different stages as they pass predefined
tests. The goal of CD is to facilitate faster releases by using automation to help remove the
need for human intervention as much as possible during the deployment process.

When it comes to software development, businesses today often face two big challenges:
shipping software fast and innovating at scale. DevOps seeks to help solve these problems by
applying automation throughout the software development lifecycle (SDLC) to facilitate the
quick delivery of more reliable and secure software.

Continuous deployment, or CD, is one of the more advanced examples of automation in a


DevOps practice. It requires a mixture of rigorous testing, deep cross-team collaboration,
advanced tooling, and workflow processes across the application design and development
process.

And when it’s successfully implemented, it works. DevOps organizations that adopt CD have
been found to ship code faster and outperform other companies by 4-5x.

In this guide, we’ll explore:

 The benefits of continuous deployment

 The continuous deployment process

 The difference between continuous delivery and continuous deployment

 Continuous deployment pipelines explained

 A continuous deployment pipeline model

 How to make continuous deployment work in your organization


The benefits of continuous deployment

When successfully implemented, continuous deployment makes it easier for businesses to


quickly respond to customer demands and ship software updates at a rapid clip—often within
minutes committing code changes.

Still, implementing CD can be a radical shift from spending days, or even weeks preparing
for a software release. But businesses that make the investment in time, resources, and
tooling see concrete advantages.

Some common benefits include:

 Fully automated deployment cycles. This enables organizations to spend more time


building software instead of pausing development work in preparation for “release
day.”
 More regular, incremental deployments. This leads to faster product development
work and helps facilitate a continuous improvement model.
 Fast feedback loops on new features. Organizations can quickly get real-time
feedback on new features, updates, and code changes.

What is the continuous deployment process?

Pro tip: This guide assumes you understand continuous integration and the concept of
automated pipelines. If you're unclear on these DevOps practices, try reading our guide.

DevOps seeks to increase the speed of innovation and value delivery by applying automation
to every stage of the SDLC. With that view, continuous deployment stands as the ultimate
goal of DevOps: A completely automated SDLC where every code change is pushed to
production if it passes a predefined set of tests.

In some ways, building an automated pipeline is one of the easiest parts of adopting a
continuous deployment model. But very few organizations start their DevOps journey by
building a continuous deployment practice due to the cultural change it signifies, and the
maturity of the testing suite it requires.

Danilo Suntal, Agile & DevOps lead at P&G

In that light, it’s best to understand the process and journey it takes to achieve a
fully functioning continuous deployment practice.

The graphic below shows a high-level journey map for how organizations
typically start thinking about automating the SDLC.

To start, organizations need to build a continuous integration (CI) practice.


The foundational elements of a strong CI practice—regular code commits,
a testing strategy, version control tooling, and a CI platform—set the stage
for organizations to begin developing a continuous deployment practice.
Deployment

Once code is verified via testing, the automated deployment process begins.
More advanced implementations will typically create automation workflows
that move code to deployment immediately after it is committed (of course, this
assumes it passes all predefined tests in the CI stage).

Common deployment practices

 Automated deployments: Automating code deployments after a build


passes also predefined tests.
 Version control: Tracks the history of changes as people and teams
collaborate on software projects together.
 Blue/green deployments: Allows for a deployment where the system
gradually moves user traffic from an old version of an application to a
new one.
 Production testing: Automated quality and functional tests are applied to
a build after deployment to ensure production stability.
 Dark launch: Releasing code changes to a small set of users to see real-
time usage and system demands before orchestrating a large-scale release.

Monitoring

Continuous monitoring is a critical element organizations need to invest in to


support continuous deployment. Monitoring should take place across the SDLC.
But the ability to see what is and is not working and receive real-time alerts
before, during, and after deployments is key. Tooling that helps teams visualize
performance metrics and show system strains are one helpful investment.

Common monitoring practices

 Application monitoring: Monitor application health with key focus


areas including uptime, API responses, and stability of the front- and
back-ends.
 Infrastructure monitoring: Monitor real-time system demands and how
the core infrastructure is supporting those demands.
 User-behavior monitoring: Track user behavior within an application to
track possible production-level system errors or elements that disrupt the
user experience. This monitoring can also be used to inform future
application development.
 Security monitoring: Tracking activity from malicious actors as well as
any security vulnerabilities that appear in production code.
Response

Whether it’s addressing a production-level system error or identifying a security


incident or potential new feature for development, being able to respond to
events is a critical element of a continuous deployment pipeline. A benefit of
continuous deployment is that code is immediately released into production.
This also means that organizations need to be prepared to respond to and
address any issues that emerge after deployment. Common metrics used to
evaluate response times include MTTR (mean time to resolution), which
organizations will track to evaluate improvement over time.

Common response practices

 Deployment rollbacks: Roll back an application to a previous build to


solve any issues that appear in a new release.
 Infrastructure checks: Putting controls in place to keep any production-
level configuration or environment changes from happening after a
deployment.
 Activity logs: Maintain activity logs to help recreate user behaviors and
process executions to help teams isolate potential problems.

Continuous deployment stages and environments

In order to build a scalable CI/CD pipeline, most organizations will invest


resources in developing a build server to facilitate CI to compile and test code.
This will typically be paired with continuous deployment pre-production and
production environments.

The purpose of pre-production and production environments is to facilitate the


testing and deployment of release candidates via an automated workflow. As
releases make it to pre-production environments, different automated tests are
applied to the codebase to identify any issues or reasons to pause a deployment.
This process typically happens in four steps:

1. Code changes are committed to a shared repository. This triggers an


automated build on a CI server where dependencies are resolved, units
tests are applied, and the code is packaged and compiled.
2. A release is deployed to a pre-production environment. If the code
passes all tests in the CI server, it triggers an automated workflow that
sends a release candidate to a continuous deployment server.
3. More automated tests are performed. With the release in a pre-
production environment, additional tests will then be performed that
include functional testing, security testing, performance testing, and more
before a deployment is released to production.
4. A software update is released to users. Once a release candidate passes
all automated tests in the developer and testing environments, it is
released to end users.

The best CD environments combine rigorous testing with continuous


monitoring and alerts to help teams resolve any issues quickly. While every CD
environment and testing regimen are unique to the organization that develops
them, they’re all united by a simple goal: continuous and fast value delivery to
end users.

How to make continuous deployment work in your organization

As one of the more advanced examples of DevOps automation, continuous


deployment requires time, engineering resources, and tooling to successfully
adopt. It also requires a strong DevOps culture that emphasizes strong
collaboration across all stages of the SDLC.

At GitHub, we know there is no singular model for continuous deployment.


Every organization needs to build a practice that meets its needs and serves its
business priorities. Even still, we see common best practices among all elite
DevOps organizations that successfully adopt continuous deployment. These
include:

 Focus on continuous integration first. A strong CI practice is


foundational to building a successful continuous deployment practice and
pipeline. This includes embracing a CI culture where every developer
commits code changes multiple times a day. It also involves building out
a strong automated testing strategy that ensures all code commits are
screened before making it to production. Organizations should focus on
automating as much of the SDLC as possible and keeping the main code
branch green, or free from any potential issues. At GitHub, for instance,
we have invested in building out our own CI/CD capabilities with GitHub
Actions to have both a rich managed or self-hosted experience for
organizations.
 Build a strong testing strategy. A continuous deployment practice
means you’ll be releasing code changes as you make them—and any
issues that aren’t caught by a test will make it into production. This
makes it critical to develop a strong automated testing strategy that covers
a large portion of your codebase. Most organizations aim to have at least
75% testing coverage.

You’ll also want to spend time making sure your tests—be they unit,
functional, performance, application, or security tests—are effective. It’s
one thing to have large test coverage. It’s another thing to have good tests
that make your codebase stronger, and ensure that you have confidence in
your production code.
 Invest in a continuous monitoring practice. A strong testing suite and
good testing coverage are critical in a continuous deployment practice.
But without real-time monitoring in your testing and production
environments, you’re at risk of missing the mark.
A code change or new feature may introduce unintended issues your tests
uncover before a deployment. And even if your tests show your codebase
is stable, infrastructure issues may crop up in production when user
activity introduces unexpected variables.

This is why it’s critical to invest in continuous monitoring tooling to track


real-time demands, system performance, and application behaviors. The
best tools will help you track application and system performance as well
as security issues and any irregularities in your systems. They’ll also
provide you with real-time alerts and activity logs, so your engineering
teams can work on potential fixes.
 Develop new tests as you develop new code. With every code change
moving to production, a continuous deployment practice means you have
less time to write new tests to verify them. This is a departure from other
development methodologies, which typically leave more time for QA
teams to work after developers have written new code and introduced
new features.
To solve this, it’s a good practice to develop tests as you develop new
code. It’s even better if you can start thinking about your testing strategy
as your product teams plan out new features.

Building testing requirements into the planning and development stage is


a good practice with continuous deployment. It will also have long-term
benefits, as you increase your testing coverage in parallel with your
product development work.
 Shift left and emphasize security across the SDLC. Security is a
critical component in software today—and that’s especially true for
organizations that embrace a continuous deployment practice where every
code commit that passes all tests immediately makes it into production.
DevSecOps is an evolution, or natural progression, of DevOps, and seeks
to build security into every part of the SDLC. This means making
security as early a part of the SDLC as possible—or shift lift—to ensure
organizations are prioritizing the development of tests, searching out
possible vulnerabilities, and strengthening systems as much as possible.

A combination of tooling such as GitHub Advanced Security and cultural


practices that encourage everyone to approach development with a
security mindset is key. Other tools such as cloud IDEs (integrated
development environments) can also be helpful to ensure your
development environments are secure.

ORCHESTRATION:
Orchestration is the automated configuration, management, and
coordination of computer systems, applications, and services. Orchestration
helps IT to more easily manage complex tasks and workflows. IT teams must
manage many servers and applications, but doing so manually isn't a scalable
strategy
Why Invest in DevOps Orchestration?
DevOps teams must navigate across departments, requiring a solution where
their tools can also be piloted smartly. This situation calls for DevOps
orchestration solutions, which have the ability to combine numerous automated
elements from different DevOps toolkits. 
With DevOps orchestration, teams can utilize their current in-use automation
tools while being able to engage under an overarching umbrella designed to pull
everything into a single workflow.

1. Accelerate your automation process


DevOps orchestration ensures seamless and quick delivery of new builds into
production and minimizes the effort spent on repetitive tasks. As a consequence,
DevOps teams can focus on more critical projects and decision-making rather
than building pipelines.

2. Improve cross-team collaboration


Having a platform where all activities are consolidated and updated constantly
boosts effective communication between operation and development teams,
with everyone in sync throughout all steps. 

3. Ensure higher release quality


DevOps orchestration lowers the chance of mistakes reaching the end-user by
including quality control activities such as approvals, scheduling, security
testing, and automatic status reporting.

4. Reduce costs for IT infrastructure and human resources


DevOps orchestration lowers infrastructure investment costs and the number of
IT employees required. In the long run, firms can expand their cloud service
footprint and be more flexible in allocating business costs.

5. Build transparency across the SDLC


It isn’t easy to establish clarity and openness throughout a project when tasks
and information are siloed. DevOps orchestration is used to coordinate all tasks,
centralize data related to all operations, and provide updates and progress to key
stakeholders throughout the development lifecycle. 

6. Boost the velocity of releases


DevOps orchestration entails considerable automation and the automated
progression of software through certain processes – such as testing – and on to
the next stage of a release pipeline. As DevOps orchestration removes the time
spent waiting for another employee to finish manual duties and send the
program to the next step in the process, software reaches the end-user faster,
and wait time is diverted to the next project at hand. With a higher level of
automation, you can now develop more services and get them to market more
quickly, resulting in cost savings and revenue gains.

DevOps Orchestration in Practice


Let’s return to the scenario of Becky and James and observe how DevOps
orchestration can swiftly bring drastic changes to their teams, both vertically
and horizontally. 
Thanks to an orchestrated system where everyone across teams is in sync,
Becky and James can eliminate the existing silos and communicate better about
all release activities in one centralized dashboard, thus performing faster
troubleshooting and restoration to make crucial decisions, even in the toughest
situations. Becky from the development team can encapsulate runnable
programs into separate parts for easier testing and faster upgrades, thus focusing
more on innovation instead of spending too much effort on deployment.
Moreover, James from the operations team no longer needs to worry about
continuous follow-ups, as DevOps orchestration manages all execution
infrastructure and scalability through its predefined configurations and
serverless monitoring system.

The Best DevOps Orchestration Tools Shortlist


Here’s the list of the best DevOps orchestration tools that I’ll cover in this article.
1. Dynatrace — Versatile, all-in-one application performance management (APM) solution
for observability

2. QA Wolf — End-to-end testing solution with a team of QA experts for support


3. QuerySurge — Best for building tests "on the fly" with large result sets
4. Minikube — Customizable, lightweight virtual machine for running a local Kubernetes
cluster
5. Marathon — Apache Mesos framework for container orchestration on Mesos
6. Rancher — Nimble solution that lowers the entry barrier for container management
adoption
7. Docker Swarm — Lightweight, cost-effective tool for running containerized Docker
applications
8. Containership  — Deploy containerized workloads using docker without needing to
understand or learn docker
9. Red Hat OpenShift  — Full-stack solution for building both traditional and cloud-native
apps
10. Nomad — Flexible, yet powerful independent-minded container orchestrator with
universal

DevOps Orchestration Tools: Key Features

These are the key features DevOps orchestration tools need to remain
competitive.

1. Integrated automation: In order to be an effective orchestration platform, a


tool needs to have automation pervasively interwoven into the fabric of its
operations, especially those that have a disproportionate impact on
productivity and cost-effectiveness. Examples include test automation and
testing tools such as Jenkins, Terraform, Bamboo, among others.
2. CI/CD pipeline: DevOps tools are largely synonymous with continuous
integration and continuous delivery functionality. Therefore, an orchestration
tool should be equipped with robust CI/CD pipelines that facilitate the creation
and delivery of well-tested, high-quality software at high velocity.
3. Support for cloud-native technologies: Let’s face it, software has migrated
to the cloud. Thus, orchestration tools strive to make the “build once, deploy
everywhere” mantra a reality. So, in addition to on-premise system
deployment, support for cloud computing should be a centerpiece.
4. Container management: Orchestration tools must be adept at running
microservices and container-based infrastructure. This feature is important as
Kubernetes and containers have become the preferred way to modernize
legacy apps and build software at scale.

Best DevOps Orchestration Tools: Comparison Criteria

Below is the summary of the evaluation criteria that guided my selection of the
top ten tools.
1. User Interface (UI): A tool’s UI/UX interface is typically its first contact with
its customer. Therefore, I looked for easy navigation with a clean, inviting, and
user-friendly layout.
2. Usability: DevOps orchestration tools handle fairly complex tasks like
configuring build processes. The best tools are relatively simple to use and
easy to learn and paired with rich features to work and collaborate effectively.
3. Integrations: The best DevOps tools have the ability to support a wide range
of popular tools and environments. It should offer compatible support for CI
tools and version control systems like GitHub, Jenkins, Bitbucket, and Docker.
It must build partner ecosystems to provide apps that aren’t in its wheelhouse.
4. Value for Pricing: Affordability is always a vital factor in making business
purchases. Therefore, I look for cost-effectiveness and the value for money a
tool provides.

What is a Pipeline in DevOps? Overview, Tools, Implementation, and More


Table of Contents

What Is a Pipeline in DevOps?


Components of a DevOps Pipeline
What is Pipeline in DevOps: The Phases of a DevOps Pipeline
How to Create a DevOps Pipeline
All About Continuous Integration/Continuous Delivery (CI/CD)
View More
DevOps is a popular application design philosophy that merges development
and operations, hence the clever name. However, there are many terms relating
to DevOps, and it’s helpful to sometimes look at one of them and explore it in-
depth. By breaking down a concept like DevOps and focusing on one element at
a time, we can gain a greater overall understanding of it, which in turn helps us
get more out of the process.

So, to get to know DevOps better, we're looking at pipelines in DevOps. This
article will answer the question, "What is a pipeline in DevOps?". Additionally,
we will explore the components, phases, and stages of the DevOps pipeline and
even dedicate some time to explaining what the Azure DevOps pipeline is all
about.
What Is a Pipeline in DevOps?

A DevOps pipeline is the set of automated processes and tools that the
development and operations teams use to compile, construct, test, and deploy
software code faster and easier. However, the term "pipeline" isn't an exact fit;
it's more like an assembly line. For instance, an automobile that goes through
the factory assembly line undergoes continuous assembly. Workers first build a
chassis, add the engine, doors, tires, seats, and instrument panel, and finish it
with exterior paint.

The DevOps pipeline works like that, starting with writing the code and then
running tests to find bugs, errors, typos, and redundancies. DevOps teams then
put fixes and patches to address the issues, test them some more, and finally
release the working product to users.

Enable flow of changes in production/tools used/SDLC

Process architecture technology infrastructure.

Code in source code repository, checked integrated, build is created in source


code rpeostiroy, testing methods applied, deployment of testing environment.

Components of a DevOps Pipeline

The DevOps pipeline is composed of seven components:

 Continuous Integration and Continuous Delivery: These two components are


typically mentioned together, usually referred to as CI/CD or a CI/CD
pipeline. Continuous integration means the system frequently integrates new
code changes into the central repository, usually a few times per day. This
process makes it easier to merge different code changes and spot bugs.
The continuous delivery aspect means incremental deliveries of software and
updates to production. CD helps developers automate the whole software
release operation and increase how frequently they release new features.

 Continuous Testing: DevOps personnel use continuous testing to perform


automated tests on any code integrations accumulated during the continuous
integration (CI) phase. CI ensures high-quality app development and
evaluates the release's risks before sending it to delivery.
 Continuous Deployment: This component is often blurred with continuous
delivery, although both are very different parts of the process. Continuous
deployment follows continuous delivery. Any updates that successfully make
it through the automated testing phase get automatically released into
production. This way, continuous deployment allows multiple production
deployments on a given day.
 Continuous Monitoring: Continuous monitoring validates the environment’s
stability and verifies that the applications are doing what they’re designed to
do. In addition, the operations teams monitor the applications and systems,
keeping an eye on the latter's performance.
 Continuous Feedback: Continuous feedback is often overlooked, which is
regrettable because DevOps teams need constant feedback to ensure that the
app does what everyone (the developers, stakeholders, and customers) expect
it to. Everyone needs to be on the same page, and that’s what continuous
feedback does.
 Continuous Operations. This component does exactly what the name implies:
maintaining a 24-hour, seven-day-a-week operation with little to no planned
downtime. The ultimate goal of continuous operations is to ensure that end-
users won't suffer interruptions due to any hardware or software changes. It's
an expensive initial investment but pays for itself in the long run because it
prevents costly production losses.

What is Pipeline in DevOps: The Phases of a DevOps Pipeline

Now that we’re familiar with the components of the DevOps pipeline, it’s time
to look at the phases, or stages, of the pipeline.

 Develop: The developers write the software code and then push it into the
source control repository, after which the source code integration occurs.
 Build: In the next stage, the application is built with the integrated source
code from the previous phase’s source code repository.
 Test: In this phase, testers execute various tests (functional, system, unit) on
the build created in the previous stage. If the tests reveal issues, they’re
kicked back to the developer to be resolved.
 Deploy: This final stage sees the deployment of the final version, conducted
when the production environment is created and configured.

How to Create a DevOps Pipeline

Although each company or organization has its unique take on DevOps with its
own particular needs, there are five universally recognized steps to create a
DevOps pipeline.

 Establish a CI/CD Tool

An organization's first step is getting the right tools to build its CI/CD pipeline.
Although the choice will revolve around the company's specific
needs, Jenkins is a good solid choice since it's easily customizable to fit an
organization's situation. Other possibilities include GitLab, TeamCity, and
Bamboo.

 Source Your Control Environment

Development teams need a sandbox, so to speak, to store and share their code,
create different versions of the app, and avoid merging conflicts. Git is a great
control management tool, enabling developers to keep their code in a shared
repository. Other alternatives include GitLab and BitBucket.

 Set up a Build Server

Alternately called a CI server, the build server is a reliable, stable, and


centralized environment dedicated to building distributed development projects.
These servers act as an integration point for the developers, retrieve integrated
code from the source code repositories, and offer a clean, uncompromised
environment to ensure the code works correctly. Once again, Jenkins is the go-
to choice, although there’s also Travis-CI or TeamCity.

 Set Up or Build Testing Automation Tools

Automated testing is integral to the DevOps process, so you need something


like Test Complete to run your tests.
 Deploy to Production

Here’s where the team’s software gets pushed to production. The least
complicated way to do this is to configure the build server to run a script that
deploys the application manually or automatically.

Many pipeline choices are available, such as the Azure DevOps pipeline, a
cloud service that offers a place to build and test code automatically. The Azure
DevOps build pipeline integrates well with resources such as Bitbucket Cloud,
Azure Repos Git & TFVC, GitHub, GitHub Enterprise, and Subversion.

This DevOps choice also works with most application types and languages and
allows developers to deploy code to multiple targets. In addition, developers can
use Azure pipeline variables to customize their environment if they need to
manage their builds' configuration values dynamically.

All About Continuous Integration/Continuous Delivery (CI/CD)

These two tools are the centerpiece of the DevOps pipeline and, as we've seen,
make up two of the seven components. CI/CD work together to create a
workflow conducive to reducing the cost and time needed for an app
development project.

The critical component of both concepts is the word "continuous." The


continuous integration aspect lets the system frequently integrate code changes
into the central repository, simplifying the merging process and saving time. It
also makes it easy for the team to spot bugs.

The continuous delivery stage handles the incremental delivery of the software
and its updates into production. This phase boosts the frequency of releasing
new updates and features and promotes customer involvement by enhancing the
feedback loop.

Deployment Pipeline Automation

DevOps teams should automate everything that can be automated. Automation


significantly reduces the time needed to execute the deployment. DevOps teams
need to pick the best deployment automation tool for the job. Here’s a list of
potential choices. Some of the names may already look familiar:

 AWS CodeDeploy
 DeployBot
 ElectricFlow
 Jenkins
 TeamCity
 Visual Studio

Steps Involved in DevOps Pipeline Implementation

Unfortunately, there is no one-size-fits-all roadmap for DevOps pipeline


implementation. Instead, DevOps teams need to factor in variables such as the
size of their organization, available toolsets, the budget, and what goals the
business expects to meet from the implementation.

However, here are three general steps DevOps teams should take when
implementing a DevOps pipeline:

1. Clearly define and establish your DevOps strategy. Bring everyone together
from every involved department and collaborate on setting the goals.
2. Incorporate Agile principles into your project. Agile emphasizes software
delivery in iterations, and it’s a great supplement to DevOps.
3. Make everything continuous. The DevOps foundation is built on continuity,
ensuring that deliverable times and code quality are consistently maintained
throughout every stage of the DevOps pipeline.

Managing CI/CD Pipelines from the Application Portfolio Management


Perspective

Application Portfolio Management (APM) helps businesses increase revenue


through digital transformation. APM is especially valuable for enterprises
struggling to seamlessly adopt modern technology and methodologies while
maintaining their existing portfolio.

If an organization merges CI/CD with APM, they get the increased accuracy,
speed, and agility of the former, plus the enhanced business value of the latter.

Here are the stages used for implementation:

 Structure the process: Construct a roadmap by collecting all the data on


current IT conditions and observations of the available applications and what
they do. Once you have all this information, you can eliminate redundancy by
sorting the data into relevant and irrelevant data structures.
 Conduct an evaluation: Create a detailed report that explains the usage and
functionality of the organization’s available applications. This process means
studying each application’s aspects individually and anticipating needed
changes, such as upgrades.
 Define IT’s transformation: Create and test several plans that factor in
feasibility, quality, and risk, and compare them. Then, select the one that fits
best.

https://www.bmc.com/blogs/devops-architecture/
https://resources.github.com/devops/fundamentals/ci-cd/
deployment/
https://yunsong0922.github.io/files/DevOps_Fundamentals.pdf
https://theqalead.com/tools/best-devops-orchestration-tools/
https://katalon.com/resources-center/blog/devops-orchestration-
investment

You might also like