SlideShare a Scribd company logo
November	15,	2016
Continuous Delivery Pipeline –
Patterns and Anti-patterns
Juni	Mukherjee (@JuniTweets)	
Consultant,	CI/CD,	LifeLock
(Views	are	my	own.)
November	15,	2016
November	15,	2016
November	15,	2016
Domain-driven Design (DDD) for Continuous Delivery
Thank	you	Eric	Evans	for	DDD!	
Entity :		Defined	by	ID,	not	attributes Value	Object :	Defined	by	attributes,	no	ID
Aggregate	:	Collection	of	objects	 Domain	:	Sphere	of	activity	and	influence
Model	:	System	of	abstractions Domain	Event	:	Domain	experts	care	for
Ubiquitous Language :	Shared	language Domain	Services	:	Shared	functionality
Connect	the	implementation	to	an	evolving domain	model
Continuous	Delivery	is	a	journey,	not	a	destination.
November	15,	2016
Domain Model Integrity – Bounded Context, Context Map
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Fragmentation, Blurred Edges, Bounded Context, Context Map
© 2016 CloudBees, Inc. All Rights Reserved
Node,	
Java,	
iOS,
Android,
Database,
::::::
::::
November	15,	2016
Domain Model Integrity – Ubiquitous Language
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Ubiquitous Language – [Soft | Hard | Firm]ware, Embedded, IoT
Component
The	smallest	distributable	and	
testable	unit
Unit,	SCA	– Linter,	SCA	– Security	
Vulnerabilities
Modules,	Libraries
Subsystem
The	smallest	deployable	and	
runnable	unit
Functional	(Security,
I18N,	L10N,	…),	Performance
JAR	|	IPA	|		APK	|	Emulators		|	
Simulators	…
System
Loosely	coupled	subsystems
Integration	(Interfaces,	
Network),	Performance
JAR	&	IPA	&	APK	&	Real	Devices	
&	Accessories	…
Rate of Change, Supply Chain
November	15,	2016
Domain Model Integrity – Continuous Integration
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Continuous Integration, Continuous Delivery, Value Stream Map
Product :	System	Under	Test	(SUT) Configuration :	Application,	Environment
Test :	Unit,	Static,	Functional,	Integration,	Perf Infrastructure,	Platform:	Infra-As-Code,	*aaS
Pipeline-As-Code :	Dockerized Jenkins	2.0,	Jenkinsfile (Process-As-Code),	Shared	Kernel	(Utils.groovy,	Libs)	
VSM:	Automate	ONLY	the	value-adding	steps.	Discard	the	rest.
November	15,	2016
MVP - Continuous Delivery Pipeline, Slice over Dice
© 2016 CloudBees, Inc. All Rights Reserved
Product	Slice	:	System	Under	Test	(SUT) Configuration	Slice	:	Application,	Environment
Test	Slice	:	Unit,	Static,	Functional,	Int,	Perf Infrastructure,	Platform:	Infra-As-Code,	*aaS
Pipeline-As-Code :	Dockerized Jenkins	2.0,	Jenkinsfile (Process-As-Code),	Shared	Kernel	(Utils.groovy)
November	15,	2016
Domain Model Integrity – Big Ball of Mud (And Tests Too?)
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Pipeline – Graph – Tightly Coupled Product Architecture
November	15,	2016
Domain Model Integrity – Separate Ways
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Pipeline – Linear – Independently Deployable Artifact
November	15,	2016
Death by a thousand test-types!
… And by a thousand environments!
November	15,	2016
Domain Model Integrity – Customer/Supplier Teams
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Customer Supplier - Pipeline Design Pattern
November	15,	2016
Domain Model Integrity - Conformist
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Conformist – Pipeline Design Pattern
November	15,	2016
Domain Model Integrity – Shared Kernel, Anti-corruption Layer
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Shared Kernel, Anticorruption Layer
Domain Services,
Services Architecture,
Cloudy with a chance of
sharp interfaces
Network Latency,
Circuit Breaker
November	15,	2016
Pipeline-as-a-service: Scrum Teams sign a contract!
1. Process	drives	Architecture.	Process	drives	tools.
2. Pipeline	is	a	product,	based	off	the	Services	Architecture.	
3. The	suite	of	polyglot	Domain	Services,	with	sharp	interfaces,	could	be	developed	
by	anyone	in	the	organization,	based	off	protocol.
4. Exact	interfaces	should	declare	exact	intent.	Should	maintain	existing	interfaces	so	
that	customers	don’t	experience	service	disruption.	
5. Segregation/Separation	of	duties is	the	concept	of	having	more	than	one	person	
required	to	complete	a	task.	It	is	an	internal	control	intended	to	prevent	fraud	and	
error.	It	does	NOT	mean	Human	Being	A	does	not	trust	Human	Being	B	and	hence	
starts	a	new	department	of	clicking	buttons.	
6. Should	enable	Pipeline	customers	to	make	choices,	so	that	Scrum	Teams	could	
control	their	own	destiny.
Scrum Teams control their own destiny
November	15,	2016
Domain Model Integrity – Published Language
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
Published Language – DSL, It’s groovy!, 1-800-Plumber
Unmanageable	string	of	jobs	you’ve	become,
Pipeline	you	must	be,
Declarative,	versioned	and	ephemeral	become	you	must,
Or	the	dark	side	won’t	set	you	free.
Pipeline	analytics	report	you	must,
In	the	groove	you	must	get,
Make	happy	our	engineers	you	must,
Don’t	make	them	fret.
Jenkinsfile /	Jenkins	2.0
node ("${AGENT}") { }
stage ‘deploy’	
timeout (time:2,	unit:'DAYS')	
{input message:	’Proceed?”,	submitter:	
’Operations’}
stage ‘functional,	performance,	security	test’	
parallel (	parallel_task_stage_sauce :	{
},	parallel_task_stage_blazemeter :	{
},	parallel_task_stage_appspider :	{		})
try	{}	
catch	(InterruptedException x)	{	slackSend color:	'#008000',	
message:	””	}
November	15,	2016
Domain Model Integrity - Flying colors!
© 2016 CloudBees, Inc. All Rights Reserved
November	15,	2016
KPIs – Show Me the Money!
What can be measured, can be fixed!
November	15,	2016
On Closing : Conway’s Law, Maya Angelou’s Human Family
“Organizations which design systems ... are constrained to produce
designs which are copies of the communication
structures of these
organizations.”
Melvin Conway
“I note the obvious
differences between
each sort and type,
We are more alike,
my friends, than we
are unalike.”
Maya Angelou
November	15,	2016
Thank you AllDayDevOps,
Community, Sponsors and
Supporters!
Juni	Mukherjee (@JuniTweets)

