SlideShare a Scribd company logo
OPERATIONS
SUPPORT WORKFLOW
NEIL MCCAUGHLEY
BUILD AND RELEASE ENGINERING MANAGER
NEIL MCCAUGHLEY
BUILD AND RELEASE ENGINERING MANAGER
Source code
Change
Unit Testing Quality Control Packaging
Deploy/Test
Dedicated Test
Environment
Deploy
Integration
Environment
Integration
Testing
Deploy/Test
Pre-Production
Deploy/Test
Performance
Publish Release
Candidates
Feature complete
Gate
Release
Candidate Gate
Production
Deployment
Production Release
Gate
Deploy/Test
UAT
Source Control Management CI and Build Tools
Deployment Environments Configuration management and
Deployment
Testing FrameworksBinaries and package storage
Code Quality Analysis Packaging Tools
CI/CD WORKFLOW
Source code
Change
Unit Testing Quality Control Packaging
Deploy/Test
Dedicated Test
Environment
Deploy
Integration
Environment
Integration
Testing
Deploy/Test
Pre-Production
Deploy/Test
Performance
Publish Release
Candidates
Feature complete
Gate
Release
Candidate Gate
Production
Deployment
Production Release
Gate
Deploy/Test
UAT
Source Control Management CI and Build Tools
Deployment Environments Configuration management and
Deployment
Testing FrameworksBinaries and package storage
Code Quality Analysis Packaging Tools
Release uses cases
Source Control
Update dependencies: Ivy - NuGet - Maven - Npm
Update project source
Request a repo
Create branch (feature, release, hotfix)
Tag
Merge branches pre-release or release
Create a repo
Migrate project
Git user support
Git access request
Crucible Project create
Crucible Project create
Crucible user creation
Build
Resolve dependencies
Inspect dependencies
Run unit tests
Run code coverage
Push updated version files
Compile project
Package project
Run code inspection analysis
Test deployment
Create Feature/CI/Release/Hotfix build configuration
Build support
TeamCity access request
Build template config maintenance
Create deployment build configuration
Create functional test build configuration
Integration Test Trigger
Deployment
Trigger Local deployment
Remote deployment
Generate Chef cookbook
Chef environment maintenance
Chef role maintenance
Maintain runlist
Target deployment nodes
Specify deployment package version
Stage artifacts for Production
Stage cookbooks for Production
3rd party cookbook creation
Bootstrap client for deployment
Chef job tool maintenance
Migrate role
Migrate Cookbook
Chef access request
Deployment support
Encrypt Configuration passwords
Decrypt Configuration passwords
Provision server
Artifact Library
Retrieve dependency artifacts
Publish project installer package
Publish project library artifacts
Artifact promotion to release repo
Publish 3rd party packages
Proxy Repository management
Key
Automated task
Self-Service option
Release Engineering Ticket
Release uses cases
Source Control
Update dependencies: Ivy - NuGet - Maven - Npm
Update project source
Request a repo
Create branch (feature, release, hotfix)
Tag
Merge branches pre-release or release
Create a repo
Migrate project
Git user support
Git access request
Crucible Project create
Crucible Project create
Crucible user creation
Build
Resolve dependencies
Inspect dependencies
Run unit tests
Run code coverage
Push updated version files
Compile project
Package project
Run code inspection analysis
Test deployment
Create Feature/CI/Release/Hotfix build configuration
Build support
TeamCity access request
Build template config maintenance
Create deployment build configuration
Create functional test build configuration
Integration Test Trigger
Deployment
Trigger Local deployment
Remote deployment
Generate Chef cookbook
Chef environment maintenance
Chef role maintenance
Maintain runlist
Target deployment nodes
Specify deployment package version
Stage artifacts for Production
Stage cookbooks for Production
3rd party cookbook creation
Bootstrap client for deployment
Chef job tool maintenance
Migrate role
Migrate Cookbook
Chef access request
Deployment support
Encrypt Configuration passwords
Decrypt Configuration passwords
Provision server
Artifact Library
Retrieve dependency artifacts
Publish project installer package
Publish project library artifacts
Artifact promotion to release repo
Publish 3rd party packages
Proxy Repository management
Key
Automated task
Self-Service option
Release Engineering Ticket
MANUAL STEPS =
SLOW RELEASE CYCLE, MORE SUPPORT
From a collaboration stand point, If you spend most of your day raising tickets
or waiting on tickets to be completed
YOU ARE DOING IT WRONG!
We wanted to promote Development, QA and Operations tasks that where
Automated
Or when automation is not possible/desired
Self Service
From a collaboration stand point, If you spend most of your day raising tickets
or waiting on tickets to be completed
YOU ARE DOING IT WRONG!
We wanted to promote Development, QA and Operations tasks that where
Automated
or failing that
Self Service
WAIT. DOESN’T SELF SERVICE
INTRODUCE RISK?
1. Understand what's being self-serviced
Making self-service safe
4. Just because you've implemented self-service
doesn't mean you've reduced cost
3. Put in checks that balance processes and procedures
2. Make education part of your plan
1. Understand what's being self-serviced
Making self-service safe
4. Just because you've implemented self-service doesn't
mean you've reduced cost
3. Put in restrictions that balance processes and procedures
2. Make education part of your plan
WHERE WOULD WE GET THE BEST
VALUE?
ADHERENCE TO STANDARDS
COMMON TICKETS
TREND ANALYSIS
HOW?
RUNDECK
OPERATIONS PROCEDURES JOB SCHEDULER
SELF-SERVICE TEST
ENVIRONMENTS
TRIGGER AUTOMATED
DEPLOYMENT
CREATING FROM TEMPLATE
PROMOTES STANDARDISATION
Release uses cases Before
Source Control
Update dependencies: Ivy - NuGet - Maven - Npm
Update project source
Request a repo
Create branch (feature, release, hotfix)
Tag
Merge branches pre-release or release
Create a repo
Migrate project
Git user support
Git access request
Crucible Project create
Crucible Project create
Crucible user creation
Build
Resolve dependencies
Inspect dependencies
Run unit tests
Run code coverage
Push updated version files
Compile project
Package project
Run code inspection analysis
Test deployment
Create Feature/CI/Release/Hotfix build configuration
Build support
TeamCity access request
Build template config maintenance
Create deployment build configuration
Create functional test build configuration
Integration Test Trigger
Deployment
Trigger Local deployment
Remote deployment
Generate Chef cookbook
Chef environment maintenance
Chef role maintenance
Maintain runlist
Target deployment nodes
Specify deployment package version
Stage artifacts for Production
Stage cookbooks for Production
3rd party cookbook creation
Bootstrap client for deployment
Chef job tool maintenance
Migrate role
Migrate Cookbook
Chef access request
Deployment support
Encrypt Configuration passwords
Decrypt Configuration passwords
Provision server
Artifact Library
Retrieve dependency artifacts
Publish project installer package
Publish project library artifacts
Artifact promotion to release repo
Publish 3rd party packages
Proxy Repository management
Key
Automated task
Self-Service option
Release Engineering Ticket
Release uses cases After
Source Control
Update dependencies: Ivy - NuGet - Maven - Npm
Update project source
Request a repo
Create branch (feature, release, hotfix)
Tag
Merge branches pre-release or release
Create a repo
Migrate project
Git user support
Git access request
Crucible Project create
Crucible Project update
Crucible user creation
Build
Resolve dependencies
Inspect dependencies
Run unit tests
Run code coverage
Push updated version files
Compile project
Package project
Run code inspection analysis
Test deployment
Create Feature/CI/Release/Hotfix build configuration
Build support
TeamCity access request
Build template config maintenance
Create deployment build configuration
Create functional test build configuration
Integration Test Trigger
Deployment
Trigger Local deployment
Remote deployment
Generate Chef cookbook
Chef environment maintenance
Chef role maintenance
Maintain runlist
Target deployment nodes
Specify deployment package version
Stage artifacts for Production
Stage cookbooks for Production
3rd party cookbook creation
Bootstrap client for deployment
Chef job tool maintenance
Migrate role
Migrate Cookbook
Chef access request
Deployment support
Encrypt Configuration passwords
Decrypt Configuration passwords
Provision server
Artifact Library
Retrieve dependency artifacts
Publish project installer package
Publish project library artifacts
Artifact promotion to release repo
Publish 3rd party packages
Proxy Repository management
Key
Automated task
Self-Service option
Release Engineering Ticket
Release uses cases After
Source Control
Update dependencies: Ivy - NuGet - Maven - Npm
Update project source
Request a repo
Create branch (feature, release, hotfix)
Tag
Merge branches pre-release or release
Create a repo
Migrate project
Git user support
Git access request
Crucible Project create
Crucible Project update
Crucible user creation
Build
Resolve dependencies
Inspect dependencies
Run unit tests
Run code coverage
Push updated version files
Compile project
Package project
Run code inspection analysis
Test deployment
Create Feature/CI/Release/Hotfix build configuration
Build support
TeamCity access request
Build template config maintenance
Create deployment build configuration
Create functional test build configuration
Integration Test Trigger
Deployment
Trigger Local deployment
Remote deployment
Generate Chef cookbook
Chef environment maintenance
Chef role maintenance
Maintain runlist
Target deployment nodes
Specify deployment package version
Stage artifacts for Production
Stage cookbooks for Production
3rd party cookbook creation
Bootstrap client for deployment
Chef job tool maintenance
Migrate role
Migrate Cookbook
Chef access request
Deployment support
Encrypt Configuration passwords
Decrypt Configuration passwords
Artifact Library
Retrieve dependency artifacts
Publish project installer package
Publish project library artifacts
Artifact promotion to release repo
Publish 3rd party packages
Proxy Repository management
Key
Automated task
Self-Service option
Release Engineering Ticket
REDUCTION OF QUEUE SUPPORT TIME
FROM 60% FTE TO 20%
Source code
Change
Unit Testing Quality Control Packaging
Deploy/Test
Dedicated Test
Environment
Deploy
Integration
Environment
Integration
Testing
Deploy/Test
Pre-Production
Deploy/Test
Performance
Publish Release
Candidates
Feature complete
Gate
Release
Candidate Gate
Production
Deployment
Production Release
Gate
Deploy/Test
UAT
Source Control Management CI and Build Tools
Deployment Environments Configuration management and
Deployment
Testing FrameworksBinaries and package storage
Code Quality Analysis Packaging Tools
EXTENSIONS:
OPERATIONS OUTSIDE RELEASE MANAGEMENT
EXTENSIONS:
JOB SCHEDULER
• Drives process and automation
• Improves standardisation adoption
• Enables shorter release cycle
• Reduced complexity
• Audit and monitoring improvement
• Assigns ownership
• Facilitates collaboration/handover between teams
Engineering Wins
• Drives process and automation
• Improves standardisation adoption
• Enables shorter release cycle
• Reduced complexity
• Audit and monitoring improvement
• Assigns ownership
• Facilitates collaboration/handover between teams
Engineering Wins
CAVEAT: DISTRIBUTED OWNERSHIP REQUIRES
ACCOUNTABILITY, CONTINUOUS IMPROVEMENT AND
MAINTENANCE
Twitter: @neilisking
THANKS

