SlideShare ist ein Scribd-Unternehmen logo
1 von 27
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.
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)
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

Weitere ähnliche Inhalte

Was ist angesagt?

Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)Docker at Monoco.jp (LinkedIn)
Docker at Monoco.jp (LinkedIn)
Akhmad Fathonih
 
Open source and cross platform .net
Open source and cross platform .netOpen source and cross platform .net
Open source and cross platform .net
Ibon Landa
 

Was ist angesagt? (20)

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

Ähnlich wie Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code

Ähnlich wie Devops Boise - Israel Shirk - Pragmatic Migration to Infrastructure As Code (20)

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

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

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.
  • 10.
  • 11.
  • 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)
  • 16.
  • 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