SlideShare a Scribd company logo
The
“Run Anywhere”
Mindset
Michael Mucciarone
About Me
• Grew up in Florida
• Alma Mater: Baylor University
• DevOps Engineer @ Capital One
• Docker & Automation Enthusiast
• Musician
• Video & Effects Editor
• Avid Science Fiction/Fantasy reader
• Gamer
Who is Capital One?
• More than just credit cards (Auto Lending,
Retail Banking, Commercial Banking, etc.).
• Startup in bank years. Still founder lead.
• All in on DevOps.
• We are Cloud first and aggressively moving
into the Cloud.
• Open sourcing some of our own products
(Hygieia / Cloud Custodian). We both leverage
and contribute to open source.
Overview
• What is “Run Anywhere?”
• Benefits of “Run Anywhere”
• How to achieve “Run Anywhere”
• What to do with “Run Anywhere”
What is “Run Anywhere”?
“I want to run. I want to hide.
I want to tear down the walls that hold me inside.”
–U2, Where the Streets Have No Name
Run Anywhere Mindset
•Containers
•Dependencies Included
•Operating System Agnostic
•Hardware Agnostic
•Location Agnostic
Run Anywhere in Practice
•Local for Development
(or demonstrations)
•DEV Environment
•QA / Test / Staging
•Production
Benefits of “Run Anywhere”
“I’ll be here when you are ready to roll with the changes…”
–REO Speedwagon, Roll with the Changes
Development
•Develop completely locally
•Develop disconnected
•Minimize external
development dependencies
•Develop against the target
architecture
•Develop against other
applications
Deployment
•Once Development is complete, package
the code in a Docker Image
•Deployment Flexibility
•Portability
•Server installs simplified
Cost Savings
•More efficient resource
usage
•Better Scaling
•Simplified maintenance
•Lower Licensing costs
How do I achieve “Run Anywhere”
“Carry on my wayward son; There’ll be peace when you are done…”
–Kansas, Carry on Wayward Son
Containerize, Containerize, Containerize…
•Don’t Lift, Shift and Bottle
•Think Microservices
•Enables the “Run Anywhere”
Mindset
•Containerized = Highly Portable
Pay Down Technical Debt
•Tech Debt will slow you
down
•Tech Debt will limit your
run anywhere flexibility
Tech Debt Paydown: Where to Start
•Refactor applications for newer
technologies / languages
•Update Application Dependencies
•Add Health Checks
•Service Discovery
•Consul, Netflix Eureka
•Externalized Configuration
•Etcd, Consul
Review & Refine your CI/CD processes
• Create scripted CI & CD Pipelines
• Pipeline Libraries are your Friend
• Make your build jobs user friendly
• Build your Pipelines for
“somebody else”
Application Builds (CI)
•Remove any unnecessary steps
•Update your build automation tools (Maven,
Gradle, npm, etc )
•Test, test, and test
•Version Every Build
•Script your pipeline
Deployments (CD)
•Remove Unnecessary Steps
•Parameterize your Deployments
•Remove Deployment Friction
•Add Deployment Metadata
•Environment Manifest
•Service Discovery
•Script your pipeline
Image Building Guidelines
•Start with a small Base Image
•Minimize the number of Layers
• Use multi-stage builds
•Exclude files/folders with a
.dockerignore
Image Safety Guidelines
•Only use trusted base
images!
•Pre-scanned for malware
• Docker Trusted Registry
• Xray for Artifactory
• Scanned by Docker Hub
What NOT to do when Building Images
• Don’t install unnecessary packages
• Don’t run SSH/Telnet
• Don’t create large images
• Don’t pass `/` as the build context
• Don’t run as root
• Don’t rely on community images
What do I do once I’ve achieved
“Run Anywhere”?
“Oh, the movie never ends; it goes on and on and on and on…
–Journey, Don’t Stop Believing
Container Deployment Journey
•Start Simple: Instance with a Container
•1 container/instance
•Very Low Risk
•No re-architecting required
•Move up to docker-compose
•Instance with Multiple Containers
•Might be able to eliminate some instances
•Move to a Container Orchestrator
What is an Orchestrator
•Manages Containers
•Usually runs on a Cluster
•Monitors Container Health
•Self-healing
•Provides Load Balancing
•Provides Service Discovery
Container Orchestration Platform Options
•Kubernetes
•Docker Enterprise Edition
•DC/OS from Mesosphere
•Container IaaS
In Summary…
“This was a triumph. I’m making a note here, ‘Huge Success!’
It’s hard to overstate my satisfaction. ”
–GLaDOS, Still Alive, Portal
The Run Anywhere Mindset
•Container with Dependencies
Included
•Benefits of Run Anywhere
•How to achieve Run Anywhere
•What to do after achieving Run
Anywhere
Questions?
“Is this the real life? Is this just fantasy?”
–Queen, Bohemian Rhapsody
Thank You
https://www.linkedin.com/in/michaelmucciarone