More Related Content

What's hot

From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
Henri Gomez
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019
Mandi Walls
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
Mike McGarr
 
New York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesNew York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for Kubernetes
Andrew Phillips
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
Mandi Walls
 
Implementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise MiddlewareImplementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise Middleware
XebiaLabs
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
Mike McGarr
 
Securing Apache Web Servers
Securing Apache Web ServersSecuring Apache Web Servers
Securing Apache Web Servers
Information Technology
 
Quality assurance in dev ops and secops world
Quality assurance in dev ops and secops worldQuality assurance in dev ops and secops world
Quality assurance in dev ops and secops world
Dr. Anish Cheriyan (PhD)
 
Banfootguns devseccon 2019
Banfootguns devseccon 2019Banfootguns devseccon 2019
Banfootguns devseccon 2019
Morgan Roman
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
Mohammad Hossein Rimaz
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Sauce Labs
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
Daniel
 
Devops
DevopsDevops
Devops
JyothirmaiG4
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
Tomas Riha
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
Gene Gotimer
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
Naresh Jain
 
Automated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave SadlonAutomated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave Sadlon
QA or the Highway
 
Devops
DevopsDevops
Continuous delivery chernivcy
Continuous delivery chernivcyContinuous delivery chernivcy
Continuous delivery chernivcy
Volodymyr Yelchev
 

