SlideShare a Scribd company logo
R E D U C I N G R E S I S TA N C E
D E P L O Y M E N T A S A S U R FA C E
J E F F R E Y H U LT E N
W H I T E PA G E S , I N C .
F L I C K R . C O M / P H O T O S / D E G E U Z E N / 2 9 8 0 6 3 7 9 5 1
A G I L E 2 0 1 4
F I R S T, A S T O RY…
T H E R E WA S A
D E V E L O P E R ,
W R I T I N G A W E B
A P P L I C AT I O N
F L I C K R . C O M / P H O T O S / Y O U R D O N / 2 6 8 1 6 8 6 2 2 0
O N C E U P O N A T I M E
S H E D E P L O Y E D
C O D E T O
P R O D U C T I O N
B Y H A N D
F L I C K R . C O M / P H O T O S / S E E M I N G L E E / 8 1 8 4 4 4 0 4 1 1
A N D E V E RY D A Y
H E R T E A M M AT E
O V E R W R O T E
H E R C H A N G E S
F L I C K R . C O M / P H O T O S / P H I L F O T O S / 5 5 6 5 5 2 9 6 9 9
U N T I L O N E D A Y
S H E D E C I D E
T O PA C K A G E
H E R C O D E
F L I C K R . C O M / P H O T O S / H A L F B I S Q U E D / 2 3 5 3 8 4 5 6 8 8
B E C A U S E O F T H I S
T H AT D I D N ’ T
A C C O U N T F O R
C O N F I G U R AT I O N
F L I C K R . C O M / P H O T O S / J O H N C A B E L L / 5 8 8 4 4 9 0 5 8 8
B U T,
S H E D E P L O Y E D
T H AT PA C K A G E
W I T H C H E F *
* or other configuration
management tool, our protagonist
isn’t picky… F L I C K R . C O M / P H O T O S / E M E D I A / 1 3 8 7 0 7 0 1 8 9 4
S O ,
S H E D E P L O Y E D
T H AT PA C K A G E
W I T H P U P P E T *
* I told you she isn’t picky… F L I C K R . C O M / P H O T O S / J E Y H / 2 7 9 6 2 2 3 8 0 4
S O ,
D E P L O Y M E N T
T I M E
C O M P L E X I T Y
F L I C K R . C O M / P H O T O S / B I T T E R J U G / 7 6 7 0 0 5 5 2 1 0
B U T T H A T L E D T O
S H E P U T I T I N
A D O C K E R
C O N TA I N E R *
* or AMI… Like I said, not picky…
FLICKR.COM/PHOTOS/33280166@N02/5354725682
U N T I L F I N A L LY
S H E A P P L I E D
T H E P R I N C I PA L S
O F T H E T W E LV E
FA C T O R A P P
http://12factor.net/ F L I C K R . C O M / P H O T O S / P E T E R R A S / 9 8 8 3 5 8 2 1 0 6
A N D
S H E C H O S E H E R
C O N S T R A I N T S T O
F R E E H E R S E L F O F
D E P L O Y M E N T PA I N
F L I C K R . C O M / P H O T O S / C H I O T S R U N / 4 9 0 4 2 6 1 1 5 0
A N D E V E R S I N C E T H A T D A Y
T W E LV E FA C T O R S ?
T H E T W E LV E FA C T O R S
• I. Codebase

One codebase tracked in revision
control, many deploys
• II. Dependencies

Explicitly declare and isolate
dependencies
• III. Config

Store config in the environment
• IV. Backing Services

Treat backing services as attached
resources
• V. Build, release, run

Strictly separate build and run stages
• VI. Processes

Execute the app as one or more
stateless processes
• VII. Port binding

Export services via port binding
• VIII. Concurrency

Scale out via the process model
• IX. Disposability

Maximize robustness with fast startup
and graceful shutdown
• X. Dev/prod parity

Keep development, staging, and
production as similar as possible
• XI. Logs

Treat logs as event streams
• XII. Admin processes

Run admin/management tasks as one-
off processes
T H E O N E
FA C T O R
F L I C K R . C O M / P H O T O S / A N I R U D H K O U L / 3 7 2 5 9 3 9 5 9 4
K E E P 

I T 