More Related Content

Viewers also liked

Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
Julian Simpson
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous Integration
Wouter Konecny
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
Zend by Rogue Wave Software
 
Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...
Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...
Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...
CA Technologies
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Amazon Web Services
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
Puppet
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
Adnan Aziz
 

Viewers also liked (8)

Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous Integration
 
Continuous Delivery e-book
Continuous Delivery e-bookContinuous Delivery e-book
Continuous Delivery e-book
 
Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...
Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...
Case Study: ING Builds Highly Available Continuous Delivery Pipeline with Mic...
 
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
Agile Release Planning
Agile Release PlanningAgile Release Planning
Agile Release Planning
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 

Similar to Continuous Delivery Pipeline - Patterns and Anti-patterns

Adobe vs. Sketch
Adobe vs. SketchAdobe vs. Sketch
Adobe vs. Sketch
Rob Musser
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API Languages
Restlet
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
Open Source Strategy Forum
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2
 
Choosing a Cloud Provider: Public-Private-Hybrid
Choosing a Cloud Provider: Public-Private-HybridChoosing a Cloud Provider: Public-Private-Hybrid
Choosing a Cloud Provider: Public-Private-Hybrid
Robert Starmer
 
A Self-Service API Portal for Developers
A Self-Service API Portal for DevelopersA Self-Service API Portal for Developers
A Self-Service API Portal for Developers
CA Technologies
 
Bridging Microservices, APIs and Integration
Bridging Microservices, APIs and IntegrationBridging Microservices, APIs and Integration
Bridging Microservices, APIs and Integration
Kasun Indrasiri
 
Clouds in 2016
Clouds in 2016Clouds in 2016
Clouds in 2016
Guy Vinograd ☁
 
Introduction to Developing for Mobile with AWS
Introduction to Developing for Mobile with AWSIntroduction to Developing for Mobile with AWS
Introduction to Developing for Mobile with AWS
Amazon Web Services
 
Best of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentationBest of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentation
Lahav Savir
 
Introduction to Development for Mobile with AWS
Introduction to Development for Mobile with AWSIntroduction to Development for Mobile with AWS
Introduction to Development for Mobile with AWS
Amazon Web Services
 