What's hot (20)

From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
 
Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019Prescriptive Security with InSpec - All Things Open 2019
Prescriptive Security with InSpec - All Things Open 2019
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
New York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for KubernetesNew York Kubernetes: CI/CD Patterns for Kubernetes
New York Kubernetes: CI/CD Patterns for Kubernetes
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
 
Implementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise MiddlewareImplementing Continuous Delivery with Enterprise Middleware
Implementing Continuous Delivery with Enterprise Middleware
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Securing Apache Web Servers
Securing Apache Web ServersSecuring Apache Web Servers
Securing Apache Web Servers
 
Quality assurance in dev ops and secops world
Quality assurance in dev ops and secops worldQuality assurance in dev ops and secops world
Quality assurance in dev ops and secops world
 
Banfootguns devseccon 2019
Banfootguns devseccon 2019Banfootguns devseccon 2019
Banfootguns devseccon 2019
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
Compatibility Testing of Your Web Apps - Tips and Tricks for Debugging Locall...
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Devops
DevopsDevops
Devops
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Better Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous DeliveryBetter Security Testing: Using the Cloud and Continuous Delivery
Better Security Testing: Using the Cloud and Continuous Delivery
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Automated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave SadlonAutomated Visual Regression Testing by Dave Sadlon
Automated Visual Regression Testing by Dave Sadlon
 