S I M P L E A N D
S T R A I G H T F O R WA R D
S I M P L E A I N ’ T
E A S Y
"Steve Jobs Headshot 2010-CROP" by Matthew Yohe (talk)(Transfered by fetchcomms/Original uploaded by Matt Yohe) - I (Matt Yohe (talk)) created this work entirely by myself. (Original uploaded on en.wikipedia). Licensed under Creative Commons Attribution-Share Alike 3.0 via
Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Steve_Jobs_Headshot_2010-CROP.jpg#mediaviewer/File:Steve_Jobs_Headshot_2010-CROP.jpg
“Simple can be harder than
complex: You have to work
hard to get your thinking
clean to make it simple. But
it’s worth it in the end
because once you get there,
you can move mountains.”
― Steve Jobs
A H A R D S E L L ?
"Edsger Wybe Dijkstra" by Hamilton Richards - manuscripts of Edsger W. Dijkstra, University Texas at Austin. Licensed under Creative Commons Attribution-Share Alike 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Edsger_Wybe_Dijkstra.jpg#mediaviewer/
File:Edsger_Wybe_Dijkstra.jpg
“Simplicity is a great virtue
but it requires hard work to
achieve it and education to
appreciate it. And to make
matters worse: complexity
sells better.”
― Edsger Dijkstra
D E P L O Y M E N T:
A N A N A L O G Y
Y O U WA N T T O
F LY
I M A G I N E
Y O U ’ R E A
P I E C E O F
PA P E R
B U T
F L I C K R . C O M / P H O T O S / 9 4 2 4 6 3 8 3 @ N 0 0 / 8 6 3 7 4 2 1 2 1 9
I N C R E A S E L I F T
& D E C R E A S E
D R A G
F L I G H T R E Q U I R E S T H A T Y O U
F L I C K R . C O M / P H O T O S / J A S O N - S A M F I E L D / 5 3 8 7 9 3 4 8 3 2
D O E S N ’ T H AV E
E N O U G H
S T R U C T U R E
A F R E S H S H E E T O F PA P E R
F L I C K R . C O M / P H O T O S / T H I B A U D _ S A I N T I N / 1 4 4 5 1 1 7 5 8 4 5
H A S N O L I F T
A B A L L O F PA P E R
F L I C K R . C O M / P H O T O S / 3 3 8 5 2 6 8 8 @ N 0 8 / 4 4 6 2 0 2 9 7 8 8
A N D Y O U C A N
F LY
F L I C K R . C O M / P H O T O S / C H R I S C H A N P H O T O G R A P H Y / 3 6 1 1 6 8 6 7 8 4
B U T F O L D T H E PA P E R
C A R E F U L LY
D E P L O Y M E N T S U R FA C E ?
S O W H A T C O N S T I T U T E S
L I B R A R I E S A N D
F R A M E W O R K S ?
I S I T
F L I C K R . C O M / P H O T O S / S PA M / 5 0 8 6 1 6 8 7 3 9
R U N T I M E S ?
W H A T A B O U T
F L I C K R . C O M / P H O T O S / R O FA N AT O R / 6 4 5 4 1 0 8 7 3 1
C O M M O N
S E R V I C E S ?
C O U L D I T B E
F L I C K R . C O M / P H O T O S / 1 S T P I X _ D I E C A S T _ D I O R A M A S / 7 1 0 4 4 8 9 7 1 5
W I R E
P R O T O C O L S ?
H O W A B O U T
F L I C K R . C O M / P H O T O S / K T G E E K / 6 2 6 4 0 1 8 7 6 4
B U S I N E S S
P R A C T I C E S ?
O R
F L I C K R . C O M / P H O T O S / F R E D E R I C K M D R O C K S / 6 1 5 4 6 7 8 0 6 8
Y E S
A C O N T R O L
E V E RY S U R FA C E R E Q U I R E S
F L I C K R . C O M / P H O T O S / D AW I L S O N / 5 1 2 8 6 9 4 7 7 4
L I B R A R I E S A N D F R A M E W O R K S
• Does the third party framework solve more problems
than it creates?
• Will that still be as true in the last week of the project
as it is in the first?
• Is there a simpler way?
E X A M P L E : R U B Y A P I
S E R V I C E
R U N T I M E S
• Runtime: Ruby VM, JVM, Erlang VM, Binary Executable
• How many runtimes are needed to serve your
customers?
• Are you adding complexity because your runtime
doesn’t work the way you need to?
E X A M P L E : R U B Y, U N I C O R N ,
A N D C O N N E C T I O N P O O L S
R U N T I M E S ? N O T L A N G U A G E S ?
• Languages are (mostly) a build time concern.
• Runtimes are a deploy time concern.
– R I C H H I C K E Y
We program with constructs[...] but we are in a
business of artifacts.
C O M M O N S E R V I C E S
• How many data stores/in-memory caches/load
balancers are you using?
• Does your team have the expertise to support them
all?
• Does your team have the time/‘bandwidth’ to learn a
new service?
• Nothing is a simple as the packaging says.
D U P L I C AT E C O M M O N S E R V I C E S
Postgres & MySQL
Redis & Memcache
Riak & Cassandra
Nginx & Apache HTTPd
Zookeeper & etcd
ActiveMQ & Rabbit MQ
W I R E P R O T O C O L S
• Eventually you will need to look at the traffic.
• Can you inspect your services on the wire?
• Does a new wire protocol justify the additional
complexity?
D U P L I C AT E W I R E P R O T O C O L S
HTTP & ???
Avro & Thrift & Protobuf
JSON & XML
B U S I N E S S P R A C T I C E S
• Do your practices lift you up or drag you down?
• Do you release features faster than the code rots?
• Do you expect to find all defects before you go to
production?
- E D S G E R W D I J K S T R A
The art of programming is the art of organizing
complexity, of mastering multitude and avoiding
its bastard chaos as effectively as possible.
F L I C K R . C O M / P H O T O S / 2 9 4 8 7 7 6 7 @ N 0 2 / 4 2 5 5 0 2 6 8 7 2
R E M E M B E R
O U R
D E V E L O P E R ?
F L I C K R . C O M / P H O T O S / Y O U R D O N / 2 6 8 1 6 8 6 2 2 0
I N T H E B E G I N N I N G …
S T R AT E G I E S O F D E P L O Y M E N T
• Manual Push
• Package Push
• Configuration Management Tool (Chef/Puppet)
• Docker Container
M A N U A L P U S H
$ for s in 1 2 3; do 

