SlideShare a Scribd company logo
DevOps & DevEx
Accelerating software delivery through efficient collaboration,
automated deployment and organisational responsiveness
Twitter: https://twitter.com/SubiyaCryolite
GitHub: https://github.com/SubiyaCryolite
Medium: https://medium.com/@ifungandana
About Me
 Ifunga Ndana, a Senior Software Engineer with Broadreach Healthcare
 Broadreach works together with the Ministry of Health in collaboration
with the Centres for Disease Control and Prevention to support
Zambia's national Electronic Health Record system SmartCare.
 Outside of work I've developed a 2D Video Game, an ORM in Kotlin and
worked on several interesting projects on Upwork. Also ranked 1st for
Java and Kotlin in Zambia (GitAwards.com)
 Overall I've been developing software for just over 6 years
 I can be found via the handle SubiyaCryolite on Twitter & GitHub
 Obligatory “views are my own and don’t represent those of my
employer”
Lets start from the very beginning
Context matters
 We cant truly appreciate DevEx without understanding
DevOps
 We cant truly appreciate DevOps without understanding
Agile Development
 We cant truly appreciate Agile development without
understanding Modern Software Development in general
Modern Software Development
 Development Teams can be spread across regions, continents and
time-zones
 Developers do not work in isolation. There are dedicated teams which
handle
 Testing / Quality Assurance
 Deployment / Support
 These teams form a cycle of dependency
 Teams need to be in sync and work efficiently !!!
 Toes should not be stepped on !!!
 Concise and timely communication is key !!!
Agile software development
“Agile software development is an approach
to software development under which
requirements and solutions evolve through
the collaborative effort of self-organizing
and cross-functional teams and their end
user.” – Wikipedia, a citeable source
Being Agile through Continuous
Integration
“Continuous Integration is the practice of integrating code
into a shared repository and building/testing each change
automatically, as early as possible - usually several times a
day.” - Thoughtworks
 Continuous Integration emphasizes automation tools that
drive build and test, ultimately focusing on achieving a
software-defined life cycle. When CI is successful, build
and integration effort drops, and integration errors are
detected as quickly as practical.
Being Agile through Continuous
Integration
Continuous Integration has several advantages:
 It allows teams to detect errors as quickly as possible
 Allows developers to fix issues while fresh in their mind
 Reduces integration problems
 Smaller conflicts & problems are easier to digest
 Problems don’t compound over time
 Allows teams to develop faster, with more confidence
Being Agile through Continuous Delivery
“Software is built, configured, and packaged and its
deployment orchestrated in such a way that it can be
released to production in a software-defined manner (low
cost, high automation) at any time.” - Synopsis
 Continuous Delivery/Deployment adds that the software
can be released to production at any time, often by
automatically pushing changes to a staging system.
Being Agile through Continuous Delivery
Continuous Delivery provides the following advantages
 Ensures that every change to the system is releasable*
 Lowers risk of each release - makes releases “boring”
 Delivers value more frequently
 Get fast feedback on what users care about
CI/CD enable Agile Development
"High-functioning CI/CD practices directly facilitate agility
because software change reaches production more
frequently, providing more opportunities for customers to
experience and provide feedback on change." – Synopsis
In recent times Continuous Automation and Continuous
Delivery have been adopted by many organisations as they
enable quick turnaround times for both development and
release cycles. This is Agile in practice.
OK so we’re Agile now, everything's
perfect right?
 Not necessarily
 Remember, Software Developers don’t work in isolation.
 Testing and Deployment/Support Teams need to be part of the equation.
 Successful deployment is not possible without the involvement of these two
functions.
 Historically these functions have been siloed, resulting in barriers which
prevent rapid and effective response to production issues and customer
requests.
 There needs to be a way to seamlessly integrate these functions to fully
leverage the strengths of each without compromising on quality and
turnaround time.
Enter DevOps!!!
“DevOps is a set of practices that automates the
processes between software development and IT
teams, in order that they can build, test, and
release software faster and more reliably.
The concept of DevOps is founded on building a
culture of collaboration between teams that
historically functioned in relative siloes.” –
Atlassian
DevOps
DevOps emphasizes:
 a shift in mindset;
 better collaboration; and
 tighter integration.
