SlideShare a Scribd company logo
DevOps Delivery Pipeline
Software Delivery Automation
for Beginners
What is DevOps?
DevOps is a set of principles,
practices, and technical solutions
aimed to facilitate the Software
Development Life Cycle by improving
collaboration between Software
Development and IT Operations
teams. The ultimate goals of DevOps
are to make the software more
reliable, reduce time to market, and
bring down the support costs.
There are a lot of aspects of the DevOps
approach, which are essential for
understanding the whole DevOps
concept and philosophy. This slide deck is
focused on the very basic one: the
automated Software Delivery Pipeline.
The automation is a core DevOps
principle, and a proper process of
software delivery is a key success factor
of the entire DevOps story. Let’s start with
the fundamental concepts and
definitions.
Key Software Delivery Concepts and Definitions
Source Code Repository or
Version Control System (VCS)
A system where the Software Source Code is stored, and the code
versions/branches are maintained
Build and Build Artifact
The Source Code processing/compilation/packaging and creation of a
deployable software package named the Build Artifact
Build Artifact Repository
A system to store the Build Artifacts (compiled binaries) with version
management and access control
Deployment
A list of activities to make a Software Application available and ready for
use in a test or production environment using some Build Artifact
Environment
A consistent set of hardware/system components required to deploy
and run Software Applications
What is the DevOps Delivery Pipeline?
The DevOps or CI/CD (Continuous
Integration/Continuous Delivery)
Pipeline is a set of fully automated
steps for delivery of a new version of a
software product from a source code
repository to the production
environment. The automation is an
essential principle here because it
allows the delivery to be robust, fully
controlled, and fast.
There are tons of tools on the market
helping to build a DevOps Delivery
Pipeline, and a lot of publications in the
Internet advertising those tools and their
combinations.
The right tools are important, but it could
be difficult for a beginner to navigate
through an ocean of possible options
without a solid understanding of their
underlying principles. The next slides are
about the very common things to know
regardless of a tool choice.
The very basic DevOps Delivery Pipeline
That’s it! Someone can create a much more
sophisticated pipeline with a lot of different
steps, but usually, it is possible to attribute
any step to either the Build or to the Deploy
stage.
To enjoy your DevOps pipeline and avoid
some common mistakes, you have to follow
simple rules, which we are going to review
in this slide deck.
Build
Deploy
Enjoy!
What are the common Build Steps?
1. Take source code from VCS
2. Verify the source code
3. Auto-generate extra code
4. Compile the code
5. Run unit tests
6. Add deployment scripts
7. Package the Build Artifact
8. Publish to Artifact Repository
Some of the steps could be optional
depending on the nature of the
application. For example, sometimes
there is no automated code generation
or your application requires just some
configuration and even no code
compilation is needed.
The must-have steps are highlighted
because you always should start from
the source code and provide a build
artifact at the end, which is
self-sufficient for deployment.
What are the common Deployment Steps?
1. Take the Build Artifact from
the Artifact Repository
2. Take the deployment
environment details
3. Run the deployment scripts on
the deployment environment
4. Validate the deployment
The first three steps are essential here,
and the last one is optional but nice to
have. The main idea of the
deployment stage is to combine
environment-agnostic Build Artifact
with the environment-specific
parameters such as hostnames/IPs,
ports, folder paths etc.
The deployment validation is nothing
else but a set of smoke tests to ensure
the application is up and running as
expected.
How to enjoy?
1. Follow the best practices to automate
your pipeline
2. Try to avoid common mistakes
3. Choose proper tools which allow doing
the above
4. Document the details of your solution
5. Train the team to use it
The Internet is full of DevOps
materials: papers, blogs, tool reviews
etc. Some fundamental things are
described above, and on the next
slides, the rest could be found once
you have started building the DevOps
pipeline for your specific application.
It’s worth to remember that DevOps
pipeline doesn’t exist in isolation: it
has its users such as developers,
testers, support team etc. Get their
feedback and improve your solution.
Enjoy!
DevOps pipeline automation
Git with GitHub, GitLab,
BitBucket etc. as VCS
Git is a de-facto standard today. It can be accomplished by different
web-based GUI/collaboration servers (some of them are listed here),
cloud-based or on-premises
Jenkins, Bamboo, TeamCity
etc. as CI/CD server
CI/CD server is a key automation component. It triggers Build/Deployment
jobs on different events like VCS commit or another build job completion
Nexus, Artifactory etc. as the
Build Artifact Repository
A typical CI/CD server normally has a basic built-in Artifact Repository, but you
can add a dedicated Repository Server to have more features and control
Ansible, Chef, Puppet etc. as
a deployment tool
A CI/CD server just triggers some deployment jobs, but the actual deployment
is usually done by so-called configuration-management tools
Some commonly used tools and concepts in the DevOps pipeline automation
Most common CI/CD Server features
1. Arranges build and deployment
activities into plans/jobs/tasks etc
2. Monitors VCS for commits and
triggers relevant builds
3. Provides a simple Build Artifact repo
4. Organizes deployment environments
5. Triggers deployments
6. Does jobs logging and monitoring
A CI/CD server is a mandatory component
of any DevOps pipeline. A CI/CD server
provides a web-based GUI to configure
and manage build and deployment jobs
of a DevOps pipeline. Once configured,
the build/deployment jobs are triggered
by the server on different events like code
commits or a build completion.
In the following slides, we will consider the
most common aspects of a CI/CD server
usage, applicable to any of them.
CI/CD Server Usage
Tip Why do we need to follow?
Setup role-based access
control to jobs
Sometimes we want users to trigger jobs manually, and the only relevant people
should do that. Use of the user roles simplifies access control management a lot
Setup relevant notification
groups
A key point of DevOps success is an early notification about a problem. Create groups
of developers and testers to be notified about a build or deployment failure
Store job logic in
version-controlled scripts
Job logic is a code. VCS usage allows us to store job code in a central place with
general benefits of code versioning like change tracking etc.
Use automated job
triggers with caution
A build might take a while, and deployment might be unexpected. Job executions
should not be unexpected and should be able to complete on time
Never store environment
details in VCS
CI/CD server usually has built-in environment management, which allows storing
sensitive environment-specific information (like passwords) securely
The very basic tips and tricks of a CI/CD server usage
Build/Deploy jobs access control
Object Build Job Deployment Job
Source Code Repository (VCS) ✓ ✗
Build Artifact Repository Read-Write Read Only
Environment Details ✗ ✓
You need to restrict access of your Build and Deployment jobs to DevOps infrastructure
components in order to have immutable builds and reproducible deployments
But what happens if we don’t follow the above principles? See on the next slide
What if we have... … then what will happen
No jobs access control and
notifications groups
Someone may accidentally change or execute some critical job. Proper people
will not be notified about a failed build
Jobs configuration via CI/CD
server GUI
It is sometimes convenient for beginners, but you will not have a track of job
changes and end up with CI/CD server vendor lock
A lot of job triggers with
complicated dependencies
A complex trigger logic often became unmanageable, build runs might be
queued, and deployment might be unexpected
Deployment job access to VCS
The deployments will not be reproducible, because the source code in VCS might
be changed, and the next deployment will pick up a different version of the code
Build job access to
environment details
Builds will be environment dependent and could be deployed only to a specific
environment. A test and the prod deployments should use the same build
Common mistakes to avoid
Thanks for watching!
Feel free to contact me via LinkedIn