rsync -a ~/src web${s}.example.com:/opt/app;

ssh web${s}.example.com 

sudo service apache2 restart; 

done
M A N U A L P U S H
$ for s in 1 2 3; do 

rsync -a ~/src web${s}.example.com:/opt/app;

ssh web${s}.example.com 

sudo service apache2 restart; 

done
C R E AT E PA C K A G E
$ fpm -s dir -d deb -n myapp -v 1.2.3 ~/src

Created deb package {:path=>”myapp_1.2.3_amd64.deb”}
I N S TA L L PA C K A G E
$ sudo dpkg -i myapp_1.2.3_amd64.deb
C H E F R E C I P E
apt_package “myapp” do

source “/path/to/myapp_1.2.3_amd64.deb”

action :install

end
D O C K E R F I L E
FROM ubuntu:trusty

MAINTAINER Debbie Dev <ddev@myappco.com>

ADD ./myapp_1.2.3_amd64.deb /opt/pkgs

RUN dpkg -i /opt/pkgs/myapp_1.2.3_amd64.deb

ENV ENVIRONMENT prod

CMD service start myapp
The first step toward the management of
disease was replacement of demon theories and
humours theories by the germ theory. That very
step, the beginning of hope, in itself dashed all
hopes of magical solutions.
It told workers that progress would be made
stepwise, at great effort, and that a persistent,
unremitting care would have to be paid to a
discipline of cleanliness.
So it is with software engineering today.
– F R E D B R O O K S
F L I C K R . C O M / P H O T O S / N I A I D / 5 9 5 0 8 7 0 3 0 0
F I N D I N G M E
Jeffrey Hulten
@jhulten
linkedin.com/in/jhulten
jhulten@whitepages.com
Q & A
S E S S I O N F E E D B A C K
Please provide feedback on this session!
You can do so in 3 ways:
• Visit this session on the Mobile App. Click Session Feedback.
• Scan the unique QR Code for this session located at the front
and back of the room.
• Visit the unique URL for this session located at the front and
back of the room.
Thank you for providing your feedback