More Related Content

What's hot

[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
Rakuten Group, Inc.
 
Tbilisi hackaton intro
Tbilisi hackaton introTbilisi hackaton intro
Tbilisi hackaton intro
Alexey Bokov
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
John Ferringer
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Radhika Puthiyetath
 
Puppet On Windows - Puppet Camp DC 2015
Puppet On Windows - Puppet Camp DC 2015Puppet On Windows - Puppet Camp DC 2015
Puppet On Windows - Puppet Camp DC 2015
Rob Reynolds
 
Software architecture : From project management to deployment
Software architecture : From project management to deploymentSoftware architecture : From project management to deployment
Software architecture : From project management to deployment
Foyzul Karim
 
Greenfield Java 2013
Greenfield Java 2013Greenfield Java 2013
Greenfield Java 2013
Will Iverson
 
It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
DrewAPicture
 
Java CMS 2015
Java CMS 2015Java CMS 2015
Java CMS 2015
Will Iverson
 
Customizing the custom loop wordcamp 2012-jeff
Customizing the custom loop   wordcamp 2012-jeffCustomizing the custom loop   wordcamp 2012-jeff
Customizing the custom loop wordcamp 2012-jeff
Jeff Marx
 
JSON all the way
JSON all the wayJSON all the way
JSON all the way
Ronan Berder
 
360 flex swiz
360 flex swiz360 flex swiz
360 flex swiz
Thao Huynh Khac
 
Harnessing The Power of CDNs
Harnessing The Power of CDNsHarnessing The Power of CDNs
Harnessing The Power of CDNs
Gurpreet Luthra
 
Playing with playgrounds
Playing with playgroundsPlaying with playgrounds
Playing with playgrounds
Eurico Doirado
 
Becoming a more productive Rails Developer
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails Developer
John McCaffrey
 
Core Docs: Sentencing WordPress to 11-years-to-life
Core Docs: Sentencing WordPress to 11-years-to-lifeCore Docs: Sentencing WordPress to 11-years-to-life
Core Docs: Sentencing WordPress to 11-years-to-life
DrewAPicture
 
Git branching
Git branchingGit branching
Git branching
iCapps
 
DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
Rob Reynolds
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara Micro
Payara
 
Why puppet? Why now?
Why puppet? Why now?Why puppet? Why now?
Why puppet? Why now?
Server Density
 

What's hot (20)

[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
 
Tbilisi hackaton intro
Tbilisi hackaton introTbilisi hackaton intro
Tbilisi hackaton intro
 
Intro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developersIntro to SharePoint 2010 development for .NET developers
Intro to SharePoint 2010 development for .NET developers
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
 
Puppet On Windows - Puppet Camp DC 2015
Puppet On Windows - Puppet Camp DC 2015Puppet On Windows - Puppet Camp DC 2015
Puppet On Windows - Puppet Camp DC 2015
 
Software architecture : From project management to deployment
Software architecture : From project management to deploymentSoftware architecture : From project management to deployment
Software architecture : From project management to deployment
 
Greenfield Java 2013
Greenfield Java 2013Greenfield Java 2013
Greenfield Java 2013
 
It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
 
Java CMS 2015
Java CMS 2015Java CMS 2015
Java CMS 2015
 
Customizing the custom loop wordcamp 2012-jeff
Customizing the custom loop   wordcamp 2012-jeffCustomizing the custom loop   wordcamp 2012-jeff
Customizing the custom loop wordcamp 2012-jeff
 
JSON all the way
JSON all the wayJSON all the way
JSON all the way
 
360 flex swiz
360 flex swiz360 flex swiz
360 flex swiz
 
Harnessing The Power of CDNs
Harnessing The Power of CDNsHarnessing The Power of CDNs
Harnessing The Power of CDNs
 
Playing with playgrounds
Playing with playgroundsPlaying with playgrounds
Playing with playgrounds
 
Becoming a more productive Rails Developer
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails Developer
 
Core Docs: Sentencing WordPress to 11-years-to-life
Core Docs: Sentencing WordPress to 11-years-to-lifeCore Docs: Sentencing WordPress to 11-years-to-life
Core Docs: Sentencing WordPress to 11-years-to-life
 
Git branching
Git branchingGit branching
Git branching
 
DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara Micro
 
Why puppet? Why now?
Why puppet? Why now?Why puppet? Why now?
Why puppet? Why now?
 

Similar to The "Run Anywhere" Mindset

Docker First Steps
Docker First StepsDocker First Steps
Docker First Steps
Julian Camargo
 
SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
Will Iverson
 
DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016
Giulio Vian
 
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher PepeStash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Atlassian
 
Docker for developers - The big picture
Docker for developers - The big pictureDocker for developers - The big picture
Docker for developers - The big picture
George Dyrrahitis
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
Christopher Read
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
Eoin Woods
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
Kumar Ashwin
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
Kumar Ashwin
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017
James Strong
 
DevOps intro
DevOps introDevOps intro
DevOps intro
Abdelrhman Shawky
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisions
Trent Hornibrook
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Docker, Inc.
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker
Docker, Inc.
 
Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)
Thomas Shaw
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
SPC Adriatics
 
Component-first Applications
Component-first ApplicationsComponent-first Applications
Component-first Applications
Miguelangel Fernandez
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
Andreas Katzig
 
How to avoid microservice pitfalls
How to avoid microservice pitfallsHow to avoid microservice pitfalls
How to avoid microservice pitfalls
Particular Software
 

Similar to The "Run Anywhere" Mindset (20)

Docker First Steps
Docker First StepsDocker First Steps
Docker First Steps
 
SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
 
DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016
 
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher PepeStash – Taking Expedia to New Heights - David Williams and Christopher Pepe
Stash – Taking Expedia to New Heights - David Williams and Christopher Pepe
 
Docker for developers - The big picture
Docker for developers - The big pictureDocker for developers - The big picture
Docker for developers - The big picture
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
DevOps and AWS - Code PaLOUsa 2017
DevOps and AWS  - Code PaLOUsa 2017DevOps and AWS  - Code PaLOUsa 2017
DevOps and AWS - Code PaLOUsa 2017
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisions
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker
 
Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)Cultural Change using Docker (DockerCon 2015)
Cultural Change using Docker (DockerCon 2015)
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Component-first Applications
Component-first ApplicationsComponent-first Applications
Component-first Applications
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
How to avoid microservice pitfalls
How to avoid microservice pitfallsHow to avoid microservice pitfalls
How to avoid microservice pitfalls
 

