SlideShare a Scribd company logo
1 of 42
Download to read offline
DISPOSABLE
DEVELOPMENT ENVIRONMENTS
1
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
ABOUT ME
▸ Boyd Hemphill
▸ CTO - Victory CTO
▸ Community guy …
▸ Austin DevOps Meetup
▸ DevOps Days Austin
▸ Container Days Austin
▸ Docker Austin
▸ Been a Developer, DBA, and Operator.
2
QUICKLY EXPERIMENT WITH
INFRASTRUCTURE AND BUILDS
THE SAME WAY AS CODE.
Chuck Norris
THE DISPOSABLE DEVELOPMENT ENVIRONMENT 3
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
CONCEPTS
▸ Separate runtime from application code.
▸ Be able to take risks in the runtime and reap rewards.
▸ Or … at least get back to work in less than 5 minutes.
▸ On board a new developer within 30 minutes
▸ Take risks with the build
▸ Or … at least get back to the original build in less than 5
minutes
4
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
OUTCOMES
▸ Better developer productivity
▸ Better development for non-functional requirements
▸ Better security and compliance
▸ Better defect reproduction
5
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
REASON FROM SECURITY PERSPECTIVE
▸ Using security as a motivator …
▸ Separate the runtime from the code in development
▸ Docker
▸ Vagrant
▸ Pursue some security benefits of disposability
▸ Wave hands about other applications of the same thinking
▸ Profit
6
DOCKER DOCKER
DOCKER
7
8
9
10
11
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
THINGS TO NOTICE
▸ The Docker Container is running the application
▸ The code is still on the host
▸ Developers still use local tools like their IDE.
▸ The `-v $HOME/code/victory-cto/disposable-
development-environments/:/code` makes it happen
▸ It is not awesome that we are running Ubuntu:12.04
12
VAGRANT
HASHICORP
13
14
15
16
17
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
THINGS TO NOTICE
▸ The Vagrant guest is running the application
▸ The code is still on the host
▸ Developers still use local tools like their IDE.
▸ The line in the vagrant file: `config.vm.synced_folder ".", “/
opt/code”` makes it happen
▸ It is _still_ not awesome that we are running Ubuntu:12.04
18
THE CASE OF VAGRANT V.
DOCKER WILL NOW BE HEARD
Supreme (Kangaroo) Court
THE DISPOSABLE DEVELOPMENT ENVIRONMENT 19
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
CONTRASTS - VAGRANT PERSPECTIVE
▸ Vagrant is running a full machine just like you are in
production:
▸ Getting in and trying things is easy
▸ You can potentially rerun the provisioner
▸ Idempotency is hard:
▸ To rerun the provisions you would need Chef, Ansible …
20
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
CONTRASTS - DOCKER PERSPECTIVE
▸ Docker is running a container. There is not a full OS.
▸ Getting in and trying things is a fairly esoteric
▸ You cannot change a running container
▸ It’s cheap to kill and start a new one though
▸ Immutability is hard:
▸ Each attempted runtime is a new image and container
▸ Different set of skills than most are used to
▸ Need to get good at optimizing Dockerfiles for build time.
21
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
KEY CONCEPTS
▸ Vagrant and Docker solve the same problem with respect to the developer
environment.
▸ Use the one that best represents your production environment,
▸ not your aspirations to be a cool kid,
▸ not resume-driven-development
▸ The configuration of the runtime is defined in code
▸ Dockerfile
▸ Vagrantfile
▸ We can now hack on them like we can on code.
▸ Let’s hack …
22
ALL YOUR APPLICATION ARE
BELONG TO THEM.
Every Cyber Security Bulletin
THE DISPOSABLE DEVELOPMENT ENVIRONMENT 23
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
SECURITY REPORT
▸ The Quay container registry offers
Claire. So let’s look at it for a
baseline.
▸ There are 75 medium CVEs.
▸ Only 4 are fixable.
▸ Occam’s Razor tells us to upgrade
the OS.
24
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
PANIC
▸ OMFG! Upgrade the OS!!!
▸ It’s raining razor blades!
▸ Our runtime is separate from the
code and it is described by code.
▸ We have super powers.
25
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
UBUNTU 12.04 -> 16.04
▸ Note that to upgrade the OS, all
that is done is to change line 2!
▸ The container is rebuilt and tested.
▸ The candidate image is pushed to
the registry
26
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
OUR NEW SECURITY PROFILE
▸ We are down to 68 medium CVEs.
▸ Still, only 4 can be addressed.
▸ However the remaining 64 have a
hope of being addressed because
16.04 is still under support.
27
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
LET’S PROFIT - SHARING
▸ The container (or VM with Vagrant)
is using the Ubuntu 16.04
▸ We have run tests.
▸ We have pushed it to the registry
and seen the change in our
security posture
28
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
LET’S PROFIT - SHARING
▸ Other developers:
▸ `git stash`
▸ `git pull`
▸ `git merge ubuntu-16.04`
▸ `docker kill …`
▸ `docker run …`
▸ Could be from the registry
▸ Could be a locally built container
▸ `git stash apply`
▸ Git back to work.
▸ Total time: 5 minutes
29
SORRY 143,000,000 PEOPLE
STRUTS WAS REALLY HARD TO
UPDATE.
Equifax
THE DISPOSABLE DEVELOPMENT ENVIRONMENT 30
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
LIBRARY MANAGEMENT
▸ Flask ~= Struts for our purpose
here.
▸ And our Flask version is … ahem …
experienced.
31
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
STEPS TO FIX - HAPPY PATH
▸ One team member upgrades flask.
▸ She runs tests
▸ She gets coffee
▸ Tests pass
▸ She commits and pushes.
▸ Build pipeline registers the container.
▸ She notifies the team
▸ Team recycles their containers to the
new one.
32
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
STEPS TO FIX - SAD PATH
▸ One team member upgrades flask.
▸ She runs tests
▸ She gets coffee
▸ Tests fail
▸ She exercises the darker side of
her vocabulary.
33
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
STEPS TO FIX - SAD PATH - 2
▸ This is reality. Upgrades to critical libraries often
cause pain.
▸ Our intrepid developer notifies her team lead.
▸ She works to fix issues in the code.
▸ She gets a tiger team together for the same.
▸ Once tests are passing, she shares the new run time
and necessary code changes in the _same commit_!
▸ For all other developers, it’s a 5 minute change, and
some effort to integrate any work on their branches/
features.
▸ This used to mean developers take hours/days to
get up to date because of the bespoke nature of
their environment.
34
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
STEPS TO FIX - TRAGEDY
▸ Sometimes you cannot take on the risk to
do the sad path work.
▸ Before, this could mean losing the
developer(s) for a week while she re-
crafted her bespoke environment.
▸ Now it means:
▸ `git checkout new-branch`
▸ `docker run …` (or `vagrant up`)
▸ Tragic? Yes … goats were sad.
▸ Time consuming? Not nearly as much …
35
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
THE BIGGER PICTURE
▸ When a necessary upgrade occurs, it can be done quickly
and painlessly.
▸ Quick and painless means it will happen more often.
▸ Happening more often means better security.
▸ Developers are contributing to production security, not
fighting with their personal environments.
▸ Money/time is saved can be used for better security tooling.
36
BUT WAIT … THERE’S MORE
Ronco
THE DISPOSABLE DEVELOPMENT ENVIRONMENT 37
38
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
ZOOMING OUT FARTHER
▸ This same thinking can be used for any sort of change.
▸ Disposable development environments is really nothing more than reaping the
benefits of standardization and configuration as code.
▸ See Adam Jacobs, Jez Humble or any other Adjutant to the Regional DevOp
▸ Want to try some crazy code to solve a performance issue, but need to tweak the
runtime for more memory?
▸ Want to constrain memory to see how your code performs in a simulated situation?
▸ Want to test the addition of firewall rules to each machine (AWS recommended best
practice)?
▸ Want to reproduce network segmentation faults to ensure a graceful user experience?
39
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
INNOVATION COSTS LESS
▸ All of these things are innovations
▸ Disposability is the pinnacle of the, “Fail fast” mentality.
▸ Replace the biggest voice in the room with a functional
model and data to make a decision.
40
YOU ARE LIMITED BY YOUR
IMAGINATION AND LAPTOP
MEMORY.
Boyd
THE DISPOSABLE DEVELOPMENT ENVIRONMENT 41
THE DISPOSABLE DEVELOPMENT ENVIRONMENT
COLOPHON
▸ A github repo with the all the code and instructions for your
to play with: https://goo.gl/dvejTS
▸ The container image with a live security scan from a package
perspective: https://goo.gl/qgHzoT
▸ The container image with a live security scan from a CVE
perspective: https://goo.gl/B7WE1Z
▸ A blog post coming this week with much of the explanations
and thinking written out: https://victorycto.com/blog
42

