SlideShare a Scribd company logo
Israel Shirk
Pragmatic
Infrastructure As
Code
Israel Shirk
CTO
Meme Officer In Training
Zerrtech
Israel Shirk
Pragmatic
Infrastructure As
Code
Israel Shirk
CTO
Meme Officer In Training
Zerrtech
That’s a unicorn,
right?
❖ It sounds kind of
impractical because
let’s be honest:
Budget.
It’s a real thing.
And it’s
wonderful.
We’ll just demo
with Apache
The process is basically
the same for other applications
We’ll start with some basic
tooling
❖ Docker
❖ Vagrant
❖ Packer
❖ VMWare
You’ll have to get your
current infrastructure
ready for containers.
Windows Server 2016,
Windows 10, recent Linux with
Docker-compatible kernels.
Gotta do it sometime!
Let’s build an
Apache server by
hand
Check out
Vagrant VM:
bento/ubuntu-16.04
Install Chef/Puppet
and label your
machines
Once you have this in place,
you can use Chef and Puppet
to do your admin stuff day-to-
day. And eventually use it to
build containers.
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Now, we just layer
docker on top of our
current install
We’re not going to reinvent
the wheel, just use the config
management that’s already
there!
Now, we just layer
docker on top of our
current install
We’re not going to reinvent
the wheel, just use the config
management that’s already
there!
And start
orchestrating it with
Kubernetes
Label your nodes and use node
affinity to keep your containers
in place. Deploy with Kargo.
Now we can add cloud-based
services without extra tech debt!
We can just provision a
Kubernetes master
right from Vagrant
This is actual production code
(in this instance we have a
docker build machine right
next to it)
Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code
Now we can implement
cloud-oriented config
management
This is basically a combination
of standardizing service
configuration inside our Docker
containers, and providing any
secrets via Kubernetes
And finally disconnect
from VMs by using
cloud storage backing
Think EBS, GCE, vSphere,
Openstack (for cloud-native)
-or-
Gluster and/or Rook (bare
metal)
Now, we do IAC
on the base VMs
Packer is a fantastic,
wonderful thing. Also, notice
how everything is originating
from a git repo?
Building a Linux
machine with
Kubernetes
Check out
github.com/chef/bento and
just add Kargo to your
provisioner
Building a Windows
base VM with Docker
preinstalled
Check out
https://github.com/StefanScherer/pac
ker-windows
We can even do
IAC for our
hypervisors!
VMware’s distros are redhat
variants, so we can just use a
standard ks.cfg there!
Things we didn’t have time to
demo
❖ Demonstrating the whole chain on private infrastructure:
git post-receive hook -> IAC build script -> automatic deployment to
dev/staging/production
❖ Versioning infrastructure with Git submodules and/or Docker tags (tag
Docker builds with git hash or version; and update Git submodules and
Kubernetes deployment definitions with blessed releases)
❖ Safety in serverspec for testing your servers, containers before they
ship
❖ Integration into Hubot/Slack/etc
❖ Deploying identical VM images from VMWare builder locally to AWS,
GCE, Openstack, Vagrant
Reference
❖ Docker: docker.com
❖ Vagrant: vagrantup.com and vagrantcloud.com for automated builds
❖ Chef Bento: https://github.com/chef/bento
❖ Chef: https://chef.io, Ohai: https://docs.chef.io/ohai.html
❖ Puppet: https://puppet.com/, facter: https://docs.puppet.com/facter/
❖ Packer for Windows: https://github.com/StefanScherer/packer-windows
❖ Kubernetes: kubernetes.io
❖ Deploy Kubernetes with Kargo: https://kubernetes.io/docs/getting-started-guides/kargo/ (now Kubespray)
❖ Kubernetes Services: https://kubernetes.io/docs/concepts/services-networking/service/
❖ Kubernetes Deployments: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
❖ Kubernetes Configuration Maps: https://kubernetes.io/docs/tasks/configure-pod-container/configmap/
You got this.
❖ Keep it easy
❖ Make small, low-risk
transitions
❖ Don’t stop the production
line
Questions
Israel Shirk
israel@zerrtech.com
github.com/israelshirk
Thank you!
Israel Shirk
israel@zerrtech.com
github.com/israelshirk

More Related Content

