SlideShare a Scribd company logo
1 of 29
Download to read offline
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 productJulian Simpson
 
Improving software quality using Continuous Integration
Improving software quality using Continuous IntegrationImproving software quality using Continuous Integration
Improving software quality using Continuous IntegrationWouter Konecny
 
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 PlanningAdnan 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. SketchRob Musser
 
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 LanguagesRestlet
 
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-HybridRobert 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 DevelopersCA Technologies
 
Bridging Microservices, APIs and Integration
Bridging Microservices, APIs and IntegrationBridging Microservices, APIs and Integration
Bridging Microservices, APIs and IntegrationKasun Indrasiri
 
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 AWSAmazon 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 presentationLahav 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 AWSAmazon 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 MonolithsAmazon 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 2016Amazon 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 AWSAmazon 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 Platformmsg systems Romania
 
IMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc KeynoteIMMERSE 2016 IST Mark Szulc Keynote
IMMERSE 2016 IST Mark Szulc KeynoteAdobeMarketingCloud
 
OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17OracleDeveloperMeetup - London 19-12-17
OracleDeveloperMeetup - London 19-12-17Phil 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-EndLahav 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 ExperiencePerfecto by Perforce
 
Documenting RESTful APIs with Spring REST Docs
Documenting RESTful APIs with Spring REST Docs Documenting RESTful APIs with Spring REST Docs
Documenting RESTful APIs with Spring REST Docs VMware Tanzu
 

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
 
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
 
Documenting RESTful APIs with Spring REST Docs
Documenting RESTful APIs with Spring REST Docs Documenting RESTful APIs with Spring REST Docs
Documenting RESTful APIs with Spring REST Docs
 

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 - 2019Sonatype
 
2019 DevSecOps Reference Architectures
2019 DevSecOps Reference Architectures2019 DevSecOps Reference Architectures
2019 DevSecOps Reference ArchitecturesSonatype
 
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 EquifaxSonatype
 
DevSecOps reference architectures 2018
DevSecOps reference architectures 2018DevSecOps reference architectures 2018
DevSecOps reference architectures 2018Sonatype
 
30+ Nexus Integrations to Accelerate DevOps
30+ Nexus Integrations to Accelerate DevOps30+ Nexus Integrations to Accelerate DevOps
30+ Nexus Integrations to Accelerate DevOpsSonatype
 
2017 DevSecOps Survey
2017 DevSecOps Survey2017 DevSecOps Survey
2017 DevSecOps SurveySonatype
 
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 EnterpriseSonatype
 
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 & MicroservicesSonatype
 
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 HandSonatype
 
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 BealSonatype
 
Serverless and the Way Forward
Serverless and the Way ForwardServerless and the Way Forward
Serverless and the Way ForwardSonatype
 
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 RuizSonatype
 
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 SwanSonatype
 
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-orsSonatype
 
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 CollinsSonatype
 
Automated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSAutomated Infrastructure Security: Monitoring using FOSS
Automated Infrastructure Security: Monitoring using FOSSSonatype
 
System Hardening Using Ansible
System Hardening Using AnsibleSystem Hardening Using Ansible
System Hardening Using AnsibleSonatype
 
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 ArchitectureSonatype
 
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 JenkinsSonatype
 
Modern Infrastructure Automation
Modern Infrastructure AutomationModern Infrastructure Automation
Modern Infrastructure AutomationSonatype
 

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

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 

Recently uploaded (20)

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 

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)