More Related Content

What's hot

Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideDocker, Inc.
 
Improving Engineering Processes using Hudson - Spark IT 2010
Improving Engineering Processes using Hudson - Spark IT 2010Improving Engineering Processes using Hudson - Spark IT 2010
Improving Engineering Processes using Hudson - Spark IT 2010Arun Gupta
 
Docker and Puppet — Puppet Camp L.A. — SCALE12X
Docker and Puppet — Puppet Camp L.A. — SCALE12XDocker and Puppet — Puppet Camp L.A. — SCALE12X
Docker and Puppet — Puppet Camp L.A. — SCALE12XJérôme Petazzoni
 
Docker at Spotify
Docker at SpotifyDocker at Spotify
Docker at SpotifyRohan Singh
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Thomas Shaw
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Jérôme Petazzoni
 
Using Docker in the Real World
Using Docker in the Real WorldUsing Docker in the Real World
Using Docker in the Real WorldTim Haak
 
Modern Continuous Delivery with Docker and Liferay
Modern Continuous Delivery with Docker and LiferayModern Continuous Delivery with Docker and Liferay
Modern Continuous Delivery with Docker and LiferayManuel de la Peña Peña
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of usJérôme Petazzoni
 
Works on my machine, your problem now? - QCon 2014
Works on my machine, your problem now? - QCon 2014Works on my machine, your problem now? - QCon 2014
Works on my machine, your problem now? - QCon 2014Wolfgang Gottesheim
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Ruoshi Ling
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionJérôme Petazzoni
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)Jérôme Petazzoni
 