Devops
DevopsDevops
Devops
 
Continuous delivery chernivcy
Continuous delivery chernivcyContinuous delivery chernivcy
Continuous delivery chernivcy
 

Similar to Operations Support Workflow - Rundeck

How to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated TestingHow to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated Testing
Acquia
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
Sarah Dutkiewicz
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
DevOps.com
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
Jasmine Conseil
 
2016 quali continuous testing quest for quality conference
2016 quali continuous testing quest for quality conference2016 quali continuous testing quest for quality conference
2016 quali continuous testing quest for quality conference
QualiQuali
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
Samuel Brown
 
03 test specification and execution
03   test specification and execution03   test specification and execution
03 test specification and execution
Clemens Reijnen
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
Mark Rendell
 
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Eric Shupps
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Janusz Nowak
 
Application versioning
Application versioningApplication versioning
Application versioning
Ted Steinmann
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
David Noble
 
Testing In Java4278
Testing In Java4278Testing In Java4278
Testing In Java4278
contact.bsingh
 
Session 2
Session 2Session 2
Session 2
gayathiry
 
Session 2
Session 2Session 2
Session 2
gayathiry
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
Jasmine Conseil
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
 
ATAGTR2017 Expanding test horizons with Robot Framework
ATAGTR2017 Expanding test horizons with Robot FrameworkATAGTR2017 Expanding test horizons with Robot Framework
ATAGTR2017 Expanding test horizons with Robot Framework
Agile Testing Alliance
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
Mike Brittain
 
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Evgeniy Kuzmin
 

Similar to Operations Support Workflow - Rundeck (20)

How to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated TestingHow to Build and Maintain Quality Drupal Sites with Automated Testing
How to Build and Maintain Quality Drupal Sites with Automated Testing
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
2016 quali continuous testing quest for quality conference
2016 quali continuous testing quest for quality conference2016 quali continuous testing quest for quality conference
2016 quali continuous testing quest for quality conference
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
03 test specification and execution
03   test specification and execution03   test specification and execution
03 test specification and execution
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
Microsoft Ignite 2022 - Scaling, Securing, Managing, and Publishing Power Pla...
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
Application versioning
Application versioningApplication versioning
Application versioning
 
Testing In Java
Testing In JavaTesting In Java
Testing In Java
 
Testing In Java4278
Testing In Java4278Testing In Java4278
Testing In Java4278
 
Session 2
Session 2Session 2
Session 2
 
Session 2
Session 2Session 2
Session 2
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
ATAGTR2017 Expanding test horizons with Robot Framework
ATAGTR2017 Expanding test horizons with Robot FrameworkATAGTR2017 Expanding test horizons with Robot Framework
ATAGTR2017 Expanding test horizons with Robot Framework
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...
 