More from DevOpsDays DFW

Michael Coté - The Eternal Recurrence of DevOps
Michael Coté - The Eternal Recurrence of DevOpsMichael Coté - The Eternal Recurrence of DevOps
Michael Coté - The Eternal Recurrence of DevOps
DevOpsDays DFW
 
Nigel Thurlow - DevOps is Enterprise Wide.pdf
Nigel Thurlow - DevOps is Enterprise Wide.pdfNigel Thurlow - DevOps is Enterprise Wide.pdf
Nigel Thurlow - DevOps is Enterprise Wide.pdf
DevOpsDays DFW
 
Michael Nygard - Uncoupling
Michael Nygard - UncouplingMichael Nygard - Uncoupling
Michael Nygard - Uncoupling
DevOpsDays DFW
 
Dan Barker - Understanding Risk Can Fund Transformation
Dan Barker - Understanding Risk Can Fund TransformationDan Barker - Understanding Risk Can Fund Transformation
Dan Barker - Understanding Risk Can Fund Transformation
DevOpsDays DFW
 
Vijay Challa - SSO on Cloud - Gateway Approach
Vijay Challa - SSO on Cloud - Gateway ApproachVijay Challa - SSO on Cloud - Gateway Approach
Vijay Challa - SSO on Cloud - Gateway Approach
DevOpsDays DFW
 