AWS Initiate Day Manchester 2019 – AWS Breaking Down the Monoliths
AWS Initiate Day Manchester 2019 – AWS Breaking Down the MonolithsAWS Initiate Day Manchester 2019 – AWS Breaking Down the Monoliths
AWS Initiate Day Manchester 2019 – AWS Breaking Down the Monoliths
Amazon Web Services
 
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
Amazon Web Services
 
Building Scalable and Secure Mobile Apps with AWS
Building Scalable and Secure Mobile Apps with AWSBuilding Scalable and Secure Mobile Apps with AWS
Building Scalable and Secure Mobile Apps with AWS
Amazon Web Services
 
Enterprise Applications, Microservices and SAP HANA Cloud Platform
Enterprise Applications, Microservices and SAP HANA Cloud PlatformEnterprise Applications, Microservices and SAP HANA Cloud Platform
Enterprise Applications, Microservices and SAP HANA Cloud Platform
msg systems Romania
 
IMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc KeynoteIMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc Keynote
AdobeMarketingCloud
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
Phil Wilkins
 
How to Secure Your AWS Powered Mobile App End-to-End
How to Secure Your AWS Powered Mobile App End-to-EndHow to Secure Your AWS Powered Mobile App End-to-End
How to Secure Your AWS Powered Mobile App End-to-End
Lahav Savir
 
Responsive Web Design: Testing to Deliver a Consistent User Experience
Responsive Web Design: Testing to Deliver a Consistent User ExperienceResponsive Web Design: Testing to Deliver a Consistent User Experience
Responsive Web Design: Testing to Deliver a Consistent User Experience
Perfecto by Perforce
 

Similar to Continuous Delivery Pipeline - Patterns and Anti-patterns (20)

Adobe vs. Sketch
Adobe vs. SketchAdobe vs. Sketch
Adobe vs. Sketch
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API Languages
 
The Decoupled CMS in Financial Services
The Decoupled CMS in Financial ServicesThe Decoupled CMS in Financial Services
The Decoupled CMS in Financial Services
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Choosing a Cloud Provider: Public-Private-Hybrid
Choosing a Cloud Provider: Public-Private-HybridChoosing a Cloud Provider: Public-Private-Hybrid
Choosing a Cloud Provider: Public-Private-Hybrid
 
A Self-Service API Portal for Developers
A Self-Service API Portal for DevelopersA Self-Service API Portal for Developers
A Self-Service API Portal for Developers
 
Bridging Microservices, APIs and Integration
Bridging Microservices, APIs and IntegrationBridging Microservices, APIs and Integration
Bridging Microservices, APIs and Integration
 
Clouds in 2016
Clouds in 2016Clouds in 2016
Clouds in 2016
 
Introduction to Developing for Mobile with AWS
Introduction to Developing for Mobile with AWSIntroduction to Developing for Mobile with AWS
Introduction to Developing for Mobile with AWS
 
Best of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentationBest of re:Invent 2016 meetup presentation
Best of re:Invent 2016 meetup presentation
 
Introduction to Development for Mobile with AWS
Introduction to Development for Mobile with AWSIntroduction to Development for Mobile with AWS
Introduction to Development for Mobile with AWS
 
AWS Initiate Day Manchester 2019 – AWS Breaking Down the Monoliths
AWS Initiate Day Manchester 2019 – AWS Breaking Down the MonolithsAWS Initiate Day Manchester 2019 – AWS Breaking Down the Monoliths
AWS Initiate Day Manchester 2019 – AWS Breaking Down the Monoliths
 
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
DevOps as a Pathway to AWS | AWS Public Sector Summit 2016
 
Building Scalable and Secure Mobile Apps with AWS
Building Scalable and Secure Mobile Apps with AWSBuilding Scalable and Secure Mobile Apps with AWS
Building Scalable and Secure Mobile Apps with AWS
 
Enterprise Applications, Microservices and SAP HANA Cloud Platform
Enterprise Applications, Microservices and SAP HANA Cloud PlatformEnterprise Applications, Microservices and SAP HANA Cloud Platform
Enterprise Applications, Microservices and SAP HANA Cloud Platform
 
IMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc KeynoteIMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc Keynote
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17
 
How to Secure Your AWS Powered Mobile App End-to-End
How to Secure Your AWS Powered Mobile App End-to-EndHow to Secure Your AWS Powered Mobile App End-to-End
How to Secure Your AWS Powered Mobile App End-to-End
 