Recently uploaded

How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
Drona Infotech
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
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
 
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
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
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
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
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
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
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
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
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
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 

Recently uploaded (20)

How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Mobile app Development Services | Drona Infotech
Mobile app Development Services  | Drona InfotechMobile app Development Services  | Drona Infotech
Mobile app Development Services | Drona Infotech
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
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
 
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
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
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
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
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
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
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 !
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
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 ⚡️
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 

Operations Support Workflow - Rundeck

  • 2.
  • 3. NEIL MCCAUGHLEY BUILD AND RELEASE ENGINERING MANAGER
  • 4. NEIL MCCAUGHLEY BUILD AND RELEASE ENGINERING MANAGER
  • 5. Source code Change Unit Testing Quality Control Packaging Deploy/Test Dedicated Test Environment Deploy Integration Environment Integration Testing Deploy/Test Pre-Production Deploy/Test Performance Publish Release Candidates Feature complete Gate Release Candidate Gate Production Deployment Production Release Gate Deploy/Test UAT Source Control Management CI and Build Tools Deployment Environments Configuration management and Deployment Testing FrameworksBinaries and package storage Code Quality Analysis Packaging Tools CI/CD WORKFLOW
  • 6. Source code Change Unit Testing Quality Control Packaging Deploy/Test Dedicated Test Environment Deploy Integration Environment Integration Testing Deploy/Test Pre-Production Deploy/Test Performance Publish Release Candidates Feature complete Gate Release Candidate Gate Production Deployment Production Release Gate Deploy/Test UAT Source Control Management CI and Build Tools Deployment Environments Configuration management and Deployment Testing FrameworksBinaries and package storage Code Quality Analysis Packaging Tools
  • 7. Release uses cases Source Control Update dependencies: Ivy - NuGet - Maven - Npm Update project source Request a repo Create branch (feature, release, hotfix) Tag Merge branches pre-release or release Create a repo Migrate project Git user support Git access request Crucible Project create Crucible Project create Crucible user creation Build Resolve dependencies Inspect dependencies Run unit tests Run code coverage Push updated version files Compile project Package project Run code inspection analysis Test deployment Create Feature/CI/Release/Hotfix build configuration Build support TeamCity access request Build template config maintenance Create deployment build configuration Create functional test build configuration Integration Test Trigger Deployment Trigger Local deployment Remote deployment Generate Chef cookbook Chef environment maintenance Chef role maintenance Maintain runlist Target deployment nodes Specify deployment package version Stage artifacts for Production Stage cookbooks for Production 3rd party cookbook creation Bootstrap client for deployment Chef job tool maintenance Migrate role Migrate Cookbook Chef access request Deployment support Encrypt Configuration passwords Decrypt Configuration passwords Provision server Artifact Library Retrieve dependency artifacts Publish project installer package Publish project library artifacts Artifact promotion to release repo Publish 3rd party packages Proxy Repository management Key Automated task Self-Service option Release Engineering Ticket
  • 8. Release uses cases Source Control Update dependencies: Ivy - NuGet - Maven - Npm Update project source Request a repo Create branch (feature, release, hotfix) Tag Merge branches pre-release or release Create a repo Migrate project Git user support Git access request Crucible Project create Crucible Project create Crucible user creation Build Resolve dependencies Inspect dependencies Run unit tests Run code coverage Push updated version files Compile project Package project Run code inspection analysis Test deployment Create Feature/CI/Release/Hotfix build configuration Build support TeamCity access request Build template config maintenance Create deployment build configuration Create functional test build configuration Integration Test Trigger Deployment Trigger Local deployment Remote deployment Generate Chef cookbook Chef environment maintenance Chef role maintenance Maintain runlist Target deployment nodes Specify deployment package version Stage artifacts for Production Stage cookbooks for Production 3rd party cookbook creation Bootstrap client for deployment Chef job tool maintenance Migrate role Migrate Cookbook Chef access request Deployment support Encrypt Configuration passwords Decrypt Configuration passwords Provision server Artifact Library Retrieve dependency artifacts Publish project installer package Publish project library artifacts Artifact promotion to release repo Publish 3rd party packages Proxy Repository management Key Automated task Self-Service option Release Engineering Ticket MANUAL STEPS = SLOW RELEASE CYCLE, MORE SUPPORT
  • 9. From a collaboration stand point, If you spend most of your day raising tickets or waiting on tickets to be completed YOU ARE DOING IT WRONG! We wanted to promote Development, QA and Operations tasks that where Automated Or when automation is not possible/desired Self Service
  • 10. From a collaboration stand point, If you spend most of your day raising tickets or waiting on tickets to be completed YOU ARE DOING IT WRONG! We wanted to promote Development, QA and Operations tasks that where Automated or failing that Self Service WAIT. DOESN’T SELF SERVICE INTRODUCE RISK?
  • 11. 1. Understand what's being self-serviced Making self-service safe 4. Just because you've implemented self-service doesn't mean you've reduced cost 3. Put in checks that balance processes and procedures 2. Make education part of your plan
  • 12. 1. Understand what's being self-serviced Making self-service safe 4. Just because you've implemented self-service doesn't mean you've reduced cost 3. Put in restrictions that balance processes and procedures 2. Make education part of your plan WHERE WOULD WE GET THE BEST VALUE?
  • 16. HOW?
  • 18. OPERATIONS PROCEDURES JOB SCHEDULER SELF-SERVICE TEST ENVIRONMENTS TRIGGER AUTOMATED DEPLOYMENT
  • 19.
  • 20.
  • 21.
  • 22.
  • 24. Release uses cases Before Source Control Update dependencies: Ivy - NuGet - Maven - Npm Update project source Request a repo Create branch (feature, release, hotfix) Tag Merge branches pre-release or release Create a repo Migrate project Git user support Git access request Crucible Project create Crucible Project create Crucible user creation Build Resolve dependencies Inspect dependencies Run unit tests Run code coverage Push updated version files Compile project Package project Run code inspection analysis Test deployment Create Feature/CI/Release/Hotfix build configuration Build support TeamCity access request Build template config maintenance Create deployment build configuration Create functional test build configuration Integration Test Trigger Deployment Trigger Local deployment Remote deployment Generate Chef cookbook Chef environment maintenance Chef role maintenance Maintain runlist Target deployment nodes Specify deployment package version Stage artifacts for Production Stage cookbooks for Production 3rd party cookbook creation Bootstrap client for deployment Chef job tool maintenance Migrate role Migrate Cookbook Chef access request Deployment support Encrypt Configuration passwords Decrypt Configuration passwords Provision server Artifact Library Retrieve dependency artifacts Publish project installer package Publish project library artifacts Artifact promotion to release repo Publish 3rd party packages Proxy Repository management Key Automated task Self-Service option Release Engineering Ticket
  • 25. Release uses cases After Source Control Update dependencies: Ivy - NuGet - Maven - Npm Update project source Request a repo Create branch (feature, release, hotfix) Tag Merge branches pre-release or release Create a repo Migrate project Git user support Git access request Crucible Project create Crucible Project update Crucible user creation Build Resolve dependencies Inspect dependencies Run unit tests Run code coverage Push updated version files Compile project Package project Run code inspection analysis Test deployment Create Feature/CI/Release/Hotfix build configuration Build support TeamCity access request Build template config maintenance Create deployment build configuration Create functional test build configuration Integration Test Trigger Deployment Trigger Local deployment Remote deployment Generate Chef cookbook Chef environment maintenance Chef role maintenance Maintain runlist Target deployment nodes Specify deployment package version Stage artifacts for Production Stage cookbooks for Production 3rd party cookbook creation Bootstrap client for deployment Chef job tool maintenance Migrate role Migrate Cookbook Chef access request Deployment support Encrypt Configuration passwords Decrypt Configuration passwords Provision server Artifact Library Retrieve dependency artifacts Publish project installer package Publish project library artifacts Artifact promotion to release repo Publish 3rd party packages Proxy Repository management Key Automated task Self-Service option Release Engineering Ticket
  • 26. Release uses cases After Source Control Update dependencies: Ivy - NuGet - Maven - Npm Update project source Request a repo Create branch (feature, release, hotfix) Tag Merge branches pre-release or release Create a repo Migrate project Git user support Git access request Crucible Project create Crucible Project update Crucible user creation Build Resolve dependencies Inspect dependencies Run unit tests Run code coverage Push updated version files Compile project Package project Run code inspection analysis Test deployment Create Feature/CI/Release/Hotfix build configuration Build support TeamCity access request Build template config maintenance Create deployment build configuration Create functional test build configuration Integration Test Trigger Deployment Trigger Local deployment Remote deployment Generate Chef cookbook Chef environment maintenance Chef role maintenance Maintain runlist Target deployment nodes Specify deployment package version Stage artifacts for Production Stage cookbooks for Production 3rd party cookbook creation Bootstrap client for deployment Chef job tool maintenance Migrate role Migrate Cookbook Chef access request Deployment support Encrypt Configuration passwords Decrypt Configuration passwords Artifact Library Retrieve dependency artifacts Publish project installer package Publish project library artifacts Artifact promotion to release repo Publish 3rd party packages Proxy Repository management Key Automated task Self-Service option Release Engineering Ticket REDUCTION OF QUEUE SUPPORT TIME FROM 60% FTE TO 20%
  • 27. Source code Change Unit Testing Quality Control Packaging Deploy/Test Dedicated Test Environment Deploy Integration Environment Integration Testing Deploy/Test Pre-Production Deploy/Test Performance Publish Release Candidates Feature complete Gate Release Candidate Gate Production Deployment Production Release Gate Deploy/Test UAT Source Control Management CI and Build Tools Deployment Environments Configuration management and Deployment Testing FrameworksBinaries and package storage Code Quality Analysis Packaging Tools
  • 29.
  • 30.
  • 32.
  • 33. • Drives process and automation • Improves standardisation adoption • Enables shorter release cycle • Reduced complexity • Audit and monitoring improvement • Assigns ownership • Facilitates collaboration/handover between teams Engineering Wins
  • 34. • Drives process and automation • Improves standardisation adoption • Enables shorter release cycle • Reduced complexity • Audit and monitoring improvement • Assigns ownership • Facilitates collaboration/handover between teams Engineering Wins CAVEAT: DISTRIBUTED OWNERSHIP REQUIRES ACCOUNTABILITY, CONTINUOUS IMPROVEMENT AND MAINTENANCE

