In this video, I will introduce you to devops pipeline phases that
are used for software development in deployment life cycles.
We talked in a previous video about devops philosophies in particular
the flow from left to right the
objective of any software development life cycle is to release code
to your customer in a predictable frequent and repeatable
manner.
A devops pipeline does just that.
A pipeline is the process and tooling that moves software from
the developer to the customer.
It is usually broken down into six phases. They are
plan develop build tests release and
monitor.
Let's discuss each of these in more detail.
The planning stage is used to plan out
the project roadmap infrastructure or architecture. The
requirements of flushed out and broken into
small chunks of work. Some common tools that are used
in this stage are jira and pivotal tracker.
In the development stage you write code according to your roadmap
and use a central Source control repository where
you save your work. Once that code is
complete and peer-reviewed. It is pushed up to the source control
repository where automated tasks kick
off the build stage some common tools that
are used in this stage are Vim vs code and
get
The building stage takes a code commit or
pull request from the center repository and builds
it.
After building a successful, the new code changes are ready
for testing if the build fails in any way the pipeline
is halted and then the error is sent back
to the person who committed the code.
Some popular tools that are used in this stage are Jenkins containers
in AWS code pipeline in the
testing phase your code from the build stage is
run through different types of tests, like unit tests or linting.
If testing fails at all, the pipeline stops, and
the code committer is then notified.
Some tools that are used in this stage are Jenkins Circle CI
and programming language testing Frameworks.
The release stage is where the final artifact that is past the
build and test stages gets one more round
of testing.
These tests are usually integrational performance regression
in nature.
Once these pass the artifact is ready
for delivery to a production environment. This will either be
an automated release to production like continuous deployment or a
stage one like continuous delivery.
Some common tools that are used in this stage are Jenkins X
Argo CD and AWS code
deploy.
In the monitoring stage metrics and
data are gathered from the release and are checked for possible errors
or regression. If the application is throwing
errors at a rate that violates some threshold that you
have set then the releases automatically roll back
to a known good state.
The data gathered in this stage like performance
and errors are then fed all the way back
to the plan stage to begin this process all over again some
popular tools that are used in this stage are
Prometheus data dog and AWS cloudwatch
metrics.
In this video you learned about the process of releasing code
to your customer. There are six distinct stages
that help control the flow from left to right you begin
at the plan stage and progress all the way through till
you reach the monitor stage. Each stage is
automated and should halt if any of them fail.
There are numerous tools like get Jenkins and containers that each
stage can use to make the process of shipping code easier.
In the next video, we will learn about containers and how
they are managed using a container orchestrator. See you
soon.