PPTX
PDF
Continuous delivery with jenkins, docker and exoscale
PDF
Web Applications with Eclipse RT and Docker in the Cloud
PDF
VCCW - Vagrant based WordPress development environment
PPTX
Windows Containers and Docker: Why You Should Care
PDF
GlassFish Embedded API
PDF
Can you contain the future - Docker, Container Technologies, The Future, and You
PDF
Wocker @WordBench Osaka No.41
Continuous delivery with jenkins, docker and exoscale
Web Applications with Eclipse RT and Docker in the Cloud
VCCW - Vagrant based WordPress development environment
Windows Containers and Docker: Why You Should Care
GlassFish Embedded API
Can you contain the future - Docker, Container Technologies, The Future, and You
Wocker @WordBench Osaka No.41

What's hot (20)

PDF
Multi-provider Vagrant and Chef: AWS, VMware, and more
PPTX
Docker, OSS and Azure
PDF
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
PDF
Dev objective2015 lets git together
PDF
Bosh 2-0-reloaded
PPTX
#dddsw - Modernizing .NET Apps with Docker
PDF
OSDC 2019 | Virtualisation in Docker, using KVM as Hypervisor by Kososochukwu...
PDF
"Wix Serverless from inside", Mykola Borozdin
PDF
CI/CD Using Ansible and Jenkins for Infrastructure
PPTX
15 ways-to-optimize-spring-boot-for-the-cloud
PDF
"13 ways to run web applications on the Internet" Andrii Shumada
PPTX
Docker at Monoco.jp (LinkedIn)
PDF
AtlasCamp 2015 Docker continuous integration training
PDF
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
PPTX
WinOps 2017 - Docker on Windows, the Beginner's Guide
PDF
Testing as a container
PDF
Ansible Introduction
PPTX
15-ways-to-optimize-spring-boot-for-the-cloud
PDF
Open source and cross platform .net
PPT
Dockerizing BDD : Ruby-Cucumber Example
Multi-provider Vagrant and Chef: AWS, VMware, and more
Docker, OSS and Azure
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....
Dev objective2015 lets git together
Bosh 2-0-reloaded
#dddsw - Modernizing .NET Apps with Docker
OSDC 2019 | Virtualisation in Docker, using KVM as Hypervisor by Kososochukwu...
"Wix Serverless from inside", Mykola Borozdin
CI/CD Using Ansible and Jenkins for Infrastructure
15 ways-to-optimize-spring-boot-for-the-cloud
"13 ways to run web applications on the Internet" Andrii Shumada
Docker at Monoco.jp (LinkedIn)
AtlasCamp 2015 Docker continuous integration training
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
WinOps 2017 - Docker on Windows, the Beginner's Guide
Testing as a container
Ansible Introduction
15-ways-to-optimize-spring-boot-for-the-cloud
Open source and cross platform .net
Dockerizing BDD : Ruby-Cucumber Example
Ad

Similar to Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code (20)

