SlideShare ist ein Scribd-Unternehmen logo
1 von 148
Downloaden Sie, um offline zu lesen
Continuous Delivery
Antipatterns
Andrzej Grzesik
ebay

#DV13-cda

@ags313
cd antipatterns; ls -al
Andrzej Grzesik
ebay

#DV13-cda

@ags313
Andrzej Grzesik

Demo
@ags313

andrzej@grzesik.it
andrzejgrzesik.info
#DV13-cda

@ags313
MY OPINIONS ARE MY OWN
disclaimer

#DV13-cda

@ags313
ABOUT:ME
I’m proud of:

#DV13-cda

@ags313
I HATE COMPUTERS
disclaimer ;-)

#DV13-cda

@ags313
QUESTIONS?

#DV13-cda

@ags313
NO!
42
IT DEPENDS
answers!

#DV13-cda

@ags313
QUESTIONS?
ask them right away!

#DV13-cda

@ags313
#DEVOXX
keep on tweeting!

#DV13-cda

@ags313
TL; DR:
RELEASE MORE OFTEN!
and don’t listen to ‘no-can-do’s

#DV13-cda

@ags313
SOFTWARE
is a people problem

#DV13-cda

@ags313
IN THE BEGINNING

#DV13-cda

@ags313
Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.

#DV13-cda

@ags313
Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.

#DV13-cda

@ags313
Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
agile manifesto, 2001

#DV13-cda

@ags313
DELIVERY IS
ORGANIZATION-SPECIFIC

#DV13-cda

@ags313
CHANGE SCENARIO

#DV13-cda

@ags313
1. PRIORITIZE PROBLEMS

#DV13-cda

@ags313
2. FIX FIRST

#DV13-cda

@ags313
REPEAT

#DV13-cda

@ags313
A LONG TIME AGO
IN A GALAXY FAR, FAR AWAY…

#DV13-cda

@ags313
SYSTEM (TM)

#DV13-cda

@ags313
DEVELOPERS

#DV13-cda

@ags313
DEVELOPERS
everywhere-sourced

#DV13-cda

@ags313
OH, WAIT

#DV13-cda

@ags313
#DV13-cda

@ags313
PUSH THEIR CODE

#DV13-cda

@ags313
SITE BREAKS

#DV13-cda

@ags313
SITE BREAKS
for two days

#DV13-cda

@ags313
DURING HOT SEASON

#DV13-cda

@ags313
ALL ROLL-BACK!

#DV13-cda

@ags313
TO WHERE?

#DV13-cda

@ags313
FROM WHERE?

#DV13-cda

@ags313
PROBLEM:
NO IDEA WHAT IS WHERE

#DV13-cda

@ags313
GIT PUSH --FORCE PROD
#randomhashisbetterthannone

#DV13-cda

@ags313
DO: --VERSION

#DV13-cda

@ags313
BETTER:
DO SEMANTIC VERSIONING
http://semver.org/

#DV13-cda

@ags313
DO: KNOW WHAT IS WHERE

#DV13-cda

@ags313
DO: KNOW WHAT IS WHERE
(have a dashboard)

#DV13-cda

@ags313
GLU
https://github.com/pongasoft/glu

#DV13-cda

@ags313
PROBLEM:
MANY TEAMS/UNSTABLE CODE

#DV13-cda

@ags313
MULTIPLE REPO IS OK
one for dev, one for releases

#DV13-cda

@ags313
GIT FLOW IS OK
http://nvie.com/posts/a-successful-git-branching-model/

#DV13-cda

@ags313
PERSONAL FAVOURITE:
STABLE MASTER

#DV13-cda

@ags313
BUSINESS CONCLUSION:

#DV13-cda

@ags313
#DV13-cda

@ags313
RELEASES == RISK
let’s avoid them!

#DV13-cda

@ags313
WHAT DO YOU GET?

#DV13-cda

@ags313
PROBLEM:
FEAR OF RELEASING