More Related Content

What's hot

What's hot (19)

AWS SEMINAR SERIES 2015 Perth
AWS SEMINAR SERIES 2015 PerthAWS SEMINAR SERIES 2015 Perth
AWS SEMINAR SERIES 2015 Perth
 
Google Assistant & Alexa - Asystenci głosowi: możliwości, podobieństwa, różnice
Google Assistant & Alexa - Asystenci głosowi: możliwości, podobieństwa, różniceGoogle Assistant & Alexa - Asystenci głosowi: możliwości, podobieństwa, różnice
Google Assistant & Alexa - Asystenci głosowi: możliwości, podobieństwa, różnice
 
Industry attachment ppt
Industry attachment pptIndustry attachment ppt
Industry attachment ppt
 
T minus 10 - Rocket Scientist Livingston Holder
T minus 10 - Rocket Scientist Livingston HolderT minus 10 - Rocket Scientist Livingston Holder
T minus 10 - Rocket Scientist Livingston Holder
 
Pictionary inglés ii
Pictionary inglés iiPictionary inglés ii
Pictionary inglés ii
 
Internet of Everything - DLTV 2016
Internet of Everything - DLTV 2016Internet of Everything - DLTV 2016
Internet of Everything - DLTV 2016
 
eHarmony @ Phoenix Con 2016
eHarmony @ Phoenix Con 2016eHarmony @ Phoenix Con 2016
eHarmony @ Phoenix Con 2016
 
GENSummit - WEARABLE NEWS BEYOND THE GADGETS 2015
GENSummit - WEARABLE NEWS BEYOND THE GADGETS 2015GENSummit - WEARABLE NEWS BEYOND THE GADGETS 2015
GENSummit - WEARABLE NEWS BEYOND THE GADGETS 2015
 
How important is my online reputation
How important is my online reputation How important is my online reputation
How important is my online reputation
 
Flipbook
FlipbookFlipbook
Flipbook
 
Deployments in one click!
Deployments in one click!Deployments in one click!
Deployments in one click!
 
13 Industry Trends You Can't Afford to Ignore
13 Industry Trends You Can't Afford to Ignore13 Industry Trends You Can't Afford to Ignore
13 Industry Trends You Can't Afford to Ignore
 
Quid - The Threat of AI
Quid - The Threat of AIQuid - The Threat of AI
Quid - The Threat of AI
 
Lessons from the Trenches: Monitoring your OpenStack Cloud
Lessons from the Trenches: Monitoring your OpenStack Cloud Lessons from the Trenches: Monitoring your OpenStack Cloud
Lessons from the Trenches: Monitoring your OpenStack Cloud
 
Topologi
Topologi Topologi
Topologi
 
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018100% Visibility - Jason Yee - Codemotion Amsterdam 2018
100% Visibility - Jason Yee - Codemotion Amsterdam 2018
 
Social Media and the Social Identity & Knowledge Gap Theory
Social Media and the Social Identity & Knowledge Gap TheorySocial Media and the Social Identity & Knowledge Gap Theory
Social Media and the Social Identity & Knowledge Gap Theory
 
Debugging Your CDN - Austin Spires at Fastly Altitude 2015
Debugging Your CDN - Austin Spires at Fastly Altitude 2015Debugging Your CDN - Austin Spires at Fastly Altitude 2015
Debugging Your CDN - Austin Spires at Fastly Altitude 2015
 
Project Management & Innovation
Project Management & InnovationProject Management & Innovation
Project Management & Innovation
 

Viewers also liked (6)

Behavior Driven Infrastructure 2011-01
Behavior Driven Infrastructure 2011-01Behavior Driven Infrastructure 2011-01
Behavior Driven Infrastructure 2011-01
 
Ciara d’agostino
Ciara d’agostinoCiara d’agostino
Ciara d’agostino
 
Struggle and survival 2
Struggle and survival 2Struggle and survival 2
Struggle and survival 2
 
Indian conquistadors
Indian conquistadorsIndian conquistadors
Indian conquistadors
 
Ciara d’agostino
Ciara d’agostinoCiara d’agostino
Ciara d’agostino
 
Some Well-known Computer Scientists
Some Well-known Computer ScientistsSome Well-known Computer Scientists
Some Well-known Computer Scientists
 

