SlideShare a Scribd company logo
1 of 10
Download to read offline
Using Jenkins Enterprise to effectively manage the Jenkins
ecosystem across the Enterprise
Sarah Banks, Kostas Gaitanos, Raj Menattamai
Footer
#jenkinsconfAbout FINRA www.finra.org
2
Financial Industry
Regulatory Authority
Ø  Largest	
  independent	
  regulator	
  for	
  
all	
  securi2es	
  firms	
  doing	
  business	
  
in	
  the	
  U.S.	
  
Ø  >4,000	
  brokerage	
  firms	
  
Ø  ~161,000	
  branch	
  offices	
  
Ø  ~637,700	
  registered	
  securi2es	
  
representa2ves	
  
Our Mission:
Ø  Investor	
  Protec2on	
  	
  
Ø  Market	
  Integrity	
  
Our	
  Technology	
  is	
  powerful	
  
enough	
  to	
  look	
  across	
  markets	
  
and	
  detect	
  poten2al	
  fraud.	
  	
  
We	
  oversee	
  50	
  billion	
  market	
  
transac2ons	
  every	
  day	
  
In	
  2014	
  ,	
  we	
  expelled	
  18	
  firms	
  from	
  the	
  
industry,	
  suspended	
  705	
  brokers	
  and	
  
barred	
  481	
  brokers	
  from	
  doing	
  business.	
  
We	
  also	
  fined	
  firms	
  more	
  than	
  
$134	
  million,	
  and	
  ordered	
  
res2tu2on	
  of	
  $32.3	
  million	
  to	
  
investors	
  who	
  had	
  been	
  
harmed.	
  
Computerized	
  cer:fica:on	
  &	
  
con:nued	
  educa:on.	
  
Series	
  7,	
  63…etc.	
  