Docker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing MeetupDocker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing MeetupJérôme Petazzoni
 
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Jérôme Petazzoni
 
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...Docker, Inc.
 
Deploy microservices in containers with Docker and friends - KCDC2015
Deploy microservices in containers with Docker and friends - KCDC2015Deploy microservices in containers with Docker and friends - KCDC2015
Deploy microservices in containers with Docker and friends - KCDC2015Jérôme Petazzoni
 
猿でもわかるコンテナ
猿でもわかるコンテナ猿でもわかるコンテナ
猿でもわかるコンテナTsuyoshi Miyake
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
 

What's hot (20)

Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
Improving Engineering Processes using Hudson - Spark IT 2010
Improving Engineering Processes using Hudson - Spark IT 2010Improving Engineering Processes using Hudson - Spark IT 2010
Improving Engineering Processes using Hudson - Spark IT 2010
 
Docker and Puppet — Puppet Camp L.A. — SCALE12X
Docker and Puppet — Puppet Camp L.A. — SCALE12XDocker and Puppet — Puppet Camp L.A. — SCALE12X
Docker and Puppet — Puppet Camp L.A. — SCALE12X
 
Docker at Spotify
Docker at SpotifyDocker at Spotify
Docker at Spotify
 
Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016Containerised Testing at Demonware : PyCon Ireland 2016
Containerised Testing at Demonware : PyCon Ireland 2016
 
Docker bdxio
Docker bdxioDocker bdxio
Docker bdxio
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
 