Aaron Mell - The Continuous Improvement Toolbox: Post-Mortems
Aaron Mell - The Continuous Improvement Toolbox: Post-MortemsAaron Mell - The Continuous Improvement Toolbox: Post-Mortems
Aaron Mell - The Continuous Improvement Toolbox: Post-Mortems
DevOpsDays DFW
 
Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...
Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...
Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...
DevOpsDays DFW
 
Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...
Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...
Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...
DevOpsDays DFW
 
Bjorn Edwin - Start Your Own DevOps Dojo in 8 Simple Steps
Bjorn Edwin - Start Your Own DevOps Dojo in 8 Simple StepsBjorn Edwin - Start Your Own DevOps Dojo in 8 Simple Steps
Bjorn Edwin - Start Your Own DevOps Dojo in 8 Simple Steps
DevOpsDays DFW
 
Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'
Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'
Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'
DevOpsDays DFW
 
Dana Finster - DevOps - Do the Math
Dana Finster - DevOps - Do the MathDana Finster - DevOps - Do the Math
Dana Finster - DevOps - Do the Math
DevOpsDays DFW
 
Detangling complex systems with compassion & production excellence
Detangling complex systems with compassion & production excellenceDetangling complex systems with compassion & production excellence
Detangling complex systems with compassion & production excellence
DevOpsDays DFW
 
Speeding Up Innovation
Speeding Up InnovationSpeeding Up Innovation
Speeding Up Innovation
DevOpsDays DFW
 
DevOps Theory vs. Practice: A Song of Ice and Tire-Fire
DevOps Theory vs. Practice: A Song of Ice and Tire-FireDevOps Theory vs. Practice: A Song of Ice and Tire-Fire
DevOps Theory vs. Practice: A Song of Ice and Tire-Fire
DevOpsDays DFW
 
Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'
DevOpsDays DFW
 
Stepping Up Your DevOps With Step Functions
Stepping Up Your DevOps With Step FunctionsStepping Up Your DevOps With Step Functions
Stepping Up Your DevOps With Step Functions
DevOpsDays DFW
 
DevSecOps Through Blunt Force Trauma, I'm the Trauma
DevSecOps Through Blunt Force Trauma, I'm the TraumaDevSecOps Through Blunt Force Trauma, I'm the Trauma
DevSecOps Through Blunt Force Trauma, I'm the Trauma
DevOpsDays DFW
 
Avoid the Distributed Monolith!!
Avoid the Distributed Monolith!!Avoid the Distributed Monolith!!
Avoid the Distributed Monolith!!
DevOpsDays DFW
 
Using Docker to Build Software
Using Docker to Build SoftwareUsing Docker to Build Software
Using Docker to Build Software
DevOpsDays DFW
 
Managing Cloud Infrastructure at Scale
Managing Cloud Infrastructure at ScaleManaging Cloud Infrastructure at Scale
Managing Cloud Infrastructure at Scale
DevOpsDays DFW
 

More from DevOpsDays DFW (20)

Michael Coté - The Eternal Recurrence of DevOps
Michael Coté - The Eternal Recurrence of DevOpsMichael Coté - The Eternal Recurrence of DevOps
Michael Coté - The Eternal Recurrence of DevOps
 
Nigel Thurlow - DevOps is Enterprise Wide.pdf
Nigel Thurlow - DevOps is Enterprise Wide.pdfNigel Thurlow - DevOps is Enterprise Wide.pdf
Nigel Thurlow - DevOps is Enterprise Wide.pdf
 
Michael Nygard - Uncoupling
Michael Nygard - UncouplingMichael Nygard - Uncoupling
Michael Nygard - Uncoupling
 