DevOps unites Agile, continuous delivery, automation, and
much more, to help development and operations teams be
more efficient, innovate faster, and deliver higher value to
businesses and customers.
DevOps - Lifecycle
DevOps - Lifecycle in practice
Assume a small software shop exists with:
 A Development Team consisting of 6 developers in
Livingstone
 A Deployment & Support team primarily concerned with
ensuring production servers are up and running at
optimum capacity in Ndola
 A Product Management team made up of a few testers,
technical writers and Business Analysis functions in Lusaka
 A web-based product hosted on http://whatever.com
DevOps - Lifecycle in practice
Furthermore, assume that the development team uses GIT for Source Code
management.
The team has adopted the following branching strategy:
 master branch: Consisting of live code deployed at http://whatever.com
 beta branch: Consisting of live closed beta code hosted at
http://beta.whatever.com
 test branch: Consisting of private code hosted at http://test.whatever.com
 dev branch: Consisting of private code hosted locally on
http://dev.whatever.com
 multiple feature ranches: based on the active sprint and merged into "dev"
via Pull Request. This code would be self-hosted on the developers
workstation.
DevOps - Lifecycle in practice
Lastly let us assume this team has adopted Jenkins for their CI/CD pipelines.
Jenkins is the leading open source automation server, and provides hundreds of
plugins to support building, deploying and automating any project. Jenkins can
be hosted locally or on the cloud. Jenkins supports Docker, AWS and many other
popular technologies.
Assume Jenkins has been configured to build and deploy to different domains
based on which branch has had code committed to it. These configurations are
normally defined in “Jenkinsfiles” which execute in a similar manner to bash
scripts. Assume that the teams Git repository is linked to Jenkins via a webhook
plugin such as "Mohami’s Webhook to Jenkins for Bitbucket.
DevOps - Lifecycle in practice – Plan
Phase
 Developers gather requirements and feedback
from customers, ideally through the Support and
Test functions
 Work items are added to a general backlog
 Features and Bugs are assigned to iterations or
sprints
 These items are worked on by the developers as
per schedule
DevOps - Lifecycle in practice – Code
Phase
 Developers work on items under feature branches in Git
 These feature branches are regularly committed to the
Git SCM server
 The CI server builds the code and runs all defined tests in
the project. Team members are notified of any build or
test errors
 When a feature is complete and passes an internal code
review (Pull Request) it is merged into the “dev” branch,
the feature branch may be deleted
DevOps - Lifecycle in practice – Build
Phase
 When code is committed to the Git
repository, Jenkins is alerted via a webhook
 The Jenkins proceeds to perform different
build and deploy functions based on the
affected branch. This is defined in a
Jenkinsfile
DevOps - Lifecycle in practice – Build
Phase
 Code committed or merged into the "test branch" is
automatically built, tested & deployed to
http://test.whatever.com where internal testing takes
place.
 Code committed or merged into the "beta branch" is
automatically built, tested & deployed to
http://beta.whatever.com where controlled beta testing
takes place.
 Code committed or merged into the "master branch" is
automatically built, tested & deployed to
http://whatever.com which is the live environment
DevOps - Lifecycle in practice – Test
Phase
 At the end of each sprint, code within the "dev" branch is merged into "test"
 This triggers Jenkins which automatically compiles, tests and deploys the
code to http://test.whatever.com
 Internal testers, technical writers and business analysts work with this domain
to test against new and existing functionality
 User Acceptance Tests and controlled pilots may optionally be run from this
domain as well.
 Following these controlled tests, code from the "test" branch could then be
merged into the "beta” branch
 Once again Jenkins kicks in and automatically compiles, tests and deploys the
code to http://beta.whatever.com
 At this point users invited to closed betas can use the most recent version of
the application
DevOps - Lifecycle in practice – Release
Phase
 Assuming the closed beta is a success. Code
from the "beta" branch can be merged into
the "master" branch.
 Jenkins is invoked and the code is
automatically compiled, tested and
deployed to http://whatever.com
 All customers are now using the latest
version of the platform.
DevOps - Lifecycle in practice – Deploy
Phase
 Jenkins would have automatically deployed the code to
live production servers at the domain
http://whatever.com .
 This deployment is defined within Jenkinsfile's which
behave in a similar fashion to bash scripts. Similar
behaviour can be achieved with different technologies
 There is very little to no human intervention during
deployment
DevOps - Lifecycle in practice – Operate
Phase
 The Support team would ensure that the