Similar to Reducing Resistance: Deployment as Surface

Presentacion2
Presentacion2Presentacion2
Presentacion2
fer228658
 
COM-540_Final_Project_2_Submission-diHeald
COM-540_Final_Project_2_Submission-diHealdCOM-540_Final_Project_2_Submission-diHeald
COM-540_Final_Project_2_Submission-diHeald
Diana Heald
 
TDD Using the SOLID Principles
TDD Using the SOLID PrinciplesTDD Using the SOLID Principles
TDD Using the SOLID Principles
Jenna Pederson
 
multimediainfomediac17-180302055121-converted.pptx
multimediainfomediac17-180302055121-converted.pptxmultimediainfomediac17-180302055121-converted.pptx
multimediainfomediac17-180302055121-converted.pptx
Lyka Gumatay
 

Similar to Reducing Resistance: Deployment as Surface (20)

Ville Hulkko - Artificial Intelligence as a service
Ville Hulkko - Artificial Intelligence as a serviceVille Hulkko - Artificial Intelligence as a service
Ville Hulkko - Artificial Intelligence as a service
 
Presentacion2
Presentacion2Presentacion2
Presentacion2
 
Social Media, Keeping up to date, Pure and more : The Leiden talk
Social Media, Keeping up to date, Pure and more  : The Leiden talkSocial Media, Keeping up to date, Pure and more  : The Leiden talk
Social Media, Keeping up to date, Pure and more : The Leiden talk
 
UXSG Office Visit #3 for Singapore Polytechnic S.E.E.D Student Interest Group...
UXSG Office Visit #3 for Singapore Polytechnic S.E.E.D Student Interest Group...UXSG Office Visit #3 for Singapore Polytechnic S.E.E.D Student Interest Group...
UXSG Office Visit #3 for Singapore Polytechnic S.E.E.D Student Interest Group...
 
TMT - Cybercrime - Stibbe
TMT - Cybercrime - StibbeTMT - Cybercrime - Stibbe
TMT - Cybercrime - Stibbe
 
Meteor WWNRW Intro
Meteor WWNRW IntroMeteor WWNRW Intro
Meteor WWNRW Intro
 
Open Data & Health: food for thoughts
Open Data & Health: food for thoughtsOpen Data & Health: food for thoughts
Open Data & Health: food for thoughts
 
Enel linked open geo data
Enel linked open geo dataEnel linked open geo data
Enel linked open geo data
 
Linked Open GeoData for Electric Vehicle Charging Stations by ENEL
Linked Open GeoData for Electric Vehicle Charging Stations by ENELLinked Open GeoData for Electric Vehicle Charging Stations by ENEL
Linked Open GeoData for Electric Vehicle Charging Stations by ENEL
 
Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)Linked Open GeoData for Enel Drive (W3C LOD2014)
Linked Open GeoData for Enel Drive (W3C LOD2014)
 
Learning Relationship Management for Competency-Based Education
Learning Relationship Management for Competency-Based EducationLearning Relationship Management for Competency-Based Education
Learning Relationship Management for Competency-Based Education
 
rpm-building-101.pdf
rpm-building-101.pdfrpm-building-101.pdf
rpm-building-101.pdf
 
Reach Out to Research (R2R) Bergen #uhbib2015
Reach Out to Research (R2R) Bergen #uhbib2015Reach Out to Research (R2R) Bergen #uhbib2015
Reach Out to Research (R2R) Bergen #uhbib2015
 
Agile and Scrum Methodology
Agile and Scrum MethodologyAgile and Scrum Methodology
Agile and Scrum Methodology
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
 
COM-540_Final_Project_2_Submission-diHeald
COM-540_Final_Project_2_Submission-diHealdCOM-540_Final_Project_2_Submission-diHeald
COM-540_Final_Project_2_Submission-diHeald
 
Watkins will ppp_visuals
Watkins will ppp_visualsWatkins will ppp_visuals
Watkins will ppp_visuals
 
TDD Using the SOLID Principles
TDD Using the SOLID PrinciplesTDD Using the SOLID Principles
TDD Using the SOLID Principles
 
Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...
Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...
Chris Wróbel (vRational): Using VR and Imitation Machine Learning Algorithms ...
 