Using Docker in the Real World
Using Docker in the Real WorldUsing Docker in the Real World
Using Docker in the Real World
 
Modern Continuous Delivery with Docker and Liferay
Modern Continuous Delivery with Docker and LiferayModern Continuous Delivery with Docker and Liferay
Modern Continuous Delivery with Docker and Liferay
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of us
 
Works on my machine, your problem now? - QCon 2014
Works on my machine, your problem now? - QCon 2014Works on my machine, your problem now? - QCon 2014
Works on my machine, your problem now? - QCon 2014
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)How to contribute to large open source projects like Docker (LinuxCon 2015)
How to contribute to large open source projects like Docker (LinuxCon 2015)
 
Docker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing MeetupDocker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing Meetup
 
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
 
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
You Don't Have to Start Over! A Practical Guide for Adopting Docker in the En...
 
Deploy microservices in containers with Docker and friends - KCDC2015
Deploy microservices in containers with Docker and friends - KCDC2015Deploy microservices in containers with Docker and friends - KCDC2015
Deploy microservices in containers with Docker and friends - KCDC2015
 
猿でもわかるコンテナ
猿でもわかるコンテナ猿でもわかるコンテナ
猿でもわかるコンテナ
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 

Similar to 2017-10-24 All Day DevOps - Disposable Development Environments

Elephant grooming: quality with Hadoop
Elephant grooming: quality with HadoopElephant grooming: quality with Hadoop
Elephant grooming: quality with HadoopRoman Nikitchenko
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Richard Bullington-McGuire
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...CODE BLUE
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox testsKevin Beeman
 
Automated-Testing-inside-containers
Automated-Testing-inside-containersAutomated-Testing-inside-containers
Automated-Testing-inside-containersManoj Kumar Kumar
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolsetReid Lai
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)Joe Brockmeier
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned RightScale
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleRusty Klophaus
 
Testing as a container
Testing as a containerTesting as a container
Testing as a containerIrfan Ahmad
 
Perspectives on Docker
Perspectives on DockerPerspectives on Docker
Perspectives on DockerRightScale
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideBret Fisher
 
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...DevOpsDays Tel Aviv
 
Kubernetes training
Kubernetes trainingKubernetes training
Kubernetes trainingDes Drury
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareLaura Frank Tacho
 
SMART Cloud - K8s in produzione - best practices
SMART Cloud - K8s in produzione - best practices SMART Cloud - K8s in produzione - best practices
SMART Cloud - K8s in produzione - best practices SerenaSensini1
 

Similar to 2017-10-24 All Day DevOps - Disposable Development Environments (20)

Elephant grooming: quality with Hadoop
Elephant grooming: quality with HadoopElephant grooming: quality with Hadoop
Elephant grooming: quality with Hadoop
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
[CB16] About the cyber grand challenge: the world’s first all-machine hacking...
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
 
Automated-Testing-inside-containers
Automated-Testing-inside-containersAutomated-Testing-inside-containers
Automated-Testing-inside-containers
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)
 
Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned  Real-World Docker: 10 Things We've Learned
Real-World Docker: 10 Things We've Learned
 
Intro to DevOps
Intro to DevOpsIntro to DevOps
Intro to DevOps
 
Winning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test CycleWinning the Erlang Edit•Build•Test Cycle
Winning the Erlang Edit•Build•Test Cycle
 
Testing as a container
Testing as a containerTesting as a container
Testing as a container
 
Testing AS A Container - Irfan Ahmad
Testing AS A Container - Irfan AhmadTesting AS A Container - Irfan Ahmad
Testing AS A Container - Irfan Ahmad
 
Perspectives on Docker
Perspectives on DockerPerspectives on Docker
Perspectives on Docker
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
 
Kubernetes training
Kubernetes trainingKubernetes training
Kubernetes training
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
 
SMART Cloud - K8s in produzione - best practices
SMART Cloud - K8s in produzione - best practices SMART Cloud - K8s in produzione - best practices
SMART Cloud - K8s in produzione - best practices
 
Tiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of usTiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of us
 
Natively clouded Journey
Natively clouded JourneyNatively clouded Journey
Natively clouded Journey
 

More from Boyd Hemphill

Longhorn PHP Tech Debt
Longhorn PHP Tech DebtLonghorn PHP Tech Debt
Longhorn PHP Tech DebtBoyd Hemphill
 
2022-08-16-cloud-austin-tech-debt.pdf
2022-08-16-cloud-austin-tech-debt.pdf2022-08-16-cloud-austin-tech-debt.pdf
2022-08-16-cloud-austin-tech-debt.pdfBoyd Hemphill
 
Longhorn PHP - Stop Doing It Wrong
Longhorn PHP - Stop Doing It WrongLonghorn PHP - Stop Doing It Wrong
Longhorn PHP - Stop Doing It WrongBoyd Hemphill
 
Deploying PHP Applications to AWS Elastic Beanstalk
Deploying PHP Applications to AWS Elastic BeanstalkDeploying PHP Applications to AWS Elastic Beanstalk
Deploying PHP Applications to AWS Elastic BeanstalkBoyd Hemphill
 
Container Days NYC Keynote
Container Days NYC KeynoteContainer Days NYC Keynote
Container Days NYC KeynoteBoyd Hemphill
 
Docker Docker - Docker Security - Docker
Docker Docker - Docker Security - DockerDocker Docker - Docker Security - Docker
Docker Docker - Docker Security - DockerBoyd Hemphill
 
HomeOps - Reasoning About DevOps at Home
HomeOps - Reasoning About DevOps at HomeHomeOps - Reasoning About DevOps at Home
HomeOps - Reasoning About DevOps at HomeBoyd Hemphill
 
Container Day - Seattle
Container Day - SeattleContainer Day - Seattle
Container Day - SeattleBoyd Hemphill
 
Docker enables agile_devops
Docker enables agile_devopsDocker enables agile_devops
Docker enables agile_devopsBoyd Hemphill
 
Openstack Summit Container Day Keynote
Openstack Summit Container Day KeynoteOpenstack Summit Container Day Keynote
Openstack Summit Container Day KeynoteBoyd Hemphill
 
Laundryops Practical DevOps at Home
Laundryops Practical DevOps at HomeLaundryops Practical DevOps at Home
Laundryops Practical DevOps at HomeBoyd Hemphill
 
Ten Book, Five Minutes
Ten Book, Five MinutesTen Book, Five Minutes
Ten Book, Five MinutesBoyd Hemphill
 
Keep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechKeep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechBoyd Hemphill
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Boyd Hemphill
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - BostonBoyd Hemphill
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - BostonBoyd Hemphill
 
StackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinStackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinBoyd Hemphill
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space DemoBoyd Hemphill
 

More from Boyd Hemphill (20)

Longhorn PHP Tech Debt
Longhorn PHP Tech DebtLonghorn PHP Tech Debt
Longhorn PHP Tech Debt
 
2022-08-16-cloud-austin-tech-debt.pdf
2022-08-16-cloud-austin-tech-debt.pdf2022-08-16-cloud-austin-tech-debt.pdf
2022-08-16-cloud-austin-tech-debt.pdf
 
The Dynamic Duo
The Dynamic DuoThe Dynamic Duo
The Dynamic Duo
 
Risk is not Fear
Risk is not FearRisk is not Fear
Risk is not Fear
 
Longhorn PHP - Stop Doing It Wrong
Longhorn PHP - Stop Doing It WrongLonghorn PHP - Stop Doing It Wrong
Longhorn PHP - Stop Doing It Wrong
 
Deploying PHP Applications to AWS Elastic Beanstalk
Deploying PHP Applications to AWS Elastic BeanstalkDeploying PHP Applications to AWS Elastic Beanstalk
Deploying PHP Applications to AWS Elastic Beanstalk
 