Dan Barker - Understanding Risk Can Fund Transformation
Dan Barker - Understanding Risk Can Fund TransformationDan Barker - Understanding Risk Can Fund Transformation
Dan Barker - Understanding Risk Can Fund Transformation
 
Vijay Challa - SSO on Cloud - Gateway Approach
Vijay Challa - SSO on Cloud - Gateway ApproachVijay Challa - SSO on Cloud - Gateway Approach
Vijay Challa - SSO on Cloud - Gateway Approach
 
Aaron Mell - The Continuous Improvement Toolbox: Post-Mortems
Aaron Mell - The Continuous Improvement Toolbox: Post-MortemsAaron Mell - The Continuous Improvement Toolbox: Post-Mortems
Aaron Mell - The Continuous Improvement Toolbox: Post-Mortems
 
Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...
Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...
Steve Shangguan - The Unreasonable Effectiveness of Combining and Correlating...
 
Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...
Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...
Farrah Campbell - Open Mind, Open Doors. Change your narrative and achieve wh...
 
Bjorn Edwin - Start Your Own DevOps Dojo in 8 Simple Steps
Bjorn Edwin - Start Your Own DevOps Dojo in 8 Simple StepsBjorn Edwin - Start Your Own DevOps Dojo in 8 Simple Steps
Bjorn Edwin - Start Your Own DevOps Dojo in 8 Simple Steps
 
Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'
Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'
Crux Conception - 'TECH-LIVES MATTER, HANDS UP, DON'T REBOOT'
 
Dana Finster - DevOps - Do the Math
Dana Finster - DevOps - Do the MathDana Finster - DevOps - Do the Math
Dana Finster - DevOps - Do the Math
 
Detangling complex systems with compassion & production excellence
Detangling complex systems with compassion & production excellenceDetangling complex systems with compassion & production excellence
Detangling complex systems with compassion & production excellence
 
Speeding Up Innovation
Speeding Up InnovationSpeeding Up Innovation
Speeding Up Innovation
 
DevOps Theory vs. Practice: A Song of Ice and Tire-Fire
DevOps Theory vs. Practice: A Song of Ice and Tire-FireDevOps Theory vs. Practice: A Song of Ice and Tire-Fire
DevOps Theory vs. Practice: A Song of Ice and Tire-Fire
 
Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'Hidden Costs of Chasing the Mythical 'Five Nines'
Hidden Costs of Chasing the Mythical 'Five Nines'
 
Stepping Up Your DevOps With Step Functions
Stepping Up Your DevOps With Step FunctionsStepping Up Your DevOps With Step Functions
Stepping Up Your DevOps With Step Functions
 
DevSecOps Through Blunt Force Trauma, I'm the Trauma
DevSecOps Through Blunt Force Trauma, I'm the TraumaDevSecOps Through Blunt Force Trauma, I'm the Trauma
DevSecOps Through Blunt Force Trauma, I'm the Trauma
 
Avoid the Distributed Monolith!!
Avoid the Distributed Monolith!!Avoid the Distributed Monolith!!
Avoid the Distributed Monolith!!
 
Using Docker to Build Software
Using Docker to Build SoftwareUsing Docker to Build Software
Using Docker to Build Software
 
Managing Cloud Infrastructure at Scale
Managing Cloud Infrastructure at ScaleManaging Cloud Infrastructure at Scale
Managing Cloud Infrastructure at Scale
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