Responsive Web Design: Testing to Deliver a Consistent User Experience
Responsive Web Design: Testing to Deliver a Consistent User ExperienceResponsive Web Design: Testing to Deliver a Consistent User Experience
Responsive Web Design: Testing to Deliver a Consistent User Experience
 

More from Sonatype

DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019
Sonatype
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
Sonatype
 
RSAC DevSecOpsDays 2018 - We are all Equifax
RSAC DevSecOpsDays 2018 - We are all EquifaxRSAC DevSecOpsDays 2018 - We are all Equifax
RSAC DevSecOpsDays 2018 - We are all Equifax
Sonatype
 
DevSecOps reference architectures 2018
DevSecOps reference architectures 2018DevSecOps reference architectures 2018
DevSecOps reference architectures 2018
Sonatype
 
30+ Nexus Integrations to Accelerate DevOps
30+ Nexus Integrations to Accelerate DevOps30+ Nexus Integrations to Accelerate DevOps
30+ Nexus Integrations to Accelerate DevOps
Sonatype
 
2017 DevSecOps Survey
2017 DevSecOps Survey2017 DevSecOps Survey
2017 DevSecOps Survey
Sonatype
 
Starting and Scaling DevOps In the Enterprise
Starting and Scaling DevOps In the EnterpriseStarting and Scaling DevOps In the Enterprise
Starting and Scaling DevOps In the Enterprise
Sonatype
 
DevOps Friendly Doc Publishing for APIs & Microservices
DevOps Friendly Doc Publishing for APIs & MicroservicesDevOps Friendly Doc Publishing for APIs & Microservices
DevOps Friendly Doc Publishing for APIs & Microservices
Sonatype
 
The Unrealized Role of Monitoring & Alerting w/ Jason Hand
The Unrealized Role of Monitoring & Alerting w/ Jason HandThe Unrealized Role of Monitoring & Alerting w/ Jason Hand
The Unrealized Role of Monitoring & Alerting w/ Jason Hand
Sonatype
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen BealDevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen Beal
Sonatype
 
Serverless and the Way Forward
Serverless and the Way ForwardServerless and the Way Forward
Serverless and the Way Forward
Sonatype
 
A Small Association's Journey to DevOps w/ Edward Ruiz
A Small Association's Journey to DevOps w/ Edward RuizA Small Association's Journey to DevOps w/ Edward Ruiz
A Small Association's Journey to DevOps w/ Edward Ruiz
Sonatype
 
What's My Security Policy Doing to My Help Desk w/ Chris Swan
What's My Security Policy Doing to My Help Desk w/ Chris SwanWhat's My Security Policy Doing to My Help Desk w/ Chris Swan
What's My Security Policy Doing to My Help Desk w/ Chris Swan
Sonatype
 
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-orsCharacterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Sonatype
 
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin CollinsStatic Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Sonatype
 
Automated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSAutomated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSS
Sonatype
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
Sonatype
 
There is No Server: Immutable Infrastructure and Serverless Architecture
There is No Server: Immutable Infrastructure and Serverless ArchitectureThere is No Server: Immutable Infrastructure and Serverless Architecture
There is No Server: Immutable Infrastructure and Serverless Architecture
Sonatype
 
Getting out of the Job Jungle with Jenkins
Getting out of the Job Jungle with JenkinsGetting out of the Job Jungle with Jenkins
Getting out of the Job Jungle with Jenkins
Sonatype
 
Modern Infrastructure Automation
Modern Infrastructure AutomationModern Infrastructure Automation
Modern Infrastructure Automation
Sonatype
 

More from Sonatype (20)

DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures
 
RSAC DevSecOpsDays 2018 - We are all Equifax
RSAC DevSecOpsDays 2018 - We are all EquifaxRSAC DevSecOpsDays 2018 - We are all Equifax
RSAC DevSecOpsDays 2018 - We are all Equifax
 
DevSecOps reference architectures 2018
DevSecOps reference architectures 2018DevSecOps reference architectures 2018
DevSecOps reference architectures 2018
 
30+ Nexus Integrations to Accelerate DevOps
30+ Nexus Integrations to Accelerate DevOps30+ Nexus Integrations to Accelerate DevOps
30+ Nexus Integrations to Accelerate DevOps
 
2017 DevSecOps Survey
2017 DevSecOps Survey2017 DevSecOps Survey
2017 DevSecOps Survey
 
Starting and Scaling DevOps In the Enterprise
Starting and Scaling DevOps In the EnterpriseStarting and Scaling DevOps In the Enterprise
Starting and Scaling DevOps In the Enterprise
 
