#1 What is DevOps ,Agile and CICD
Summary
TLDRIn this educational video, Piyush Sachteva introduces Agile CI/CD and DevOps, explaining their roles in modern software development. He contrasts traditional siloed development with Agile's emphasis on collaboration and flexibility, and DevOps' integration of operations and production. The video delves into Continuous Integration (CI), Continuous Delivery (CD), and Continuous Deployment, illustrating their functions in the software lifecycle. It also highlights the benefits of these practices, such as early bug detection, cost savings, and improved team coordination. The tutorial series is aimed at Jenkins beginners, showcasing how Jenkins automates the CI/CD pipeline, from code commit to production deployment, with real-world examples and tools like Maven, Selenium, and Ansible.
Takeaways
- ๐ Agile, CI/CD, and DevOps are modern methodologies that improve collaboration and efficiency in software development.
- ๐ ๏ธ Traditional software development faced issues like siloed teams, lack of transparency, and delayed changes due to management bottlenecks.
- ๐ Agile emphasizes collaboration, flexibility, and shorter development cycles through sprints and daily scrum meetings.
- ๐ค DevOps extends Agile principles into operations and production, aiming to automate and monitor the development cycle to remove bottlenecks.
- ๐ง Continuous Integration (CI) involves frequent and automatic integration and testing of code changes.
- ๐ Continuous Delivery (CD) ensures that code is always ready for deployment, with manual approval required before production deployment.
- ๐ Continuous Deployment automates the deployment of validated changes to production without manual intervention.
- ๐ Jenkins is a widely used CI/CD server that supports automation of the software development lifecycle through pipelines.
- ๐ CloudBees partners with the Jenkins community for development and maintenance, contributing significantly to the project.
- ๐ The Jenkins workflow automates build, test, and deployment processes, providing continuous feedback and monitoring throughout the SDLC.
Q & A
What are the three modern software development methodologies introduced in the video?
-The three modern software development methodologies introduced in the video are Agile, CI/CD, and DevOps.
How does the traditional software development life cycle differ from the modern approaches like Agile, CI/CD, and DevOps?
-In the traditional software development life cycle, teams like development, QA, and operations often work in silos with limited visibility and coordination, leading to delays and bottlenecks. Modern approaches like Agile emphasize collaboration and flexibility, CI/CD focuses on frequent integration and automated testing, and DevOps integrates development and operations for continuous improvement and faster deployment.
What are the key issues with the traditional software development life cycle as described in the video?
-The key issues with the traditional software development life cycle include time-consuming processes, lack of coordination between teams, lack of transparency, management bottlenecks, and the overall cumbersome nature of the process.
What does the term 'Agile' refer to in the context of software development?
-In the context of software development, 'Agile' refers to a methodology that emphasizes collaboration, flexibility, and shorter development cycles. It involves planning and completing work in sprints with frequent meetings and adapts to changes more readily.
What is the difference between Continuous Integration (CI) and Continuous Delivery (CD)?
-Continuous Integration (CI) involves frequent and automatic integration of code, where new and modified code is automatically tested with the master code. Continuous Delivery (CD) is an extension of CI, ensuring that code is always ready to be deployed, although manual approval is required before the software is deployed to production.
How does Continuous Deployment differ from Continuous Delivery?
-Continuous Deployment automatically deploys all validated changes to the production environment without any manual intervention, whereas Continuous Delivery still requires manual approval before deploying the code to production.
What role does Jenkins play in the CI/CD process as described in the video?
-Jenkins plays a central role in the CI/CD process by automating the building, testing, and deployment of code. It triggers builds, runs tests, reports results, and can automate the deployment process using pipelines.
What is the significance of CloudBees' relationship with the Jenkins community as mentioned in the video?
-CloudBees partners with the Jenkins community for development and maintenance tasks, contributing significantly to the project. They coordinate with the community on releases and contribute fixes back, which helps in the advancement and support of the Jenkins tool.
How does the video describe the process of a feature development in a Jenkins workflow?
-The video describes the process of feature development in a Jenkins workflow as starting with multiple developers committing code to a version control system, then merging to a deployment branch. Jenkins triggers a build and runs tests, reports results, and if tests pass, the build is scanned for vulnerabilities and static code analysis. The build is then uploaded to a repository and deployed to lower environments, eventually reaching production either through continuous deployment or with manual approval in continuous delivery.
What are the benefits of implementing CI/CD as highlighted in the video?
-The benefits of implementing CI/CD include early detection of bugs and problems, cost and effort savings, improved coordination between teams, faster releases, automated testing for quality assurance, and reduced chances of manual errors due to automation.
Outlines
๐ Introduction to Agile, CI/CD, and DevOps
Piyush Sachteva introduces the concepts of Agile, CI/CD, and DevOps, explaining their relevance in modern software development. The video aims to clarify the differences between these terms and their application in the software development lifecycle. Traditional development workflows are critiqued for their siloed nature and inefficiencies, highlighting the need for more collaborative and flexible methodologies. The video is part of a Jenkins tutorial series aimed at beginners, encouraging viewers to subscribe for updates and engage with the content.
๐ The Evolution to Modern Development Practices
This section delves into the evolution from traditional to modern development practices, emphasizing Agile's role in fostering collaboration and flexibility. DevOps is introduced as an extension of Agile, focusing on the integration of development and operations through automation and monitoring. Continuous Integration (CI) and Continuous Delivery/Deployment (CD) are explained, detailing their processes and the distinction between delivery (which requires manual approval for production deployment) and deployment (which is fully automated). The benefits of CI/CD, such as early bug detection, cost savings, improved team coordination, and reduced manual errors, are highlighted.
๐ ๏ธ Jenkins in CI/CD and Its Workflow
The final paragraph discusses Jenkins, a widely used CI/CD server, and its origins as the Hudson project. It explains the contributions of CloudBees to Jenkins' development and maintenance, and how Jenkins integrates with the Jenkins community. The Jenkins workflow is outlined, starting from code commits and pull requests to build triggering, testing, vulnerability scanning, and deployment across various environments. The paragraph concludes with an overview of how Jenkins pipelines automate the entire software development lifecycle, emphasizing continuous feedback and monitoring throughout the process.
Mindmap
Keywords
๐กAgile
๐กCI/CD
๐กDevOps
๐กTraditional Software Development Lifecycle
๐กContinuous Integration (CI)
๐กContinuous Delivery
๐กContinuous Deployment
๐กJenkins
๐กCloudBees
๐กPull Request
Highlights
Introduction to Agile CI/CD and DevOps concepts.
Differences between Agile, CI/CD, and DevOps in modern software development.
Traditional software development life cycle issues.
Problems with siloed teams and lack of visibility in traditional workflows.
The need for modern deployment and development philosophies.
Agile development emphasizes collaboration and flexibility.
DevOps extends Agile philosophy into operations and production.
Continuous Integration (CI) and its role in software development.
Continuous Delivery (CD) ensures code is always ready for deployment.
Continuous Deployment automates the deployment process.
The importance of collaboration in implementing Continuous Delivery.
Benefits of CI/CD in early detection of bugs and cost savings.
How Jenkins is used in the CI/CD process.
The relationship between CloudBees and the Jenkins community.
Jenkins workflow from code commit to production deployment.
The role of Jenkins Pipeline in automating the CI/CD process.
Continuous feedback and monitoring in the software development lifecycle.
Encouragement for viewers to subscribe and engage with the channel.
Transcripts
[Music]
hi everyone my name is piyush sachteva
and in this video i'll introduce you to
the concept of agile ci cd and devops
what are those and what are the
differences between these these three
terms
and how they are used in the
modern software development life cycle
if you are new to my channel please hit
the subscribe button below to get
notified about all my upcoming videos
and give this video a thumbs up if you
think this was relevant to you and you
learn something out of it again this
video is part of the series jenkins
tutorials for the beginners
so please watch all the videos that i
will be publishing from time to time it
will be really helpful for you if you
are new to jenkins
before we deep dive into ci cd and
modern development philosophies let's
have a look at the traditional software
development life cycle and what were the
issues with it let's say we have
multiple teams working in a project such
as developer operations team
quality assurance team or testing team
and then we have a production support
team which usually work on the
production environments there could be
much more multiple developers commit the
code to a version control system
once the code is committed and approved
someone from ops team would then create
a build using the code base that was
committed
bill is then placed to a shared folder
or a network drive or on an environment
the ops team would then deploy the bill
to a lower environment such as quality
assurance after transferring the build
to that environment
testing team is that
notified and they start executing their
test cases against the build reports are
then provided to the developers and
other stakeholders about the test cases
developers would then fixes the bugs and
defects that commit the code again and
this process will continue for other
environments such as set performance
test environment there could be hundreds
of more environment
once the change management approved the
changes someone from production support
will then deploy the build to the
production environment
after transferring the build from other
environment that was already been tested
let's have a look at the problems with
the traditional software development
lifecycle workflow
so in older days dev qa's operation team
plot support these teams were often
siloed and work independently and have
no visibility in what's going on with
other team even though they were working
on the same project
a large group of developers coded for
months
and they handed the completed code to
quality assurance for testing
quality assurance then run tests and
handed bugs back to the developer for
quick fix
then developer fixed the box and handed
code back to the quality assurance
reruns the test
quality assurance then handed the tested
code to packaging or deployment team or
broad support team for deployment into
the production
and then they release the complete
product all at once and if there are any
bugs or defects in the production system
then they have to go and do the process
all over again so it's a bit tedious and
cumbersome and there were a lot of
issues involved with this approach
so let's see what all
those issues are
so first one this is really a time
consuming process to deliver all product
at once
then it is unproductive
changes and releases to the production
system are costly and
because there is no coordination between
different teams therefore there is a
lack of transparency developers don't
know what's going on in production and
broad support team don't know what all
the features are upcoming
and then there are a lot of management
bottlenecks so changes are delayed or
even rejected at the very last moment
and all the teams have no visibility and
what's going on with that
and this is just the tip of the iceberg
there are a lot more issues involved
with the traditional workflow that is
why there was a need to change this into
some modern deployment and development
philosophies
then agile continuous integration and
development it all comes into the
picture so modern development
philosophies they works
and emphasis mainly on collaboration
between different teams and individuals
it emphasizes on flexibility in planning
and development rather than just
executing the tasks
and it emphasis on shorter depth cycles
agile mainly concerns
adapting planning and evolutionaries the
development work work is planned and
completed in sprints this is usually one
or two weeks of work
with the frequent usually daily scrum
meetings where all team members report
progress and plan their next step
in these meetings blockers are also
reported so that it can be removed or
necessary action can be taken in advance
devops extend the agile philosophy into
operations and production by
implementing the automation monitoring
and feedback of all the steps in the
development cycle
sometimes devops is considered as a
usage of tools to automate
different tasks in the cicd process
however devops is
merely a cultural change
which brings all the teams together
under one single umbrella
and to remove all the bottlenecks that
were there as part of the
previous deployment methodologies
then we have a term which is also used
very frequently which is continuous so
continuous implements agile and devops
philosophy with the help of tools
that standardize the steps in the
process and thoroughly test each code
modification before it is integrated
into the official source code
let's see what are you know these terms
in detail
so let's say we have a process
software development lifecycle process
which usually involves these steps like
code commit build integrate test
release
deploy
operate this is a complete sdlc
lifecycle nowadays that we see
and
continuous feedback at all the stages
were provided from each of the stage
then
if we see the code commit and build part
so this is where agile operates agile
development is mainly concerned with the
development it does not have any say in
operationalizing or testing or releases
to the production
so agile is just for the development
then we have
ci which is continuous integration it
goes from code commit till testing and
integration
then we have cd which is continuous
delivery continuous delivery is delivery
of code from
from the developer
till the production
however it requires a gate before the
production deployment usually a manual
approval is required before the
production
and once it is approved only then
deployment to the production is
triggered
however we have another important term
which is continuous
deployment
continuous deployment is deploying the
code
deploying the feature till the
production environment without any
manual intervention
so understand the difference between
continuous delivery and deployment
delivery involves manual approval before
the production deployment however
continuous deployment is automated at
every step
let's have a look at the difference
between ci cd and continuous deployment
so ci is frequent and automatic
integration of code
all the new and modified code is
automatically tested with the master
code
continuous delivery is an extension of
ci it ensures that code is always ready
to be deployed although manual approval
is required to actually deploy the
software to production
however continuous deployment
automatically deploys all validated
changes to production frequent feedback
enables issues to be found and fixed
quickly
so to successfully implement continuous
delivery it is essential to have a
collaborative working relationship with
everyone involved you can then use
delivery pipelines which are automatic
implementation of your products life
cycle
right now we know what exactly is ci cd
let's have a look why actually we need
it
to detect bugs and problems in the early
stages of sdlc
it saves a lot of cost and efforts it
improves the coordination between
different teams hence innovative ideas
thrive
faster releases to the production system
automated testing helps deliver a
top-notch quality product
minimum human intervention hence there
are less chances of manual errors
because everything is automated
let's have a look at cloudbees and
jenkins community for this jenkins what
is cloud-based how they are related with
each other
so jenkins is most widely used
ci cd server
kosuke kawaguchi one of the founders of
cloudbees
created this tool in 2006
as the hudson project and then in 2011
it was renamed as jenkins
jenkins is maintained and supported by
an independent and active community
which is
jenkins dot io
and they welcomes new contributor of for
all technical and experience level
cloud base partners with jenkins
community for development and
maintenance tasks
and cloud-based engineer they contribute
significantly to the junkies project and
they coordinate with the community on
releases and contribute
fixes back to the community
we'll now have a look at the jenkins
workflow let's say you have multiple
developers working on a feature
they would commit the code to a version
control system
on their feature branch using a pull
request
code will then be merged to the
deployment branch once it is approved
as soon as the code is merged jenkins
would trigger a build with the help of a
webhook using tools such as maven
gradle
npm once the build is created
successfully it would trigger the test
cases using the tools such as
selenium
junit
and then it reports the test cases
to the developer and stakeholders and it
will be uploaded to a repository for
archiving an analytics purpose if the
test cases are passed then the build
will be scanned for vulnerability and
static code analysis using tools such as
black duck
sonar cube once the previous stages are
successful it will upload the build to a
build repository
such as
nexus
jfrog artifactory
this complete process from build test
scan integration is commonly referred to
as continuous integration or ci
the build is then transferred to a lower
environment such as dev for the
deployment using tools such as ansible
helm for kubernetes related deployments
once it is approved and tested in dev it
would then be deployed in a pre-prod or
a uat environment
once it is approved and testing in uat
it is then ready for the deployment in
production the process of deploying all
the validated changes onto the
production environment
is called continuous deployment
however continuous delivery ensures that
manual approval is required before
delivering the code to production
cd also involves continuous
feedback and monitoring at all the
stages
of the software development lifecycle
and this complete process can be
automated using jenkins pipeline
pipeline is actually a glue which holds
all the tools and steps together in a
process
this is an ongoing and continuous
process so once one feature is completed
team will start working on the next
feature and they will work it parallely
as well
i hope this video was somewhat
beneficial to you and you have learned
something out of it if you did please
give us a thumbs up below it would make
a huge difference for us if you are new
to my channel i request you to subscribe
it by hitting the subscribe button below
and click on the bell icon to get
notified about all my upcoming videos
if you have a question
related to this video then please let me
know at the comment section below and
i'll be more than happy to help you out
thank you very much and i'll see you
soon with the next video
Browse More Related Video
Introduction to DevOps - CI / CD
CI/CD In 5 Minutes | Is It Worth The Hassle: Crash Course System Design #2
GitLab: DevSecOps: Part 1/12: What is GitLab? The fundamental concepts of a DevSecOps pipeline.
Day-18 | What is CICD ? | Introduction to CICD | How CICD works ? | #devops #abhishekveeramalla
DevOps Real-time Project 8 || Continuous Delivery of Java Web Application || Visualpath
Complete CICD setup with Live Demo | #devops #jenkins| Write CICD with less code| @TrainWithShubham
5.0 / 5 (0 votes)