locally or cloud hosted servers are
functioning at optimal capacity.
 This phase is primarily concerned with
infrastructure configuration and
management e.g. provisioning, scaling etc
DevOps - Lifecycle in practice – Monitor
Phase
 On the infrastructure side the support team would
monitor performance and scaling metrics. This
information could then be submitted to developers to
measure any performance regressions introduced in new
code
 The Support and Business Analysis function would interact
with customers to gather feedback and new requests.
 This feedback would be provided to the developers and
would eventually feed into the Planning phase,
completing the cycle
DevOps in summary
 Ensures Development, Quality Assurance and
Infrastructure teams work in harmony
 Encourages minimal friction and back & forth across teams
 Encourages collaboration and information sharing
 Encourages automation with the aim of reducing human
error, cost and improving on productivity
Cool, so what is DevEx?
 DevEx is short for “Developer Experience”
 As its name implies, DevEx is concerned with
ensuring that Developers have optimal
experiences when functioning in environments
which have adopted DevOps into their
organisation
 DevEx largely focuses on Tooling, Technologies &
Documentation
DevEx – Tooling, Technologies &
Documentation
 With DevEx software teams aim to streamline and simplify the
entire software development Lifecyle by adopting powerful,
configurable and seamlessly integrated software tools.
 These toolchains would be used extensively throughout the
development lifecycle.
 These tools and frameworks tend to be well tested and
documented, thus reliable for use in production
 E.g. Jenkins, Maven, Gradle, ESLint, JUnit
An Ideal World
DevOps = Agile, CI, CD
DevEx = Integrated and Well Supported Toolchain
DevOps + DevEx = Optimal Software Production
Environment
Just the tip of the iceberg
 This talk has barely scratched the surface
 There are many CI/CD and Automation tools on
the market
 There are many ways to structure teams
 At the end of the day, the structure, tools and
practices you adopt must suit your organisation
Continuous Integration - TravisCI
Continuous Integration - TravisCI
Continuous Delivery – Jenkins –
barebones config file
Thank You!!!
 Questions?

More Related Content

What's hot (20)

PPTX
DevOps and Tools
Mohammed Fazuluddin
 
PDF
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
Edureka!
 
PDF
Development And Operations PowerPoint Presentation Slides
SlideTeam
 
PDF
Jenkins Pipelines
Steffen Gebert
 
PPT
CI and CD with Jenkins
Martin Málek
 
PDF
Introducing GitLab (June 2018)
Noa Harel
 
PDF
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Edureka!
 
PDF
AWS CDK Introduction
Kasun Dilunika
 
PPTX
An Agile Development Primer
Derek Winter
 
PDF
DevOps & SRE at Google Scale
Kaushik Bhattacharya
 
PDF
DevOps for beginners
Pradeep Patel, PMP®
 
PPTX
Jenkins Introduction
Pavan Gupta
 
PDF
Docker & kubernetes
NexThoughts Technologies
 
PDF
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
Edureka!
 
PPTX
Scaled agile framework (SAFe) - adopting agile at enterprise scale
Vadim Mikhnevych
 
PPTX
Jenkins CI
Viyaan Jhiingade
 
PPTX
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
Simplilearn
 
KEY
Agile Estimating & Planning
AgileDad
 
PDF
Ai in software automation testing - testim.io
Aliaa Monier Ismaail
 
DevOps and Tools
Mohammed Fazuluddin
 
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
Edureka!
 
Development And Operations PowerPoint Presentation Slides
SlideTeam
 
Jenkins Pipelines
Steffen Gebert
 
CI and CD with Jenkins
Martin Málek
 
Introducing GitLab (June 2018)
Noa Harel
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Edureka!
 
AWS CDK Introduction
Kasun Dilunika
 
An Agile Development Primer
Derek Winter
 
DevOps & SRE at Google Scale
Kaushik Bhattacharya
 
DevOps for beginners
Pradeep Patel, PMP®
 
Jenkins Introduction
Pavan Gupta
 
Docker & kubernetes
NexThoughts Technologies
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
Edureka!
 
Scaled agile framework (SAFe) - adopting agile at enterprise scale
Vadim Mikhnevych
 
Jenkins CI
Viyaan Jhiingade
 
What is DevOps? | DevOps Introduction | DevOps Tools | DevOps Tutorial For Be...
Simplilearn
 