#DV13-cda

@ags313
STAGNATION CREEPS IN

#DV13-cda

@ags313
QUIET PERIODS

#DV13-cda

@ags313
RELEASE ‘TRAINS’

#DV13-cda

@ags313
RC, BETA, GOLD

#DV13-cda

@ags313
SOLUTION: INVOLVE BUSINESS
a.k.a. ‘manage stakeholders’

#DV13-cda

@ags313
SMALL CHANGES
SHOULD HAPPEN QUICKLY
great selling point

#DV13-cda

@ags313
BUILD ENVS

#DV13-cda

@ags313
OK, LET’S HAVE A PIPELINE

#DV13-cda

@ags313
PROBLEM:
SLOW

#DV13-cda

@ags313
#DV13-cda

@ags313
SOLUTION:
PARALELLIZE

#DV13-cda

@ags313
WHICH PART?

#DV13-cda

@ags313
#DV13-cda

@ags313
FREE WIN:
DECOUPLED DESIGN

#DV13-cda

@ags313
PROBLEM: RECOMPILING

#DV13-cda

@ags313
#DV13-cda

@ags313
#DV13-cda

@ags313
#DV13-cda

@ags313
HOW DO I REPLICATE PRODUCTION?

#DV13-cda

@ags313
DO: USE A BINARY REPOSITORY

#DV13-cda

@ags313
PROBLEM:
SEPARATE TEAMS

#DV13-cda

@ags313
RELEASE TEAM
dealing with ‘danger‘

#DV13-cda

@ags313
SYMPTOM:
DEALING WITH DANGER

#DV13-cda

@ags313
LIKES TO BE MANUAL
‘job security‘

#DV13-cda

@ags313
US VS THEM
‘leave me alone, I’m important’

#DV13-cda

@ags313
RELEASE PROCESSES

#DV13-cda

@ags313
CURIOUS RELEASE PROCESSES

#DV13-cda

@ags313
WORK EXPANDS TO FILL THE TIME
AVAILABLE FOR ITS COMPLETION
Parkinson’s Law

#DV13-cda

@ags313
TOO CURIOUS PROCESSES
LEAD TO

#DV13-cda

@ags313
UNOFFICIAL RELEASES

#DV13-cda

@ags313
UNOFFICIAL RELEASES
(don’t do them)

#DV13-cda

@ags313
BUNKERS

#DV13-cda

@ags313
#DV13-cda

@ags313
SOLUTION:
ENCOURAGE INTERACTIONS

#DV13-cda

@ags313
BREAK && INTEGRATE

#DV13-cda

@ags313
BREAK && INTEGRATE
repeatedly

#DV13-cda

@ags313
GAMES ARE AWESOME!
repeat the event

#DV13-cda

@ags313
PROBLEM:
MANUAL INFRASTRUCTURE

#DV13-cda

@ags313
INFRASTRUCTURE

#DV13-cda

@ags313
WE USE CHEF, WE’RE SAFE
^^

#DV13-cda

@ags313
#DV13-cda

@ags313
DID YOU TEST?

#DV13-cda

@ags313
#DV13-cda

@ags313
FOOD CRITIC
lint for chef

#DV13-cda

@ags313
lint for chef

#DV13-cda

@ags313
PUPPET VS CHEF VS …

#DV13-cda

@ags313
PROBLEM:
ENV BUILDS

#DV13-cda

@ags313
SLOW?

#DV13-cda

@ags313
#DV13-cda

@ags313
PROBLEM:
INTERNET

#DV13-cda

@ags313
QUIZ

#DV13-cda

@ags313
#DV13-cda

@ags313
NEED INTERNET TO BUILD?

#DV13-cda

@ags313
OF COURSE!

#DV13-cda

@ags313
#DV13-cda

@ags313
RUBYGEMS.ORG
CPAN.ORG
MAVEN.ORG

#DV13-cda

@ags313
RUBYGEMS.ORG
CPAN.ORG
MAVEN.ORG
go down!