Educating
& informing investors
Actively supporting
firms’ compliance efforts
Providing independent,
vigorous regulation
Inviting active
industry involvement
& input
Footer
#jenkinsconfMetrics for Jenkins Enterprise based ecosystem activities
# of Apps # of Folders # of Jobs # of Builds/yr
(estimate)
# of
Deployments/yr
(estimate)
~110 ~610 ~1,400* ~100K
promotable
builds
~75K (across all
envs)
3
* # of jobs active over the past quarter; valid jobs requiring maintenance ~ 2.5K
>100 plugins currently utilized
Footer
#jenkinsconfDiscussion areas
4
•  Enable deployments to higher environments via the build
pipeline
–  Development have the ability to deploy to all lower environments
including QC
–  Enable Prod Deployment group to execute production deployments
using the exact same approach as for the lower environments.
•  Treat all of Jenkins build-deploy infra as software/source
code
–  Automatic creation of all infra (i.e folders, jobs, views/pipelines)
–  Use the same framework to create all that make up an application
Footer
#jenkinsconfEnable deployments to higher environments via the build pipeline
5
Footer
#jenkinsconfEnable deployments to higher environments via the build pipeline
6
Folder Template when instantiated will create:
v  Deployment jobs for lower environments
•  Job template to create standard XL Deploy deployment job *
v  Deployment job for QA with a child job “promote_to_prod”
•  Keep the build forever
•  Job template to create standard XL Deploy deployment job AND a child job *
v  Deployment job for Prod
•  Job template to create a Prod specific XL Deploy deployment job *
v  PROD folder with a Prod Deployment job
§  RBAC is set
§  promote_to_prod & prod_deploy jobs are created *
* jobs are created based on corresponding job templates
Footer
#jenkinsconfFolder template groovy code handling RBAC
7
•  <com.cloudbees.hudson.plugins.folder.Folder plugin="cloudbees-folder@4.5">
•  <actions/>
•  <description></description>
•  <properties>
•  <com.cloudbees.jenkins.plugins.foldersplus.SecurityGrantsFolderProperty plugin="cloudbees-folders-plus@2.9">
•  <securityGrants/>
•  </com.cloudbees.jenkins.plugins.foldersplus.SecurityGrantsFolderProperty>
•  <com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty>
•  <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash">
•  <entry>
•  <com.cloudbees.plugins.credentials.domains.Domain plugin="credentials@1.16.1">
•  <specifications/>
•  </com.cloudbees.plugins.credentials.domains.Domain>
•  <java.util.concurrent.CopyOnWriteArrayList/>
•  </entry>
•  </domainCredentialsMap>
•  </com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty>
•  <com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty plugin="cloudbees-folders-plus@2.9">
•  <properties></properties>
•  </com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty>
•  <com.cloudbees.hudson.plugins.folder.properties.SubItemFilterProperty plugin="cloudbees-folders-plus@2.9"/>
•  <com.cloudbees.hudson.plugins.folder.properties.FolderProxyGroupContainer plugin="nectar-rbac@4.12">
•  <groups>
•  <nectar.plugins.rbac.groups.Group>
•  <name>PPL_ROLE_TEC_ART_LOCAL</name>
•  <member>PPL_ROLE_TEC_ART</member>
•  <role>develop_prod</role>
•  </nectar.plugins.rbac.groups.Group>
•  </groups>
•  </com.cloudbees.hudson.plugins.folder.properties.FolderProxyGroupContainer>
•  </properties>
Footer
#jenkinsconfTreat all of Jenkins build-deploy infra as software/source code
8
The goal is to create all of our build-deploy infrastructure automatically:
Ø  Folders
Ø  Jobs
Ø  Views/Pipelines
v  Create a single framework ( groovy job DSL) for all application-components that
make an application
v  All of the application related info (i.e folders, environments, pipeline views,
components, parameters for plugins used etc…) is captured in a JSON file
v  JSON file is the input to the framework, as the framework effectively becomes the
“seed” job; when “seed” job runs it will create all of folders, jobs views/pipelines for
the application
Footer
#jenkinsconf
9
Properties JSON
"AGS": {
"scm": "svn",
"name": "ENTERPRISEDESKTOP",
"rootFolder": "FLDR_ENTERPRISEDESKTOP_DSL_DEMO",
"DevQCDeployJobFolder":FLDR_ENTERPRISEDESKTOP_DSL_DEMO/deployment_jobs",
"DevQCDeployJobFolderTemplate": "FLDR_DEPLOY_JOBS_use_with_Job_DSL",
"ProdDeployJobFolder": "FLDR_ENTERPRISEDESKTOP_DSL_DEMO/deployment_jobs/
PROD_JOBS",
"ProdDeployJobFolderTemplate": "FLDR_DEPLOY_JOBS_use_with_Job_DSL/PROD_JOBS",
"DevQC": [
{ "name": "DEV_deploy" },
:
:
JobDSLmethods
(class Folders {
static void createParentFolders(def asgProperties, def AGS, def AGSFolder,…)
{ Folders.createAGSFolder(AGSFolder, AGS)
:
:
}
static void createAGSFolder(def folder, def AGS) {
folder.with {
:
: :
}
JobDSL Framework
import jobdslmethods.enterprise.folder.*
import groovy.json.JsonSlurper
:
:
Folders.createParentFolders(asgProperties, AGS, AGSFolder, DeploymentJobFolder, DeploymentJobProdFolder)
:
Footer
#jenkinsconfMetrics discussion
10
Template Plugins Manual
setup of pipeline * 5 mins 30 mins
~4 hrs
Job DSL & Template
Plugins
Manual
Jenkins infra as
code^
20 mins 4-5 hours
* Times are per job; on an average each app contains 12-13 jobs
~ 1week upfront investment to design/implement
^ metrics captured based on applications with ~20 jobs/pipelines
~3 weeks upfront investment to design/implement

More Related Content

Similar to Using Jenkins Enterprise to effectively manage the Jenkins ecosystem across the Enterprise with DevOps best practices

Creating Developer-Friendly Docker Containers with Chaperone
Creating Developer-Friendly Docker Containers with ChaperoneCreating Developer-Friendly Docker Containers with Chaperone
Creating Developer-Friendly Docker Containers with ChaperoneGary Wisniewski
 
The Usual Suspects - Red Hat Developer Day 2012-11-01
The Usual Suspects - Red Hat Developer Day 2012-11-01The Usual Suspects - Red Hat Developer Day 2012-11-01
The Usual Suspects - Red Hat Developer Day 2012-11-01Jorge Hidalgo
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaborationJohn Stevenson
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaborationJohn Stevenson
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...Agile Testing Alliance
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityMandi Walls
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...Henning Jacobs
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatJessica DeVita
 
InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020Mandi Walls
 
Pragmatic Pipeline Security
Pragmatic Pipeline SecurityPragmatic Pipeline Security
Pragmatic Pipeline SecurityJames Wickett
 
Continuos integration for iOS projects
Continuos integration for iOS projectsContinuos integration for iOS projects
Continuos integration for iOS projectsAleksandra Gavrilovska
 
Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1Netcetera
 
Continuous delivery @ iyzico
Continuous delivery @ iyzicoContinuous delivery @ iyzico
Continuous delivery @ iyzicoÜmit Ünal
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsJules Pierre-Louis
 
Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...
Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...
Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...Spark Summit
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpecAll Things Open
 
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 2019Mandi Walls
 
Open Source Compliance for DevOps - OSCON 2017
Open Source Compliance for DevOps - OSCON 2017Open Source Compliance for DevOps - OSCON 2017
Open Source Compliance for DevOps - OSCON 2017Bianca Xue Jiang
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePiotr Pelczar
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy Docker, Inc.
 

Similar to Using Jenkins Enterprise to effectively manage the Jenkins ecosystem across the Enterprise with DevOps best practices (20)

Creating Developer-Friendly Docker Containers with Chaperone
Creating Developer-Friendly Docker Containers with ChaperoneCreating Developer-Friendly Docker Containers with Chaperone
Creating Developer-Friendly Docker Containers with Chaperone
 
The Usual Suspects - Red Hat Developer Day 2012-11-01
The Usual Suspects - Red Hat Developer Day 2012-11-01The Usual Suspects - Red Hat Developer Day 2012-11-01
The Usual Suspects - Red Hat Developer Day 2012-11-01
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
 
Using Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure SecurityUsing Chef InSpec for Infrastructure Security
Using Chef InSpec for Infrastructure Security
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
 
InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020InSpec at DevOps ATL Meetup January 22, 2020
InSpec at DevOps ATL Meetup January 22, 2020
 
Pragmatic Pipeline Security
Pragmatic Pipeline SecurityPragmatic Pipeline Security
Pragmatic Pipeline Security
 
Continuos integration for iOS projects
Continuos integration for iOS projectsContinuos integration for iOS projects
Continuos integration for iOS projects
 
Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1
 
Continuous delivery @ iyzico
Continuous delivery @ iyzicoContinuous delivery @ iyzico
Continuous delivery @ iyzico
 
Containers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical SolutionsContainers: DevOp Enablers of Technical Solutions
Containers: DevOp Enablers of Technical Solutions
 
Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...
Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...
Apache Spark the Hard Way: Challenges with Building an On-Prem Spark Analytic...
 
Prescriptive System Security with InSpec
Prescriptive System Security with InSpecPrescriptive System Security with InSpec
Prescriptive System Security with InSpec
 
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
 
Open Source Compliance for DevOps - OSCON 2017
Open Source Compliance for DevOps - OSCON 2017Open Source Compliance for DevOps - OSCON 2017
Open Source Compliance for DevOps - OSCON 2017
 
Pragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecturePragmatic Monolith-First, easy to decompose, clean architecture
Pragmatic Monolith-First, easy to decompose, clean architecture
 
DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy  DCSF19 How To Build Your Containerization Strategy
DCSF19 How To Build Your Containerization Strategy
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Using Jenkins Enterprise to effectively manage the Jenkins ecosystem across the Enterprise with DevOps best practices

  • 1. Using Jenkins Enterprise to effectively manage the Jenkins ecosystem across the Enterprise Sarah Banks, Kostas Gaitanos, Raj Menattamai
  • 2. Footer #jenkinsconfAbout FINRA www.finra.org 2 Financial Industry Regulatory Authority Ø  Largest  independent  regulator  for   all  securi2es  firms  doing  business   in  the  U.S.   Ø  >4,000  brokerage  firms   Ø  ~161,000  branch  offices   Ø  ~637,700  registered  securi2es   representa2ves   Our Mission: Ø  Investor  Protec2on     Ø  Market  Integrity   Our  Technology  is  powerful   enough  to  look  across  markets   and  detect  poten2al  fraud.     We  oversee  50  billion  market   transac2ons  every  day   In  2014  ,  we  expelled  18  firms  from  the   industry,  suspended  705  brokers  and   barred  481  brokers  from  doing  business.   We  also  fined  firms  more  than   $134  million,  and  ordered   res2tu2on  of  $32.3  million  to   investors  who  had  been   harmed.   Computerized  cer:fica:on  &   con:nued  educa:on.   Series  7,  63…etc.   Educating & informing investors Actively supporting firms’ compliance efforts Providing independent, vigorous regulation Inviting active industry involvement & input
  • 3. Footer #jenkinsconfMetrics for Jenkins Enterprise based ecosystem activities # of Apps # of Folders # of Jobs # of Builds/yr (estimate) # of Deployments/yr (estimate) ~110 ~610 ~1,400* ~100K promotable builds ~75K (across all envs) 3 * # of jobs active over the past quarter; valid jobs requiring maintenance ~ 2.5K >100 plugins currently utilized
  • 4. Footer #jenkinsconfDiscussion areas 4 •  Enable deployments to higher environments via the build pipeline –  Development have the ability to deploy to all lower environments including QC –  Enable Prod Deployment group to execute production deployments using the exact same approach as for the lower environments. •  Treat all of Jenkins build-deploy infra as software/source code –  Automatic creation of all infra (i.e folders, jobs, views/pipelines) –  Use the same framework to create all that make up an application
  • 5. Footer #jenkinsconfEnable deployments to higher environments via the build pipeline 5
  • 6. Footer #jenkinsconfEnable deployments to higher environments via the build pipeline 6 Folder Template when instantiated will create: v  Deployment jobs for lower environments •  Job template to create standard XL Deploy deployment job * v  Deployment job for QA with a child job “promote_to_prod” •  Keep the build forever •  Job template to create standard XL Deploy deployment job AND a child job * v  Deployment job for Prod •  Job template to create a Prod specific XL Deploy deployment job * v  PROD folder with a Prod Deployment job §  RBAC is set §  promote_to_prod & prod_deploy jobs are created * * jobs are created based on corresponding job templates
  • 7. Footer #jenkinsconfFolder template groovy code handling RBAC 7 •  <com.cloudbees.hudson.plugins.folder.Folder plugin="cloudbees-folder@4.5"> •  <actions/> •  <description></description> •  <properties> •  <com.cloudbees.jenkins.plugins.foldersplus.SecurityGrantsFolderProperty plugin="cloudbees-folders-plus@2.9"> •  <securityGrants/> •  </com.cloudbees.jenkins.plugins.foldersplus.SecurityGrantsFolderProperty> •  <com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty> •  <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash"> •  <entry> •  <com.cloudbees.plugins.credentials.domains.Domain plugin="credentials@1.16.1"> •  <specifications/> •  </com.cloudbees.plugins.credentials.domains.Domain> •  <java.util.concurrent.CopyOnWriteArrayList/> •  </entry> •  </domainCredentialsMap> •  </com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty> •  <com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty plugin="cloudbees-folders-plus@2.9"> •  <properties></properties> •  </com.cloudbees.hudson.plugins.folder.properties.EnvVarsFolderProperty> •  <com.cloudbees.hudson.plugins.folder.properties.SubItemFilterProperty plugin="cloudbees-folders-plus@2.9"/> •  <com.cloudbees.hudson.plugins.folder.properties.FolderProxyGroupContainer plugin="nectar-rbac@4.12"> •  <groups> •  <nectar.plugins.rbac.groups.Group> •  <name>PPL_ROLE_TEC_ART_LOCAL</name> •  <member>PPL_ROLE_TEC_ART</member> •  <role>develop_prod</role> •  </nectar.plugins.rbac.groups.Group> •  </groups> •  </com.cloudbees.hudson.plugins.folder.properties.FolderProxyGroupContainer> •  </properties>
  • 8. Footer #jenkinsconfTreat all of Jenkins build-deploy infra as software/source code 8 The goal is to create all of our build-deploy infrastructure automatically: Ø  Folders Ø  Jobs Ø  Views/Pipelines v  Create a single framework ( groovy job DSL) for all application-components that make an application v  All of the application related info (i.e folders, environments, pipeline views, components, parameters for plugins used etc…) is captured in a JSON file v  JSON file is the input to the framework, as the framework effectively becomes the “seed” job; when “seed” job runs it will create all of folders, jobs views/pipelines for the application
  • 9. Footer #jenkinsconf 9 Properties JSON "AGS": { "scm": "svn", "name": "ENTERPRISEDESKTOP", "rootFolder": "FLDR_ENTERPRISEDESKTOP_DSL_DEMO", "DevQCDeployJobFolder":FLDR_ENTERPRISEDESKTOP_DSL_DEMO/deployment_jobs", "DevQCDeployJobFolderTemplate": "FLDR_DEPLOY_JOBS_use_with_Job_DSL", "ProdDeployJobFolder": "FLDR_ENTERPRISEDESKTOP_DSL_DEMO/deployment_jobs/ PROD_JOBS", "ProdDeployJobFolderTemplate": "FLDR_DEPLOY_JOBS_use_with_Job_DSL/PROD_JOBS", "DevQC": [ { "name": "DEV_deploy" }, : : JobDSLmethods (class Folders { static void createParentFolders(def asgProperties, def AGS, def AGSFolder,…) { Folders.createAGSFolder(AGSFolder, AGS) : : } static void createAGSFolder(def folder, def AGS) { folder.with { : : : } JobDSL Framework import jobdslmethods.enterprise.folder.* import groovy.json.JsonSlurper : : Folders.createParentFolders(asgProperties, AGS, AGSFolder, DeploymentJobFolder, DeploymentJobProdFolder) :
  • 10. Footer #jenkinsconfMetrics discussion 10 Template Plugins Manual setup of pipeline * 5 mins 30 mins ~4 hrs Job DSL & Template Plugins Manual Jenkins infra as code^ 20 mins 4-5 hours * Times are per job; on an average each app contains 12-13 jobs ~ 1week upfront investment to design/implement ^ metrics captured based on applications with ~20 jobs/pipelines ~3 weeks upfront investment to design/implement