Agile Estimating & Planning
AgileDad
 
Ai in software automation testing - testim.io
Aliaa Monier Ismaail
 

Similar to DevOps & DevEx (20)

PPTX
Adapting DevOps Culture for Software Developement and Distribution
ShahidAslam30
 
PDF
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
PPTX
Testing in the new age of DevOps
Moataz Mahmoud
 
PPTX
DEVOPS - Laxmi Itikala.pptx bridging the gap
vvsp1
 
PDF
Intro to DevOps 4 undergraduates
Liran Levy
 
PPTX
How Azure DevOps can boost your organization's productivity
Ivan Porta
 
PPTX
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
PPTX
Continous integration and delivery for single page applications
Sunil Dalal
 
PPT
DevOps Pipeline for Liferay Application
Maruti Gollapudi
 
DOCX
Continuous Integration
Chandra Sabbavarpu
 
PDF
What is DevOps Services_ Tools and Benefits.pdf
komalmanu87
 
PDF
What is DevOps Services_ Tools and Benefits.pdf
komalmanu87
 
PDF
Introduction To Development And Operations
teekhesawaal
 
PPT
Part 2 improving your software development v1.0
Jasmine Conseil
 
PDF
DevSecOps - Background, Status and Future Challenges
dsc71656
 
PPT
Continuous Integration: A Case Study
IndicThreads
 
PPT
Continous Integration: A Case Study
Talentica Software
 
PPTX
varun JENKINS.pptx
VgPolampalli
 
PPTX
DevOps model in software engineering.pptx
RenyJose3
 
PPTX
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
Adapting DevOps Culture for Software Developement and Distribution
ShahidAslam30
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Testing in the new age of DevOps
Moataz Mahmoud
 
DEVOPS - Laxmi Itikala.pptx bridging the gap
vvsp1
 
Intro to DevOps 4 undergraduates
Liran Levy
 
How Azure DevOps can boost your organization's productivity
Ivan Porta
 
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
Continous integration and delivery for single page applications
Sunil Dalal
 
DevOps Pipeline for Liferay Application
Maruti Gollapudi
 
Continuous Integration
Chandra Sabbavarpu
 
What is DevOps Services_ Tools and Benefits.pdf
komalmanu87
 
What is DevOps Services_ Tools and Benefits.pdf
komalmanu87
 
Introduction To Development And Operations
teekhesawaal
 
Part 2 improving your software development v1.0
Jasmine Conseil
 
DevSecOps - Background, Status and Future Challenges
dsc71656
 
Continuous Integration: A Case Study
IndicThreads
 
Continous Integration: A Case Study
Talentica Software
 
varun JENKINS.pptx
VgPolampalli
 
DevOps model in software engineering.pptx
RenyJose3
 
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
Ad

Recently uploaded (20)

PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Ad