multimediainfomediac17-180302055121-converted.pptx
multimediainfomediac17-180302055121-converted.pptxmultimediainfomediac17-180302055121-converted.pptx
multimediainfomediac17-180302055121-converted.pptx
 

Recently uploaded

Recently uploaded (20)

In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 

Reducing Resistance: Deployment as Surface

  • 1. R E D U C I N G R E S I S TA N C E D E P L O Y M E N T A S A S U R FA C E J E F F R E Y H U LT E N W H I T E PA G E S , I N C . F L I C K R . C O M / P H O T O S / D E G E U Z E N / 2 9 8 0 6 3 7 9 5 1 A G I L E 2 0 1 4
  • 2. F I R S T, A S T O RY…
  • 3. T H E R E WA S A D E V E L O P E R , W R I T I N G A W E B A P P L I C AT I O N F L I C K R . C O M / P H O T O S / Y O U R D O N / 2 6 8 1 6 8 6 2 2 0 O N C E U P O N A T I M E
  • 4. S H E D E P L O Y E D C O D E T O P R O D U C T I O N B Y H A N D F L I C K R . C O M / P H O T O S / S E E M I N G L E E / 8 1 8 4 4 4 0 4 1 1 A N D E V E RY D A Y
  • 5. H E R T E A M M AT E O V E R W R O T E H E R C H A N G E S F L I C K R . C O M / P H O T O S / P H I L F O T O S / 5 5 6 5 5 2 9 6 9 9 U N T I L O N E D A Y
  • 6. S H E D E C I D E T O PA C K A G E H E R C O D E F L I C K R . C O M / P H O T O S / H A L F B I S Q U E D / 2 3 5 3 8 4 5 6 8 8 B E C A U S E O F T H I S
  • 7. T H AT D I D N ’ T A C C O U N T F O R C O N F I G U R AT I O N F L I C K R . C O M / P H O T O S / J O H N C A B E L L / 5 8 8 4 4 9 0 5 8 8 B U T,
  • 8. S H E D E P L O Y E D T H AT PA C K A G E W I T H C H E F * * or other configuration management tool, our protagonist isn’t picky… F L I C K R . C O M / P H O T O S / E M E D I A / 1 3 8 7 0 7 0 1 8 9 4 S O ,
  • 9. S H E D E P L O Y E D T H AT PA C K A G E W I T H P U P P E T * * I told you she isn’t picky… F L I C K R . C O M / P H O T O S / J E Y H / 2 7 9 6 2 2 3 8 0 4 S O ,
  • 10. D E P L O Y M E N T T I M E C O M P L E X I T Y F L I C K R . C O M / P H O T O S / B I T T E R J U G / 7 6 7 0 0 5 5 2 1 0 B U T T H A T L E D T O
  • 11. S H E P U T I T I N A D O C K E R C O N TA I N E R * * or AMI… Like I said, not picky… FLICKR.COM/PHOTOS/33280166@N02/5354725682 U N T I L F I N A L LY
  • 12. S H E A P P L I E D T H E P R I N C I PA L S O F T H E T W E LV E FA C T O R A P P http://12factor.net/ F L I C K R . C O M / P H O T O S / P E T E R R A S / 9 8 8 3 5 8 2 1 0 6 A N D
  • 13. S H E C H O S E H E R C O N S T R A I N T S T O F R E E H E R S E L F O F D E P L O Y M E N T PA I N F L I C K R . C O M / P H O T O S / C H I O T S R U N / 4 9 0 4 2 6 1 1 5 0 A N D E V E R S I N C E T H A T D A Y
  • 14. T W E LV E FA C T O R S ?
  • 15. T H E T W E LV E FA C T O R S • I. Codebase
 One codebase tracked in revision control, many deploys • II. Dependencies
 Explicitly declare and isolate dependencies • III. Config
 Store config in the environment • IV. Backing Services
 Treat backing services as attached resources • V. Build, release, run
 Strictly separate build and run stages • VI. Processes
 Execute the app as one or more stateless processes • VII. Port binding
 Export services via port binding • VIII. Concurrency
 Scale out via the process model • IX. Disposability
 Maximize robustness with fast startup and graceful shutdown • X. Dev/prod parity
 Keep development, staging, and production as similar as possible • XI. Logs
 Treat logs as event streams • XII. Admin processes
 Run admin/management tasks as one- off processes
  • 16. T H E O N E FA C T O R F L I C K R . C O M / P H O T O S / A N I R U D H K O U L / 3 7 2 5 9 3 9 5 9 4 K E E P 
 I T 
 S I M P L E A N D S T R A I G H T F O R WA R D
  • 17. S I M P L E A I N ’ T E A S Y "Steve Jobs Headshot 2010-CROP" by Matthew Yohe (talk)(Transfered by fetchcomms/Original uploaded by Matt Yohe) - I (Matt Yohe (talk)) created this work entirely by myself. (Original uploaded on en.wikipedia). Licensed under Creative Commons Attribution-Share Alike 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Steve_Jobs_Headshot_2010-CROP.jpg#mediaviewer/File:Steve_Jobs_Headshot_2010-CROP.jpg “Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it’s worth it in the end because once you get there, you can move mountains.” ― Steve Jobs
  • 18. A H A R D S E L L ? "Edsger Wybe Dijkstra" by Hamilton Richards - manuscripts of Edsger W. Dijkstra, University Texas at Austin. Licensed under Creative Commons Attribution-Share Alike 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Edsger_Wybe_Dijkstra.jpg#mediaviewer/ File:Edsger_Wybe_Dijkstra.jpg “Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.” ― Edsger Dijkstra
  • 19. D E P L O Y M E N T: A N A N A L O G Y
  • 20. Y O U WA N T T O F LY I M A G I N E
  • 21. Y O U ’ R E A P I E C E O F PA P E R B U T F L I C K R . C O M / P H O T O S / 9 4 2 4 6 3 8 3 @ N 0 0 / 8 6 3 7 4 2 1 2 1 9
  • 22. I N C R E A S E L I F T & D E C R E A S E D R A G F L I G H T R E Q U I R E S T H A T Y O U F L I C K R . C O M / P H O T O S / J A S O N - S A M F I E L D / 5 3 8 7 9 3 4 8 3 2
  • 23. D O E S N ’ T H AV E E N O U G H S T R U C T U R E A F R E S H S H E E T O F PA P E R F L I C K R . C O M / P H O T O S / T H I B A U D _ S A I N T I N / 1 4 4 5 1 1 7 5 8 4 5
  • 24. H A S N O L I F T A B A L L O F PA P E R F L I C K R . C O M / P H O T O S / 3 3 8 5 2 6 8 8 @ N 0 8 / 4 4 6 2 0 2 9 7 8 8
  • 25. A N D Y O U C A N F LY F L I C K R . C O M / P H O T O S / C H R I S C H A N P H O T O G R A P H Y / 3 6 1 1 6 8 6 7 8 4 B U T F O L D T H E PA P E R C A R E F U L LY
  • 26. D E P L O Y M E N T S U R FA C E ? S O W H A T C O N S T I T U T E S
  • 27. L I B R A R I E S A N D F R A M E W O R K S ? I S I T F L I C K R . C O M / P H O T O S / S PA M / 5 0 8 6 1 6 8 7 3 9
  • 28. R U N T I M E S ? W H A T A B O U T F L I C K R . C O M / P H O T O S / R O FA N AT O R / 6 4 5 4 1 0 8 7 3 1
  • 29. C O M M O N S E R V I C E S ? C O U L D I T B E F L I C K R . C O M / P H O T O S / 1 S T P I X _ D I E C A S T _ D I O R A M A S / 7 1 0 4 4 8 9 7 1 5
  • 30. W I R E P R O T O C O L S ? H O W A B O U T F L I C K R . C O M / P H O T O S / K T G E E K / 6 2 6 4 0 1 8 7 6 4
  • 31. B U S I N E S S P R A C T I C E S ? O R F L I C K R . C O M / P H O T O S / F R E D E R I C K M D R O C K S / 6 1 5 4 6 7 8 0 6 8
  • 32. Y E S
  • 33. A C O N T R O L E V E RY S U R FA C E R E Q U I R E S F L I C K R . C O M / P H O T O S / D AW I L S O N / 5 1 2 8 6 9 4 7 7 4
  • 34. L I B R A R I E S A N D F R A M E W O R K S • Does the third party framework solve more problems than it creates? • Will that still be as true in the last week of the project as it is in the first? • Is there a simpler way?
  • 35. E X A M P L E : R U B Y A P I S E R V I C E
  • 36. R U N T I M E S • Runtime: Ruby VM, JVM, Erlang VM, Binary Executable • How many runtimes are needed to serve your customers? • Are you adding complexity because your runtime doesn’t work the way you need to?
  • 37. E X A M P L E : R U B Y, U N I C O R N , A N D C O N N E C T I O N P O O L S
  • 38. R U N T I M E S ? N O T L A N G U A G E S ? • Languages are (mostly) a build time concern. • Runtimes are a deploy time concern.
  • 39. – R I C H H I C K E Y We program with constructs[...] but we are in a business of artifacts.
  • 40. C O M M O N S E R V I C E S • How many data stores/in-memory caches/load balancers are you using? • Does your team have the expertise to support them all? • Does your team have the time/‘bandwidth’ to learn a new service? • Nothing is a simple as the packaging says.
  • 41. D U P L I C AT E C O M M O N S E R V I C E S Postgres & MySQL Redis & Memcache Riak & Cassandra Nginx & Apache HTTPd Zookeeper & etcd ActiveMQ & Rabbit MQ
  • 42. W I R E P R O T O C O L S • Eventually you will need to look at the traffic. • Can you inspect your services on the wire? • Does a new wire protocol justify the additional complexity?
  • 43. D U P L I C AT E W I R E P R O T O C O L S HTTP & ??? Avro & Thrift & Protobuf JSON & XML
  • 44. B U S I N E S S P R A C T I C E S • Do your practices lift you up or drag you down? • Do you release features faster than the code rots? • Do you expect to find all defects before you go to production?
  • 45. - E D S G E R W D I J K S T R A The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible. F L I C K R . C O M / P H O T O S / 2 9 4 8 7 7 6 7 @ N 0 2 / 4 2 5 5 0 2 6 8 7 2
  • 46. R E M E M B E R O U R D E V E L O P E R ? F L I C K R . C O M / P H O T O S / Y O U R D O N / 2 6 8 1 6 8 6 2 2 0 I N T H E B E G I N N I N G …
  • 47. S T R AT E G I E S O F D E P L O Y M E N T • Manual Push • Package Push • Configuration Management Tool (Chef/Puppet) • Docker Container
  • 48. M A N U A L P U S H $ for s in 1 2 3; do 
 rsync -a ~/src web${s}.example.com:/opt/app;
 ssh web${s}.example.com 
 sudo service apache2 restart; 
 done
  • 49. M A N U A L P U S H $ for s in 1 2 3; do 
 rsync -a ~/src web${s}.example.com:/opt/app;
 ssh web${s}.example.com 
 sudo service apache2 restart; 
 done
  • 50. C R E AT E PA C K A G E $ fpm -s dir -d deb -n myapp -v 1.2.3 ~/src
 Created deb package {:path=>”myapp_1.2.3_amd64.deb”}
  • 51. I N S TA L L PA C K A G E $ sudo dpkg -i myapp_1.2.3_amd64.deb
  • 52. C H E F R E C I P E apt_package “myapp” do
 source “/path/to/myapp_1.2.3_amd64.deb”
 action :install
 end
  • 53. D O C K E R F I L E FROM ubuntu:trusty
 MAINTAINER Debbie Dev <ddev@myappco.com>
 ADD ./myapp_1.2.3_amd64.deb /opt/pkgs
 RUN dpkg -i /opt/pkgs/myapp_1.2.3_amd64.deb
 ENV ENVIRONMENT prod
 CMD service start myapp
  • 54. The first step toward the management of disease was replacement of demon theories and humours theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today. – F R E D B R O O K S F L I C K R . C O M / P H O T O S / N I A I D / 5 9 5 0 8 7 0 3 0 0
  • 55. F I N D I N G M E Jeffrey Hulten @jhulten linkedin.com/in/jhulten jhulten@whitepages.com
  • 56. Q & A
  • 57. S E S S I O N F E E D B A C K Please provide feedback on this session! You can do so in 3 ways: • Visit this session on the Mobile App. Click Session Feedback. • Scan the unique QR Code for this session located at the front and back of the room. • Visit the unique URL for this session located at the front and back of the room. Thank you for providing your feedback