DevOps Friendly Doc Publishing for APIs & Microservices
DevOps Friendly Doc Publishing for APIs & MicroservicesDevOps Friendly Doc Publishing for APIs & Microservices
DevOps Friendly Doc Publishing for APIs & Microservices
 
The Unrealized Role of Monitoring & Alerting w/ Jason Hand
The Unrealized Role of Monitoring & Alerting w/ Jason HandThe Unrealized Role of Monitoring & Alerting w/ Jason Hand
The Unrealized Role of Monitoring & Alerting w/ Jason Hand
 
DevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen BealDevOps and All the Continuouses w/ Helen Beal
DevOps and All the Continuouses w/ Helen Beal
 
Serverless and the Way Forward
Serverless and the Way ForwardServerless and the Way Forward
Serverless and the Way Forward
 
A Small Association's Journey to DevOps w/ Edward Ruiz
A Small Association's Journey to DevOps w/ Edward RuizA Small Association's Journey to DevOps w/ Edward Ruiz
A Small Association's Journey to DevOps w/ Edward Ruiz
 
What's My Security Policy Doing to My Help Desk w/ Chris Swan
What's My Security Policy Doing to My Help Desk w/ Chris SwanWhat's My Security Policy Doing to My Help Desk w/ Chris Swan
What's My Security Policy Doing to My Help Desk w/ Chris Swan
 
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-orsCharacterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
Characterizing and Contrasting Kuhn-tey-ner Awr-kuh-streyt-ors
 
Static Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin CollinsStatic Analysis For Security and DevOps Happiness w/ Justin Collins
Static Analysis For Security and DevOps Happiness w/ Justin Collins
 
Automated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSAutomated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSS
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using Ansible
 
There is No Server: Immutable Infrastructure and Serverless Architecture
There is No Server: Immutable Infrastructure and Serverless ArchitectureThere is No Server: Immutable Infrastructure and Serverless Architecture
There is No Server: Immutable Infrastructure and Serverless Architecture
 
Getting out of the Job Jungle with Jenkins
Getting out of the Job Jungle with JenkinsGetting out of the Job Jungle with Jenkins
Getting out of the Job Jungle with Jenkins
 
Modern Infrastructure Automation
Modern Infrastructure AutomationModern Infrastructure Automation
Modern Infrastructure Automation
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
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
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
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 ⚡️
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 