DevOps & DevEx

  • 1. DevOps & DevEx Accelerating software delivery through efficient collaboration, automated deployment and organisational responsiveness Twitter: https://twitter.com/SubiyaCryolite GitHub: https://github.com/SubiyaCryolite Medium: https://medium.com/@ifungandana
  • 2. About Me  Ifunga Ndana, a Senior Software Engineer with Broadreach Healthcare  Broadreach works together with the Ministry of Health in collaboration with the Centres for Disease Control and Prevention to support Zambia's national Electronic Health Record system SmartCare.  Outside of work I've developed a 2D Video Game, an ORM in Kotlin and worked on several interesting projects on Upwork. Also ranked 1st for Java and Kotlin in Zambia (GitAwards.com)  Overall I've been developing software for just over 6 years  I can be found via the handle SubiyaCryolite on Twitter & GitHub  Obligatory “views are my own and don’t represent those of my employer”
  • 3. Lets start from the very beginning
  • 4. Context matters  We cant truly appreciate DevEx without understanding DevOps  We cant truly appreciate DevOps without understanding Agile Development  We cant truly appreciate Agile development without understanding Modern Software Development in general
  • 5. Modern Software Development  Development Teams can be spread across regions, continents and time-zones  Developers do not work in isolation. There are dedicated teams which handle  Testing / Quality Assurance  Deployment / Support  These teams form a cycle of dependency  Teams need to be in sync and work efficiently !!!  Toes should not be stepped on !!!  Concise and timely communication is key !!!
  • 6. Agile software development “Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their end user.” – Wikipedia, a citeable source
  • 7. Being Agile through Continuous Integration “Continuous Integration is the practice of integrating code into a shared repository and building/testing each change automatically, as early as possible - usually several times a day.” - Thoughtworks  Continuous Integration emphasizes automation tools that drive build and test, ultimately focusing on achieving a software-defined life cycle. When CI is successful, build and integration effort drops, and integration errors are detected as quickly as practical.
  • 8. Being Agile through Continuous Integration Continuous Integration has several advantages:  It allows teams to detect errors as quickly as possible  Allows developers to fix issues while fresh in their mind  Reduces integration problems  Smaller conflicts & problems are easier to digest  Problems don’t compound over time  Allows teams to develop faster, with more confidence
  • 9. Being Agile through Continuous Delivery “Software is built, configured, and packaged and its deployment orchestrated in such a way that it can be released to production in a software-defined manner (low cost, high automation) at any time.” - Synopsis  Continuous Delivery/Deployment adds that the software can be released to production at any time, often by automatically pushing changes to a staging system.
  • 10. Being Agile through Continuous Delivery Continuous Delivery provides the following advantages  Ensures that every change to the system is releasable*  Lowers risk of each release - makes releases “boring”  Delivers value more frequently  Get fast feedback on what users care about
  • 11. CI/CD enable Agile Development "High-functioning CI/CD practices directly facilitate agility because software change reaches production more frequently, providing more opportunities for customers to experience and provide feedback on change." – Synopsis In recent times Continuous Automation and Continuous Delivery have been adopted by many organisations as they enable quick turnaround times for both development and release cycles. This is Agile in practice.
  • 12. OK so we’re Agile now, everything's perfect right?  Not necessarily  Remember, Software Developers don’t work in isolation.  Testing and Deployment/Support Teams need to be part of the equation.  Successful deployment is not possible without the involvement of these two functions.  Historically these functions have been siloed, resulting in barriers which prevent rapid and effective response to production issues and customer requests.  There needs to be a way to seamlessly integrate these functions to fully leverage the strengths of each without compromising on quality and turnaround time.
  • 13. Enter DevOps!!! “DevOps is a set of practices that automates the processes between software development and IT teams, in order that they can build, test, and release software faster and more reliably. The concept of DevOps is founded on building a culture of collaboration between teams that historically functioned in relative siloes.” – Atlassian
  • 14. DevOps DevOps emphasizes:  a shift in mindset;  better collaboration; and  tighter integration. DevOps unites Agile, continuous delivery, automation, and much more, to help development and operations teams be more efficient, innovate faster, and deliver higher value to businesses and customers.
  • 16. DevOps - Lifecycle in practice Assume a small software shop exists with:  A Development Team consisting of 6 developers in Livingstone  A Deployment & Support team primarily concerned with ensuring production servers are up and running at optimum capacity in Ndola  A Product Management team made up of a few testers, technical writers and Business Analysis functions in Lusaka  A web-based product hosted on http://whatever.com
  • 17. DevOps - Lifecycle in practice Furthermore, assume that the development team uses GIT for Source Code management. The team has adopted the following branching strategy:  master branch: Consisting of live code deployed at http://whatever.com  beta branch: Consisting of live closed beta code hosted at http://beta.whatever.com  test branch: Consisting of private code hosted at http://test.whatever.com  dev branch: Consisting of private code hosted locally on http://dev.whatever.com  multiple feature ranches: based on the active sprint and merged into "dev" via Pull Request. This code would be self-hosted on the developers workstation.
  • 18. DevOps - Lifecycle in practice Lastly let us assume this team has adopted Jenkins for their CI/CD pipelines. Jenkins is the leading open source automation server, and provides hundreds of plugins to support building, deploying and automating any project. Jenkins can be hosted locally or on the cloud. Jenkins supports Docker, AWS and many other popular technologies. Assume Jenkins has been configured to build and deploy to different domains based on which branch has had code committed to it. These configurations are normally defined in “Jenkinsfiles” which execute in a similar manner to bash scripts. Assume that the teams Git repository is linked to Jenkins via a webhook plugin such as "Mohami’s Webhook to Jenkins for Bitbucket.
  • 19. DevOps - Lifecycle in practice – Plan Phase  Developers gather requirements and feedback from customers, ideally through the Support and Test functions  Work items are added to a general backlog  Features and Bugs are assigned to iterations or sprints  These items are worked on by the developers as per schedule
  • 20. DevOps - Lifecycle in practice – Code Phase  Developers work on items under feature branches in Git  These feature branches are regularly committed to the Git SCM server  The CI server builds the code and runs all defined tests in the project. Team members are notified of any build or test errors  When a feature is complete and passes an internal code review (Pull Request) it is merged into the “dev” branch, the feature branch may be deleted
  • 21. DevOps - Lifecycle in practice – Build Phase  When code is committed to the Git repository, Jenkins is alerted via a webhook  The Jenkins proceeds to perform different build and deploy functions based on the affected branch. This is defined in a Jenkinsfile
  • 22. DevOps - Lifecycle in practice – Build Phase  Code committed or merged into the "test branch" is automatically built, tested & deployed to http://test.whatever.com where internal testing takes place.  Code committed or merged into the "beta branch" is automatically built, tested & deployed to http://beta.whatever.com where controlled beta testing takes place.  Code committed or merged into the "master branch" is automatically built, tested & deployed to http://whatever.com which is the live environment
  • 23. DevOps - Lifecycle in practice – Test Phase  At the end of each sprint, code within the "dev" branch is merged into "test"  This triggers Jenkins which automatically compiles, tests and deploys the code to http://test.whatever.com  Internal testers, technical writers and business analysts work with this domain to test against new and existing functionality  User Acceptance Tests and controlled pilots may optionally be run from this domain as well.  Following these controlled tests, code from the "test" branch could then be merged into the "beta” branch  Once again Jenkins kicks in and automatically compiles, tests and deploys the code to http://beta.whatever.com  At this point users invited to closed betas can use the most recent version of the application
  • 24. DevOps - Lifecycle in practice – Release Phase  Assuming the closed beta is a success. Code from the "beta" branch can be merged into the "master" branch.  Jenkins is invoked and the code is automatically compiled, tested and deployed to http://whatever.com  All customers are now using the latest version of the platform.
  • 25. DevOps - Lifecycle in practice – Deploy Phase  Jenkins would have automatically deployed the code to live production servers at the domain http://whatever.com .  This deployment is defined within Jenkinsfile's which behave in a similar fashion to bash scripts. Similar behaviour can be achieved with different technologies  There is very little to no human intervention during deployment
  • 26. DevOps - Lifecycle in practice – Operate Phase  The Support team would ensure that the locally or cloud hosted servers are functioning at optimal capacity.  This phase is primarily concerned with infrastructure configuration and management e.g. provisioning, scaling etc
  • 27. DevOps - Lifecycle in practice – Monitor Phase  On the infrastructure side the support team would monitor performance and scaling metrics. This information could then be submitted to developers to measure any performance regressions introduced in new code  The Support and Business Analysis function would interact with customers to gather feedback and new requests.  This feedback would be provided to the developers and would eventually feed into the Planning phase, completing the cycle
  • 28. DevOps in summary  Ensures Development, Quality Assurance and Infrastructure teams work in harmony  Encourages minimal friction and back & forth across teams  Encourages collaboration and information sharing  Encourages automation with the aim of reducing human error, cost and improving on productivity
  • 29. Cool, so what is DevEx?  DevEx is short for “Developer Experience”  As its name implies, DevEx is concerned with ensuring that Developers have optimal experiences when functioning in environments which have adopted DevOps into their organisation  DevEx largely focuses on Tooling, Technologies & Documentation
  • 30. DevEx – Tooling, Technologies & Documentation  With DevEx software teams aim to streamline and simplify the entire software development Lifecyle by adopting powerful, configurable and seamlessly integrated software tools.  These toolchains would be used extensively throughout the development lifecycle.  These tools and frameworks tend to be well tested and documented, thus reliable for use in production  E.g. Jenkins, Maven, Gradle, ESLint, JUnit
  • 31. An Ideal World DevOps = Agile, CI, CD DevEx = Integrated and Well Supported Toolchain DevOps + DevEx = Optimal Software Production Environment
  • 32. Just the tip of the iceberg  This talk has barely scratched the surface  There are many CI/CD and Automation tools on the market  There are many ways to structure teams  At the end of the day, the structure, tools and practices you adopt must suit your organisation
  • 35. Continuous Delivery – Jenkins – barebones config file