#DV13-cda

@ags313
MAKE YOUR BUILD RUN WITHOUT
INTERNET
or at least try, you’ll learn fun things :-)

#DV13-cda

@ags313
APPLICATION
AND ENVIRONMENT

#DV13-cda

@ags313
SAVE TIME AND NERVES

#DV13-cda

@ags313
BINARY REPO/PROXY/…

#DV13-cda

@ags313
PROBLEM:
NO RUNTIME UPGRADE

#DV13-cda

@ags313
#DV13-cda

@ags313
#DV13-cda

@ags313
#DV13-cda

@ags313
DESKTOPS

#DV13-cda

@ags313
#DV13-cda

@ags313
FIREFOX IS UPDATING
and you can not use it

#DV13-cda

@ags313
MOBILE APPS

#DV13-cda

@ags313
WEBVIEW IS NICE

#DV13-cda

@ags313
FREQUENT RELEASES
make your user curious

#DV13-cda

@ags313
MAKE USERS SAY BYE

#DV13-cda

@ags313
CHANGE BACKEND
YOU CAN

#DV13-cda

@ags313
FORCING DOESN’T WORK

#DV13-cda

@ags313
ASK IF NEW
FEATURES THEY WANT

#DV13-cda

@ags313
PROBLEM:
DEPLOYMENT FAILURES

#DV13-cda

@ags313
#DV13-cda

@ags313
DEPLOYMENTS
DO YOU TRACK THEM?

#DV13-cda

@ags313
FAILED DEPLOYMENT PROCEDURE
ROLLBACK? OR DOWNTIME?

#DV13-cda

@ags313
DO: TEST YOUR ROLLBACK

#DV13-cda

@ags313
AS YOU TEST YOUR BACKUPS

#DV13-cda

@ags313
PROBLEM:
STATE

#DV13-cda

@ags313
LONG RUNNING ……

#DV13-cda

@ags313
SAGAS?

#DV13-cda

http://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf

@ags313
DATABASES…

#DV13-cda

@ags313
ENVIRONMENTS

#DV13-cda

@ags313
LOVE PARTIAL FAILURES

#DV13-cda

@ags313
DO: BUILD IN SWITCHES

#DV13-cda

@ags313
DO: APP IS ENV AWARE

#DV13-cda

@ags313
DEVENV

#DV13-cda

@ags313
AUTOMATE IT!

#DV13-cda

@ags313
CHEF, PUPPET, ANSIMBLE, DOCKER,
VAGRANT
pick any

#DV13-cda

@ags313
package "haproxy" do!
action :install!
end!
!
template "/etc/haproxy/haproxy.cfg" do!
source "haproxy.cfg.erb"!
owner "root"!
group "root"!
mode 0644!
notifies :restart, "service[haproxy]"!
end!
!
service "haproxy" do!
supports :restart => true!
action [:enable, :start]!
end!

#DV13-cda

@ags313
RELEASE!

#DV13-cda

@ags313
RELEASE!
…the Kraken

#DV13-cda

@ags313
#DV13-cda

@ags313
thanks!

#DV13-cda

@ags313
thanks!
please tweet && feedback!

#DV13-cda

@ags313

Weitere ähnliche Inhalte

Mehr von Andrzej Grzesik (7)

Go, the one language to learn in 2014
Go, the one language to learn in 2014Go, the one language to learn in 2014
Go, the one language to learn in 2014
 
Cheffing a department
Cheffing a departmentCheffing a department
Cheffing a department
 
Java 8: the good parts!
Java 8: the good parts!Java 8: the good parts!
Java 8: the good parts!
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Git
GitGit
Git
 
Continous delivery
Continous deliveryContinous delivery
Continous delivery
 
Hbase jdd
Hbase jddHbase jdd
Hbase jdd
 

Kürzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Kürzlich hochgeladen (20)

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
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Continuous Delivery Antipatterns