More Related Content

What's hot

Aggrement protocols
Aggrement protocolsAggrement protocols
Aggrement protocols
Mayank Jain
 
DevOps seminar ppt
DevOps seminar ppt DevOps seminar ppt
DevOps seminar ppt
DurgashambaviAmarnen
 
Dos and Don'ts of DevSecOps
Dos and Don'ts of DevSecOpsDos and Don'ts of DevSecOps
Dos and Don'ts of DevSecOps
Priyanka Aash
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
REHMAT ULLAH
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
Amazon Web Services
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
Kris Buytaert
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
SHREEHARI WADAWADAGI
 
Cloud Computing Security Challenges
Cloud Computing Security ChallengesCloud Computing Security Challenges
Cloud Computing Security Challenges
Yateesh Yadav
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Ripal Ranpara
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
DevSecOps 101
DevSecOps 101DevSecOps 101
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
Cesar Augusto Nogueira
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
Satyamevjayte Haxor
 
DevOps
DevOps DevOps
DevOps
ARYA TM
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
Soumya De
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
Hayim Makabee
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
Hemant Sharma
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
software cost factor
software cost factorsoftware cost factor
software cost factor
Abinaya B
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
SlideTeam
 

What's hot (20)

Aggrement protocols
Aggrement protocolsAggrement protocols
Aggrement protocols
 