PDF
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
PDF
Can I Contain This?
PDF
Apt get no more let Vagrant, Puppet and Docker take the stage
PPTX
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
PDF
Docker module 1
PDF
Docker fundamentals
PDF
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
PDF
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
PDF
On demand-block-storage-for-docker
PDF
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
PDF
Docker All The Things - ASP.NET 4.x and Windows Server Containers
PDF
Dockerfiles building docker images automatically v (workdir, env, add, and ...
PDF
BBL Premiers pas avec Docker
PPTX
Detailed Introduction To Docker
PPTX
Docker presentation
PPTX
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
PPTX
Docker Ecosystem on Azure
PDF
Building Python Web Apps with Docker
ODP
DevAssistant, Docker and You
PDF
The path to a serverless-native era with Kubernetes
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Can I Contain This?
Apt get no more let Vagrant, Puppet and Docker take the stage
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Docker module 1
Docker fundamentals
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
On demand-block-storage-for-docker
Oracle Developers APAC Meetup #1 - Working with Wercker Worksheets
Docker All The Things - ASP.NET 4.x and Windows Server Containers
Dockerfiles building docker images automatically v (workdir, env, add, and ...
BBL Premiers pas avec Docker
Detailed Introduction To Docker
Docker presentation
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker Ecosystem on Azure
Building Python Web Apps with Docker
DevAssistant, Docker and You
The path to a serverless-native era with Kubernetes
Ad

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
KodekX | Application Modernization Development
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation theory and applications.pdf
Teaching material agriculture food technology
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KodekX | Application Modernization Development
MYSQL Presentation for SQL database connectivity
Per capita expenditure prediction using model stacking based on satellite ima...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation_ Review paper, used for researhc scholars
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Network Security Unit 5.pdf for BCA BBA.
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation theory and applications.pdf

Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code

  • 1. Israel Shirk Pragmatic Infrastructure As Code Israel Shirk CTO Meme Officer In Training Zerrtech
  • 2. Israel Shirk Pragmatic Infrastructure As Code Israel Shirk CTO Meme Officer In Training Zerrtech
  • 3. That’s a unicorn, right? ❖ It sounds kind of impractical because let’s be honest: Budget.
  • 4. It’s a real thing. And it’s wonderful.
  • 5. We’ll just demo with Apache The process is basically the same for other applications
  • 6. We’ll start with some basic tooling ❖ Docker ❖ Vagrant ❖ Packer ❖ VMWare
  • 7. You’ll have to get your current infrastructure ready for containers. Windows Server 2016, Windows 10, recent Linux with Docker-compatible kernels. Gotta do it sometime!
  • 8. Let’s build an Apache server by hand Check out Vagrant VM: bento/ubuntu-16.04
  • 9. Install Chef/Puppet and label your machines Once you have this in place, you can use Chef and Puppet to do your admin stuff day-to- day. And eventually use it to build containers.
  • 12. Now, we just layer docker on top of our current install We’re not going to reinvent the wheel, just use the config management that’s already there!
  • 13. Now, we just layer docker on top of our current install We’re not going to reinvent the wheel, just use the config management that’s already there!
  • 14. And start orchestrating it with Kubernetes Label your nodes and use node affinity to keep your containers in place. Deploy with Kargo. Now we can add cloud-based services without extra tech debt!
  • 15. We can just provision a Kubernetes master right from Vagrant This is actual production code (in this instance we have a docker build machine right next to it)
  • 17. Now we can implement cloud-oriented config management This is basically a combination of standardizing service configuration inside our Docker containers, and providing any secrets via Kubernetes
  • 18. And finally disconnect from VMs by using cloud storage backing Think EBS, GCE, vSphere, Openstack (for cloud-native) -or- Gluster and/or Rook (bare metal)
  • 19. Now, we do IAC on the base VMs Packer is a fantastic, wonderful thing. Also, notice how everything is originating from a git repo?
  • 20. Building a Linux machine with Kubernetes Check out github.com/chef/bento and just add Kargo to your provisioner
  • 21. Building a Windows base VM with Docker preinstalled Check out https://github.com/StefanScherer/pac ker-windows
  • 22. We can even do IAC for our hypervisors! VMware’s distros are redhat variants, so we can just use a standard ks.cfg there!
  • 23. Things we didn’t have time to demo ❖ Demonstrating the whole chain on private infrastructure: git post-receive hook -> IAC build script -> automatic deployment to dev/staging/production ❖ Versioning infrastructure with Git submodules and/or Docker tags (tag Docker builds with git hash or version; and update Git submodules and Kubernetes deployment definitions with blessed releases) ❖ Safety in serverspec for testing your servers, containers before they ship ❖ Integration into Hubot/Slack/etc ❖ Deploying identical VM images from VMWare builder locally to AWS, GCE, Openstack, Vagrant
  • 24. Reference ❖ Docker: docker.com ❖ Vagrant: vagrantup.com and vagrantcloud.com for automated builds ❖ Chef Bento: https://github.com/chef/bento ❖ Chef: https://chef.io, Ohai: https://docs.chef.io/ohai.html ❖ Puppet: https://puppet.com/, facter: https://docs.puppet.com/facter/ ❖ Packer for Windows: https://github.com/StefanScherer/packer-windows ❖ Kubernetes: kubernetes.io ❖ Deploy Kubernetes with Kargo: https://kubernetes.io/docs/getting-started-guides/kargo/ (now Kubespray) ❖ Kubernetes Services: https://kubernetes.io/docs/concepts/services-networking/service/ ❖ Kubernetes Deployments: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ ❖ Kubernetes Configuration Maps: https://kubernetes.io/docs/tasks/configure-pod-container/configmap/
  • 25. You got this. ❖ Keep it easy ❖ Make small, low-risk transitions ❖ Don’t stop the production line