Container Days NYC Keynote
Container Days NYC KeynoteContainer Days NYC Keynote
Container Days NYC Keynote
 
Docker Docker - Docker Security - Docker
Docker Docker - Docker Security - DockerDocker Docker - Docker Security - Docker
Docker Docker - Docker Security - Docker
 
HomeOps - Reasoning About DevOps at Home
HomeOps - Reasoning About DevOps at HomeHomeOps - Reasoning About DevOps at Home
HomeOps - Reasoning About DevOps at Home
 
Container Day - Seattle
Container Day - SeattleContainer Day - Seattle
Container Day - Seattle
 
Docker enables agile_devops
Docker enables agile_devopsDocker enables agile_devops
Docker enables agile_devops
 
Openstack Summit Container Day Keynote
Openstack Summit Container Day KeynoteOpenstack Summit Container Day Keynote
Openstack Summit Container Day Keynote
 
Laundryops Practical DevOps at Home
Laundryops Practical DevOps at HomeLaundryops Practical DevOps at Home
Laundryops Practical DevOps at Home
 
Ten Book, Five Minutes
Ten Book, Five MinutesTen Book, Five Minutes
Ten Book, Five Minutes
 
Keep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechKeep calms and Docker On ... Innotech
Keep calms and Docker On ... Innotech
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - Boston
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - Boston
 
StackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinStackEngine Demo - Docker Austin
StackEngine Demo - Docker Austin
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 

Recently uploaded

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