The "Run Anywhere" Mindset

  • 2. About Me • Grew up in Florida • Alma Mater: Baylor University • DevOps Engineer @ Capital One • Docker & Automation Enthusiast • Musician • Video & Effects Editor • Avid Science Fiction/Fantasy reader • Gamer
  • 3. Who is Capital One? • More than just credit cards (Auto Lending, Retail Banking, Commercial Banking, etc.). • Startup in bank years. Still founder lead. • All in on DevOps. • We are Cloud first and aggressively moving into the Cloud. • Open sourcing some of our own products (Hygieia / Cloud Custodian). We both leverage and contribute to open source.
  • 4. Overview • What is “Run Anywhere?” • Benefits of “Run Anywhere” • How to achieve “Run Anywhere” • What to do with “Run Anywhere”
  • 5. What is “Run Anywhere”? “I want to run. I want to hide. I want to tear down the walls that hold me inside.” –U2, Where the Streets Have No Name
  • 6. Run Anywhere Mindset •Containers •Dependencies Included •Operating System Agnostic •Hardware Agnostic •Location Agnostic
  • 7. Run Anywhere in Practice •Local for Development (or demonstrations) •DEV Environment •QA / Test / Staging •Production
  • 8. Benefits of “Run Anywhere” “I’ll be here when you are ready to roll with the changes…” –REO Speedwagon, Roll with the Changes
  • 9. Development •Develop completely locally •Develop disconnected •Minimize external development dependencies •Develop against the target architecture •Develop against other applications
  • 10. Deployment •Once Development is complete, package the code in a Docker Image •Deployment Flexibility •Portability •Server installs simplified
  • 11. Cost Savings •More efficient resource usage •Better Scaling •Simplified maintenance •Lower Licensing costs
  • 12. How do I achieve “Run Anywhere” “Carry on my wayward son; There’ll be peace when you are done…” –Kansas, Carry on Wayward Son
  • 13. Containerize, Containerize, Containerize… •Don’t Lift, Shift and Bottle •Think Microservices •Enables the “Run Anywhere” Mindset •Containerized = Highly Portable
  • 14. Pay Down Technical Debt •Tech Debt will slow you down •Tech Debt will limit your run anywhere flexibility
  • 15. Tech Debt Paydown: Where to Start •Refactor applications for newer technologies / languages •Update Application Dependencies •Add Health Checks •Service Discovery •Consul, Netflix Eureka •Externalized Configuration •Etcd, Consul
  • 16. Review & Refine your CI/CD processes • Create scripted CI & CD Pipelines • Pipeline Libraries are your Friend • Make your build jobs user friendly • Build your Pipelines for “somebody else”
  • 17. Application Builds (CI) •Remove any unnecessary steps •Update your build automation tools (Maven, Gradle, npm, etc ) •Test, test, and test •Version Every Build •Script your pipeline
  • 18. Deployments (CD) •Remove Unnecessary Steps •Parameterize your Deployments •Remove Deployment Friction •Add Deployment Metadata •Environment Manifest •Service Discovery •Script your pipeline
  • 19. Image Building Guidelines •Start with a small Base Image •Minimize the number of Layers • Use multi-stage builds •Exclude files/folders with a .dockerignore
  • 20. Image Safety Guidelines •Only use trusted base images! •Pre-scanned for malware • Docker Trusted Registry • Xray for Artifactory • Scanned by Docker Hub
  • 21. What NOT to do when Building Images • Don’t install unnecessary packages • Don’t run SSH/Telnet • Don’t create large images • Don’t pass `/` as the build context • Don’t run as root • Don’t rely on community images
  • 22. What do I do once I’ve achieved “Run Anywhere”? “Oh, the movie never ends; it goes on and on and on and on… –Journey, Don’t Stop Believing
  • 23. Container Deployment Journey •Start Simple: Instance with a Container •1 container/instance •Very Low Risk •No re-architecting required •Move up to docker-compose •Instance with Multiple Containers •Might be able to eliminate some instances •Move to a Container Orchestrator
  • 24. What is an Orchestrator •Manages Containers •Usually runs on a Cluster •Monitors Container Health •Self-healing •Provides Load Balancing •Provides Service Discovery
  • 25. Container Orchestration Platform Options •Kubernetes •Docker Enterprise Edition •DC/OS from Mesosphere •Container IaaS
  • 26. In Summary… “This was a triumph. I’m making a note here, ‘Huge Success!’ It’s hard to overstate my satisfaction. ” –GLaDOS, Still Alive, Portal
  • 27. The Run Anywhere Mindset •Container with Dependencies Included •Benefits of Run Anywhere •How to achieve Run Anywhere •What to do after achieving Run Anywhere
  • 28. Questions? “Is this the real life? Is this just fantasy?” –Queen, Bohemian Rhapsody