Editor's Notes

  1. How do we control/mitigate risk?
  2. We wanted to make self-service safe - Making everybody admin is a common pitfall of Devops/Self service - There's a lot of risk in implementing self-service services. - So what can be done to mitigate the risks to acceptable limits? Here are some recommendations: 1. Understand what's being self-serviced:  - Just because something can be self-serviced doesn't mean it should be. - We need to consider what happens to their processes and procedures when the end user becomes the owner of the process. 2. Make education part of your plan:  - People make mistakes, and just because you understand the value of complete, accurate and timely information doesn't mean your users do. 3. Put in checks that balance processes and procedures:  - You can't always ensure that an access request or self-service data stewardship is being handled correctly. Self-service doesn't equal self-management. - While the operational aspects may be delegated to end users, management of these systems must still be maintained. Eg Notifications 4. Just because you've implemented self-service doesn't mean you've reduced cost:  - In many cases self-service doesn't mean costs will go down in the short term. - With the overhead of managing and monitoring these services, costs may actually go up in the short-run. - If you choose and design wisely. It should reduce future spending.
  3. How de we determine this?
  4. Deviating from standard means that any automation of self service tooling is at risk of being out of date. Covers: - Build configurations - Deployment scripts - Source code branching policy
  5. If Build/IT/DBA Engineers are doing the same repeatable tasks. - Opportunity for automation or self service - The best engineers are often the ones who embrace the most tiresome, least glamorous, and most "never-completed" of tasks.
  6. Various monitoring and event notifiers like Splunk or Zabbix can tell us common failure points or common manual tasks
  7. So we know our - Pipeline - Manual tasks - We have a guideline of how to make self-service a realistic function - How or where are we going to run these tasks
  8. Rundeck is an - open source automation service with a web console - It provides command line tools and a WebAPI - It lets you easily run automation tasks across a set of nodes - Give remote admin connectivity through ssh and winrm
  9. distributed ownership and accountability (requires trust, communication, and continuous improvement)