Continuous Delivery Pipeline - Patterns and Anti-patterns

  • 1. November 15, 2016 Continuous Delivery Pipeline – Patterns and Anti-patterns Juni Mukherjee (@JuniTweets) Consultant, CI/CD, LifeLock (Views are my own.)
  • 4. November 15, 2016 Domain-driven Design (DDD) for Continuous Delivery Thank you Eric Evans for DDD! Entity : Defined by ID, not attributes Value Object : Defined by attributes, no ID Aggregate : Collection of objects Domain : Sphere of activity and influence Model : System of abstractions Domain Event : Domain experts care for Ubiquitous Language : Shared language Domain Services : Shared functionality Connect the implementation to an evolving domain model Continuous Delivery is a journey, not a destination.
  • 5. November 15, 2016 Domain Model Integrity – Bounded Context, Context Map © 2016 CloudBees, Inc. All Rights Reserved
  • 6. November 15, 2016 Fragmentation, Blurred Edges, Bounded Context, Context Map © 2016 CloudBees, Inc. All Rights Reserved Node, Java, iOS, Android, Database, :::::: ::::
  • 7. November 15, 2016 Domain Model Integrity – Ubiquitous Language © 2016 CloudBees, Inc. All Rights Reserved
  • 8. November 15, 2016 Ubiquitous Language – [Soft | Hard | Firm]ware, Embedded, IoT Component The smallest distributable and testable unit Unit, SCA – Linter, SCA – Security Vulnerabilities Modules, Libraries Subsystem The smallest deployable and runnable unit Functional (Security, I18N, L10N, …), Performance JAR | IPA | APK | Emulators | Simulators … System Loosely coupled subsystems Integration (Interfaces, Network), Performance JAR & IPA & APK & Real Devices & Accessories … Rate of Change, Supply Chain
  • 9. November 15, 2016 Domain Model Integrity – Continuous Integration © 2016 CloudBees, Inc. All Rights Reserved
  • 10. November 15, 2016 Continuous Integration, Continuous Delivery, Value Stream Map Product : System Under Test (SUT) Configuration : Application, Environment Test : Unit, Static, Functional, Integration, Perf Infrastructure, Platform: Infra-As-Code, *aaS Pipeline-As-Code : Dockerized Jenkins 2.0, Jenkinsfile (Process-As-Code), Shared Kernel (Utils.groovy, Libs) VSM: Automate ONLY the value-adding steps. Discard the rest.
  • 11. November 15, 2016 MVP - Continuous Delivery Pipeline, Slice over Dice © 2016 CloudBees, Inc. All Rights Reserved Product Slice : System Under Test (SUT) Configuration Slice : Application, Environment Test Slice : Unit, Static, Functional, Int, Perf Infrastructure, Platform: Infra-As-Code, *aaS Pipeline-As-Code : Dockerized Jenkins 2.0, Jenkinsfile (Process-As-Code), Shared Kernel (Utils.groovy)
  • 12. November 15, 2016 Domain Model Integrity – Big Ball of Mud (And Tests Too?) © 2016 CloudBees, Inc. All Rights Reserved
  • 13. November 15, 2016 Pipeline – Graph – Tightly Coupled Product Architecture
  • 14. November 15, 2016 Domain Model Integrity – Separate Ways © 2016 CloudBees, Inc. All Rights Reserved
  • 15. November 15, 2016 Pipeline – Linear – Independently Deployable Artifact
  • 16. November 15, 2016 Death by a thousand test-types! … And by a thousand environments!
  • 17. November 15, 2016 Domain Model Integrity – Customer/Supplier Teams © 2016 CloudBees, Inc. All Rights Reserved
  • 18. November 15, 2016 Customer Supplier - Pipeline Design Pattern
  • 19. November 15, 2016 Domain Model Integrity - Conformist © 2016 CloudBees, Inc. All Rights Reserved
  • 21. November 15, 2016 Domain Model Integrity – Shared Kernel, Anti-corruption Layer © 2016 CloudBees, Inc. All Rights Reserved
  • 22. November 15, 2016 Shared Kernel, Anticorruption Layer Domain Services, Services Architecture, Cloudy with a chance of sharp interfaces Network Latency, Circuit Breaker
  • 23. November 15, 2016 Pipeline-as-a-service: Scrum Teams sign a contract! 1. Process drives Architecture. Process drives tools. 2. Pipeline is a product, based off the Services Architecture. 3. The suite of polyglot Domain Services, with sharp interfaces, could be developed by anyone in the organization, based off protocol. 4. Exact interfaces should declare exact intent. Should maintain existing interfaces so that customers don’t experience service disruption. 5. Segregation/Separation of duties is the concept of having more than one person required to complete a task. It is an internal control intended to prevent fraud and error. It does NOT mean Human Being A does not trust Human Being B and hence starts a new department of clicking buttons. 6. Should enable Pipeline customers to make choices, so that Scrum Teams could control their own destiny. Scrum Teams control their own destiny
  • 24. November 15, 2016 Domain Model Integrity – Published Language © 2016 CloudBees, Inc. All Rights Reserved
  • 25. November 15, 2016 Published Language – DSL, It’s groovy!, 1-800-Plumber Unmanageable string of jobs you’ve become, Pipeline you must be, Declarative, versioned and ephemeral become you must, Or the dark side won’t set you free. Pipeline analytics report you must, In the groove you must get, Make happy our engineers you must, Don’t make them fret. Jenkinsfile / Jenkins 2.0 node ("${AGENT}") { } stage ‘deploy’ timeout (time:2, unit:'DAYS') {input message: ’Proceed?”, submitter: ’Operations’} stage ‘functional, performance, security test’ parallel ( parallel_task_stage_sauce : { }, parallel_task_stage_blazemeter : { }, parallel_task_stage_appspider : { }) try {} catch (InterruptedException x) { slackSend color: '#008000', message: ”” }
  • 26. November 15, 2016 Domain Model Integrity - Flying colors! © 2016 CloudBees, Inc. All Rights Reserved
  • 27. November 15, 2016 KPIs – Show Me the Money! What can be measured, can be fixed!
  • 28. November 15, 2016 On Closing : Conway’s Law, Maya Angelou’s Human Family “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.” Melvin Conway “I note the obvious differences between each sort and type, We are more alike, my friends, than we are unalike.” Maya Angelou
  • 29. November 15, 2016 Thank you AllDayDevOps, Community, Sponsors and Supporters! Juni Mukherjee (@JuniTweets)