DevOps seminar ppt
DevOps seminar ppt DevOps seminar ppt
DevOps seminar ppt
 
Dos and Don'ts of DevSecOps
Dos and Don'ts of DevSecOpsDos and Don'ts of DevSecOps
Dos and Don'ts of DevSecOps
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
Devops Devops Devops
Devops Devops DevopsDevops Devops Devops
Devops Devops Devops
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Cloud Computing Security Challenges
Cloud Computing Security ChallengesCloud Computing Security Challenges
Cloud Computing Security Challenges
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
DevSecOps 101
DevSecOps 101DevSecOps 101
DevSecOps 101
 
The Software Development Process
The Software Development ProcessThe Software Development Process
The Software Development Process
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
 
DevOps
DevOps DevOps
DevOps
 
What Is DevOps?
What Is DevOps?What Is DevOps?
What Is DevOps?
 
Software Quality Attributes
Software Quality AttributesSoftware Quality Attributes
Software Quality Attributes
 
Fundamentals of Language Processing
Fundamentals of Language ProcessingFundamentals of Language Processing
Fundamentals of Language Processing
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
Google App Engine ppt
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
 

Similar to DevOps Delivery Pipeline

Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
Mayank Kumar
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
Mirco Hering
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
anilpmuvvala
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.
anilpmuvvala
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
mridulsharma774687
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
Mohammed A. Imran
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
ayoubbahaddouayoub
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or less
Mohammed A. Imran
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
Liran Levy
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Edureka!
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
Andrea Tino
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
Moataz Mahmoud
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Mohammed A. Imran
 
Bn1006 demo ppt devops
Bn1006 demo ppt devopsBn1006 demo ppt devops
Bn1006 demo ppt devops
conline training
 
What is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfWhat is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdf
komalmanu87
 
What is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfWhat is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdf
komalmanu87
 
100% job oriented dev ops training online @ free demo !!!
100% job oriented dev ops training online @ free demo !!!100% job oriented dev ops training online @ free demo !!!
100% job oriented dev ops training online @ free demo !!!
miaavery77
 
Dev ops
Dev opsDev ops
Dev ops
Gourav Varma
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
PrathapM32
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
motupalli2
 

Similar to DevOps Delivery Pipeline (20)

Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
 
What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.What_is_DevOps_how_it's_very_useful_in_daily_Life.
What_is_DevOps_how_it's_very_useful_in_daily_Life.
 
What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.What is DevOps And How It Is Useful In Real life.
What is DevOps And How It Is Useful In Real life.
 
What_is_DevOps.pptx
What_is_DevOps.pptxWhat_is_DevOps.pptx
What_is_DevOps.pptx
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
 
DevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practicesDevOps culture, concepte , philosophie and practices
DevOps culture, concepte , philosophie and practices
 
Strengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or lessStrengthen and Scale Security for a dollar or less
Strengthen and Scale Security for a dollar or less
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
Bn1006 demo ppt devops
Bn1006 demo ppt devopsBn1006 demo ppt devops
Bn1006 demo ppt devops
 
What is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfWhat is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdf
 
What is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdfWhat is DevOps Services_ Tools and Benefits.pdf
What is DevOps Services_ Tools and Benefits.pdf
 
100% job oriented dev ops training online @ free demo !!!
100% job oriented dev ops training online @ free demo !!!100% job oriented dev ops training online @ free demo !!!
100% job oriented dev ops training online @ free demo !!!
 
Dev ops
Dev opsDev ops
Dev ops
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
 

Recently uploaded

Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 

Recently uploaded (20)

Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 

DevOps Delivery Pipeline

  • 1. DevOps Delivery Pipeline Software Delivery Automation for Beginners
  • 2. What is DevOps? DevOps is a set of principles, practices, and technical solutions aimed to facilitate the Software Development Life Cycle by improving collaboration between Software Development and IT Operations teams. The ultimate goals of DevOps are to make the software more reliable, reduce time to market, and bring down the support costs. There are a lot of aspects of the DevOps approach, which are essential for understanding the whole DevOps concept and philosophy. This slide deck is focused on the very basic one: the automated Software Delivery Pipeline. The automation is a core DevOps principle, and a proper process of software delivery is a key success factor of the entire DevOps story. Let’s start with the fundamental concepts and definitions.
  • 3. Key Software Delivery Concepts and Definitions Source Code Repository or Version Control System (VCS) A system where the Software Source Code is stored, and the code versions/branches are maintained Build and Build Artifact The Source Code processing/compilation/packaging and creation of a deployable software package named the Build Artifact Build Artifact Repository A system to store the Build Artifacts (compiled binaries) with version management and access control Deployment A list of activities to make a Software Application available and ready for use in a test or production environment using some Build Artifact Environment A consistent set of hardware/system components required to deploy and run Software Applications
  • 4. What is the DevOps Delivery Pipeline? The DevOps or CI/CD (Continuous Integration/Continuous Delivery) Pipeline is a set of fully automated steps for delivery of a new version of a software product from a source code repository to the production environment. The automation is an essential principle here because it allows the delivery to be robust, fully controlled, and fast. There are tons of tools on the market helping to build a DevOps Delivery Pipeline, and a lot of publications in the Internet advertising those tools and their combinations. The right tools are important, but it could be difficult for a beginner to navigate through an ocean of possible options without a solid understanding of their underlying principles. The next slides are about the very common things to know regardless of a tool choice.
  • 5. The very basic DevOps Delivery Pipeline That’s it! Someone can create a much more sophisticated pipeline with a lot of different steps, but usually, it is possible to attribute any step to either the Build or to the Deploy stage. To enjoy your DevOps pipeline and avoid some common mistakes, you have to follow simple rules, which we are going to review in this slide deck. Build Deploy Enjoy!
  • 6. What are the common Build Steps? 1. Take source code from VCS 2. Verify the source code 3. Auto-generate extra code 4. Compile the code 5. Run unit tests 6. Add deployment scripts 7. Package the Build Artifact 8. Publish to Artifact Repository Some of the steps could be optional depending on the nature of the application. For example, sometimes there is no automated code generation or your application requires just some configuration and even no code compilation is needed. The must-have steps are highlighted because you always should start from the source code and provide a build artifact at the end, which is self-sufficient for deployment.
  • 7. What are the common Deployment Steps? 1. Take the Build Artifact from the Artifact Repository 2. Take the deployment environment details 3. Run the deployment scripts on the deployment environment 4. Validate the deployment The first three steps are essential here, and the last one is optional but nice to have. The main idea of the deployment stage is to combine environment-agnostic Build Artifact with the environment-specific parameters such as hostnames/IPs, ports, folder paths etc. The deployment validation is nothing else but a set of smoke tests to ensure the application is up and running as expected.
  • 8. How to enjoy? 1. Follow the best practices to automate your pipeline 2. Try to avoid common mistakes 3. Choose proper tools which allow doing the above 4. Document the details of your solution 5. Train the team to use it The Internet is full of DevOps materials: papers, blogs, tool reviews etc. Some fundamental things are described above, and on the next slides, the rest could be found once you have started building the DevOps pipeline for your specific application. It’s worth to remember that DevOps pipeline doesn’t exist in isolation: it has its users such as developers, testers, support team etc. Get their feedback and improve your solution. Enjoy!
  • 9. DevOps pipeline automation Git with GitHub, GitLab, BitBucket etc. as VCS Git is a de-facto standard today. It can be accomplished by different web-based GUI/collaboration servers (some of them are listed here), cloud-based or on-premises Jenkins, Bamboo, TeamCity etc. as CI/CD server CI/CD server is a key automation component. It triggers Build/Deployment jobs on different events like VCS commit or another build job completion Nexus, Artifactory etc. as the Build Artifact Repository A typical CI/CD server normally has a basic built-in Artifact Repository, but you can add a dedicated Repository Server to have more features and control Ansible, Chef, Puppet etc. as a deployment tool A CI/CD server just triggers some deployment jobs, but the actual deployment is usually done by so-called configuration-management tools Some commonly used tools and concepts in the DevOps pipeline automation
  • 10. Most common CI/CD Server features 1. Arranges build and deployment activities into plans/jobs/tasks etc 2. Monitors VCS for commits and triggers relevant builds 3. Provides a simple Build Artifact repo 4. Organizes deployment environments 5. Triggers deployments 6. Does jobs logging and monitoring A CI/CD server is a mandatory component of any DevOps pipeline. A CI/CD server provides a web-based GUI to configure and manage build and deployment jobs of a DevOps pipeline. Once configured, the build/deployment jobs are triggered by the server on different events like code commits or a build completion. In the following slides, we will consider the most common aspects of a CI/CD server usage, applicable to any of them.
  • 11. CI/CD Server Usage Tip Why do we need to follow? Setup role-based access control to jobs Sometimes we want users to trigger jobs manually, and the only relevant people should do that. Use of the user roles simplifies access control management a lot Setup relevant notification groups A key point of DevOps success is an early notification about a problem. Create groups of developers and testers to be notified about a build or deployment failure Store job logic in version-controlled scripts Job logic is a code. VCS usage allows us to store job code in a central place with general benefits of code versioning like change tracking etc. Use automated job triggers with caution A build might take a while, and deployment might be unexpected. Job executions should not be unexpected and should be able to complete on time Never store environment details in VCS CI/CD server usually has built-in environment management, which allows storing sensitive environment-specific information (like passwords) securely The very basic tips and tricks of a CI/CD server usage
  • 12. Build/Deploy jobs access control Object Build Job Deployment Job Source Code Repository (VCS) ✓ ✗ Build Artifact Repository Read-Write Read Only Environment Details ✗ ✓ You need to restrict access of your Build and Deployment jobs to DevOps infrastructure components in order to have immutable builds and reproducible deployments But what happens if we don’t follow the above principles? See on the next slide
  • 13. What if we have... … then what will happen No jobs access control and notifications groups Someone may accidentally change or execute some critical job. Proper people will not be notified about a failed build Jobs configuration via CI/CD server GUI It is sometimes convenient for beginners, but you will not have a track of job changes and end up with CI/CD server vendor lock A lot of job triggers with complicated dependencies A complex trigger logic often became unmanageable, build runs might be queued, and deployment might be unexpected Deployment job access to VCS The deployments will not be reproducible, because the source code in VCS might be changed, and the next deployment will pick up a different version of the code Build job access to environment details Builds will be environment dependent and could be deployed only to a specific environment. A test and the prod deployments should use the same build Common mistakes to avoid
  • 14. Thanks for watching! Feel free to contact me via LinkedIn