2017-10-24 All Day DevOps - Disposable Development Environments

  • 2. THE DISPOSABLE DEVELOPMENT ENVIRONMENT ABOUT ME ▸ Boyd Hemphill ▸ CTO - Victory CTO ▸ Community guy … ▸ Austin DevOps Meetup ▸ DevOps Days Austin ▸ Container Days Austin ▸ Docker Austin ▸ Been a Developer, DBA, and Operator. 2
  • 3. QUICKLY EXPERIMENT WITH INFRASTRUCTURE AND BUILDS THE SAME WAY AS CODE. Chuck Norris THE DISPOSABLE DEVELOPMENT ENVIRONMENT 3
  • 4. THE DISPOSABLE DEVELOPMENT ENVIRONMENT CONCEPTS ▸ Separate runtime from application code. ▸ Be able to take risks in the runtime and reap rewards. ▸ Or … at least get back to work in less than 5 minutes. ▸ On board a new developer within 30 minutes ▸ Take risks with the build ▸ Or … at least get back to the original build in less than 5 minutes 4
  • 5. THE DISPOSABLE DEVELOPMENT ENVIRONMENT OUTCOMES ▸ Better developer productivity ▸ Better development for non-functional requirements ▸ Better security and compliance ▸ Better defect reproduction 5
  • 6. THE DISPOSABLE DEVELOPMENT ENVIRONMENT REASON FROM SECURITY PERSPECTIVE ▸ Using security as a motivator … ▸ Separate the runtime from the code in development ▸ Docker ▸ Vagrant ▸ Pursue some security benefits of disposability ▸ Wave hands about other applications of the same thinking ▸ Profit 6
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. THE DISPOSABLE DEVELOPMENT ENVIRONMENT THINGS TO NOTICE ▸ The Docker Container is running the application ▸ The code is still on the host ▸ Developers still use local tools like their IDE. ▸ The `-v $HOME/code/victory-cto/disposable- development-environments/:/code` makes it happen ▸ It is not awesome that we are running Ubuntu:12.04 12
  • 14. 14
  • 15. 15
  • 16. 16
  • 17. 17
  • 18. THE DISPOSABLE DEVELOPMENT ENVIRONMENT THINGS TO NOTICE ▸ The Vagrant guest is running the application ▸ The code is still on the host ▸ Developers still use local tools like their IDE. ▸ The line in the vagrant file: `config.vm.synced_folder ".", “/ opt/code”` makes it happen ▸ It is _still_ not awesome that we are running Ubuntu:12.04 18
  • 19. THE CASE OF VAGRANT V. DOCKER WILL NOW BE HEARD Supreme (Kangaroo) Court THE DISPOSABLE DEVELOPMENT ENVIRONMENT 19
  • 20. THE DISPOSABLE DEVELOPMENT ENVIRONMENT CONTRASTS - VAGRANT PERSPECTIVE ▸ Vagrant is running a full machine just like you are in production: ▸ Getting in and trying things is easy ▸ You can potentially rerun the provisioner ▸ Idempotency is hard: ▸ To rerun the provisions you would need Chef, Ansible … 20
  • 21. THE DISPOSABLE DEVELOPMENT ENVIRONMENT CONTRASTS - DOCKER PERSPECTIVE ▸ Docker is running a container. There is not a full OS. ▸ Getting in and trying things is a fairly esoteric ▸ You cannot change a running container ▸ It’s cheap to kill and start a new one though ▸ Immutability is hard: ▸ Each attempted runtime is a new image and container ▸ Different set of skills than most are used to ▸ Need to get good at optimizing Dockerfiles for build time. 21
  • 22. THE DISPOSABLE DEVELOPMENT ENVIRONMENT KEY CONCEPTS ▸ Vagrant and Docker solve the same problem with respect to the developer environment. ▸ Use the one that best represents your production environment, ▸ not your aspirations to be a cool kid, ▸ not resume-driven-development ▸ The configuration of the runtime is defined in code ▸ Dockerfile ▸ Vagrantfile ▸ We can now hack on them like we can on code. ▸ Let’s hack … 22
  • 23. ALL YOUR APPLICATION ARE BELONG TO THEM. Every Cyber Security Bulletin THE DISPOSABLE DEVELOPMENT ENVIRONMENT 23
  • 24. THE DISPOSABLE DEVELOPMENT ENVIRONMENT SECURITY REPORT ▸ The Quay container registry offers Claire. So let’s look at it for a baseline. ▸ There are 75 medium CVEs. ▸ Only 4 are fixable. ▸ Occam’s Razor tells us to upgrade the OS. 24
  • 25. THE DISPOSABLE DEVELOPMENT ENVIRONMENT PANIC ▸ OMFG! Upgrade the OS!!! ▸ It’s raining razor blades! ▸ Our runtime is separate from the code and it is described by code. ▸ We have super powers. 25
  • 26. THE DISPOSABLE DEVELOPMENT ENVIRONMENT UBUNTU 12.04 -> 16.04 ▸ Note that to upgrade the OS, all that is done is to change line 2! ▸ The container is rebuilt and tested. ▸ The candidate image is pushed to the registry 26
  • 27. THE DISPOSABLE DEVELOPMENT ENVIRONMENT OUR NEW SECURITY PROFILE ▸ We are down to 68 medium CVEs. ▸ Still, only 4 can be addressed. ▸ However the remaining 64 have a hope of being addressed because 16.04 is still under support. 27
  • 28. THE DISPOSABLE DEVELOPMENT ENVIRONMENT LET’S PROFIT - SHARING ▸ The container (or VM with Vagrant) is using the Ubuntu 16.04 ▸ We have run tests. ▸ We have pushed it to the registry and seen the change in our security posture 28
  • 29. THE DISPOSABLE DEVELOPMENT ENVIRONMENT LET’S PROFIT - SHARING ▸ Other developers: ▸ `git stash` ▸ `git pull` ▸ `git merge ubuntu-16.04` ▸ `docker kill …` ▸ `docker run …` ▸ Could be from the registry ▸ Could be a locally built container ▸ `git stash apply` ▸ Git back to work. ▸ Total time: 5 minutes 29
  • 30. SORRY 143,000,000 PEOPLE STRUTS WAS REALLY HARD TO UPDATE. Equifax THE DISPOSABLE DEVELOPMENT ENVIRONMENT 30
  • 31. THE DISPOSABLE DEVELOPMENT ENVIRONMENT LIBRARY MANAGEMENT ▸ Flask ~= Struts for our purpose here. ▸ And our Flask version is … ahem … experienced. 31
  • 32. THE DISPOSABLE DEVELOPMENT ENVIRONMENT STEPS TO FIX - HAPPY PATH ▸ One team member upgrades flask. ▸ She runs tests ▸ She gets coffee ▸ Tests pass ▸ She commits and pushes. ▸ Build pipeline registers the container. ▸ She notifies the team ▸ Team recycles their containers to the new one. 32
  • 33. THE DISPOSABLE DEVELOPMENT ENVIRONMENT STEPS TO FIX - SAD PATH ▸ One team member upgrades flask. ▸ She runs tests ▸ She gets coffee ▸ Tests fail ▸ She exercises the darker side of her vocabulary. 33
  • 34. THE DISPOSABLE DEVELOPMENT ENVIRONMENT STEPS TO FIX - SAD PATH - 2 ▸ This is reality. Upgrades to critical libraries often cause pain. ▸ Our intrepid developer notifies her team lead. ▸ She works to fix issues in the code. ▸ She gets a tiger team together for the same. ▸ Once tests are passing, she shares the new run time and necessary code changes in the _same commit_! ▸ For all other developers, it’s a 5 minute change, and some effort to integrate any work on their branches/ features. ▸ This used to mean developers take hours/days to get up to date because of the bespoke nature of their environment. 34
  • 35. THE DISPOSABLE DEVELOPMENT ENVIRONMENT STEPS TO FIX - TRAGEDY ▸ Sometimes you cannot take on the risk to do the sad path work. ▸ Before, this could mean losing the developer(s) for a week while she re- crafted her bespoke environment. ▸ Now it means: ▸ `git checkout new-branch` ▸ `docker run …` (or `vagrant up`) ▸ Tragic? Yes … goats were sad. ▸ Time consuming? Not nearly as much … 35
  • 36. THE DISPOSABLE DEVELOPMENT ENVIRONMENT THE BIGGER PICTURE ▸ When a necessary upgrade occurs, it can be done quickly and painlessly. ▸ Quick and painless means it will happen more often. ▸ Happening more often means better security. ▸ Developers are contributing to production security, not fighting with their personal environments. ▸ Money/time is saved can be used for better security tooling. 36
  • 37. BUT WAIT … THERE’S MORE Ronco THE DISPOSABLE DEVELOPMENT ENVIRONMENT 37
  • 38. 38
  • 39. THE DISPOSABLE DEVELOPMENT ENVIRONMENT ZOOMING OUT FARTHER ▸ This same thinking can be used for any sort of change. ▸ Disposable development environments is really nothing more than reaping the benefits of standardization and configuration as code. ▸ See Adam Jacobs, Jez Humble or any other Adjutant to the Regional DevOp ▸ Want to try some crazy code to solve a performance issue, but need to tweak the runtime for more memory? ▸ Want to constrain memory to see how your code performs in a simulated situation? ▸ Want to test the addition of firewall rules to each machine (AWS recommended best practice)? ▸ Want to reproduce network segmentation faults to ensure a graceful user experience? 39
  • 40. THE DISPOSABLE DEVELOPMENT ENVIRONMENT INNOVATION COSTS LESS ▸ All of these things are innovations ▸ Disposability is the pinnacle of the, “Fail fast” mentality. ▸ Replace the biggest voice in the room with a functional model and data to make a decision. 40
  • 41. YOU ARE LIMITED BY YOUR IMAGINATION AND LAPTOP MEMORY. Boyd THE DISPOSABLE DEVELOPMENT ENVIRONMENT 41
  • 42. THE DISPOSABLE DEVELOPMENT ENVIRONMENT COLOPHON ▸ A github repo with the all the code and instructions for your to play with: https://goo.gl/dvejTS ▸ The container image with a live security scan from a package perspective: https://goo.gl/qgHzoT ▸ The container image with a live security scan from a CVE perspective: https://goo.gl/B7WE1Z ▸ A blog post coming this week with much of the explanations and thinking written out: https://victorycto.com/blog 42