Skip to content

Latest commit

 

History

History
337 lines (228 loc) · 8.7 KB

PITCHME.md

File metadata and controls

337 lines (228 loc) · 8.7 KB

---?image=assets/img/lego-blocks.jpg @title[Immutable Infrastructure]

@snap[south-west h4-white] @box[bg-orange text-white rounded demo-box-pad](How to create a system of Immutable Infrastructure) @snapend

---?color=#7FDBFF @title[Slides and Code]

Slides

Code

---?image=assets/img/bg/black.jpg&position=left&size=35% 100% @title[What is Immutable Infrastructure?]

@snap[west h4-white]

Question

@snapend

@snap[east span-80]

What is

@css[text-gold text-bold](Immutable Infrastructure )@fa[question]

@snapend

---?image=assets/img/bg/blue.jpg&position=left&size=35% 100% @title[Immutable Infrastructure]

@snap[west h4-white]

Answer

@snapend

@snap[east span-70] @quote[An immutable infrastructure is another infrastructure paradigm in which servers are never modified after they're deployed. If something needs to be updated, fixed, or modified in any way, new servers built from a common image with the appropriate changes are provisioned to replace the old ones. After they're validated, they're put into use and the old ones are decommissioned.](Digital Ocean Tutorial)


@quote[In the old way of doing things, we treat our servers like pets, for example Bob the mail server. If Bob goes down, it’s all hands on deck. The CEO can’t get his email and it’s the end of the world. In the new way, servers are numbered, like cattle in a herd. For example, www001 to www100. When one server goes down, it’s taken out back, shot, and replaced on the line.](Randy Bias)

@size0.5em


@quote[Snowflake servers are similar to pets. They are servers that are managed by hand, frequently updated and tweaked in place, leading to a unique environment.](Digital Ocean Tutorial)

@snap[south] @size0.5em @snapend


@quote[Phoenix servers are similar to cattle. They are servers that are always built from scratch and are easy to recreate, or "rise from the ashes", through automated procedures.](Digital Ocean Tutorial)

@snap[south] @size0.5em @snapend

---?image=assets/img/bg/black.jpg&position=left&size=35% 100% @title[What are the benefits Immutable Infrastructure?]

@snap[west h4-white]

Question

@snapend

@snap[east span-80]

What are the benefits of

@css[text-gold text-bold](Immutable Infrastructure )@fa[question]

@snapend

---?image=assets/img/bg/blue.jpg&position=left&size=35% 100% @title[Immutable Infrastructure]

@snap[west h4-white]

Answer

@snapend

@snap[east span-70] @ul

  • Fewer deployment failures
  • No configuration drift
  • Consistent staging environments
  • Simple rollback and recovery processes @ulend @snapend

---?image=assets/img/bg/black.jpg&position=left&size=35% 100% @title[What is Vagrant?]

@snap[west h4-white]

Question

@snapend

@snap[east span-80]

What is

@csstext-gold text-bold@fa[question]

@snapend

---?image=assets/img/bg/blue.jpg&position=left&size=35% 100% @title[Vagrant]

@snap[west h4-white]

Answer

@snapend

@snap[east span-70] Vagrant Logo

@quote[Vagrant is a tool for building and managing virtual machine environments in a single workflow.](Vagrant website) @snapend

---?code=Vagrantfile&title=Example Vagrantfile @title[Vagrantfile]

@[3-4](Base VM Setup) @[22-27](VM Configuration) @[32-36](Provisioning Scripts)

---?color=beige @title[Demo - Packer]

Demo

Create Vagrant VM

+++?terminal=assets/sessions/vagrant-up.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=vagrant up

---?image=assets/img/bg/black.jpg&position=left&size=35% 100% @title[What is Packer?]

@snap[west h4-white]

Question

@snapend

@snap[east span-80]

What is

@csstext-gold text-bold@fa[question]

@snapend

---?image=assets/img/bg/blue.jpg&position=left&size=35% 100% @title[Packer]

@snap[west h4-white]

Answer

@snapend

@snap[east span-70] Packer Logo

@quote[Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration](Packer website) @snapend

---?code=Demos/2/first_run.json&lang=json&title=Example Packer file @title[Example Packer file]

@[2-6](Packer variables) @[7-13](Packer Builder) @[30-40](Inline PowerShell Provisioner) @[44-53](PowerShell Script Provisioner)

+++?terminal=assets/sessions/packer-validate.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=packer validate

---?color=beige @title[Demo - Packer]

Demo

Run packer to generate Amazon AMI

+++?terminal=assets/sessions/packer-build-aws.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=packer build - Windows on AWS

---?code=Demos/3/first_run.json&lang=json&title=Parallel packer build @title[Parallel packer build]

@[2-8](Packer variables) @[10-27](Amazon EBS Builder) @[28-35](DigitalOcean Builder) @[37-46](Shell Provisioner)

---?color=beige @title[Demo - Packer in Parallel]

Demo

Run packer in parallel

+++?terminal=assets/sessions/packer-build-parallel.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=packer build - Linux on AWS and DigitalOcean

---?code=Demos/4/windows_10.json&lang=json&title=Virtualbox packer build @title[Virtualbox packer build]

@[8-18](Floppy files) @[19-26](Virtualbox provider) @47-54 @[103-114](Packer Variables)

---?color=beige @title[Demo - Packer Virtualbox]

Demo

Generate Virtualbox box

+++?terminal=assets/sessions/packer-build-virtualbox.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=packer build - virtualbox to vagrant

---?image=assets/img/bg/black.jpg&position=left&size=35% 100% @title[What is Terraform?]

@snap[west h4-white]

Question

@snapend

@snap[east span-80]

What is

@csstext-gold text-bold@fa[question]

@snapend

---?image=assets/img/bg/blue.jpg&position=left&size=35% 100% @title[Terraform]

@snap[west h4-white]

Answer

@snapend

@snap[east span-70]

Terraform Logo

@quote[Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently.](Terraform website) @snapend

---?code=Demos/5/variables.tf&title=Terraform Variables @title[Terraform Variables]

---?code=Demos/5/example.tf&title=Example Terraform File @title[Example Terraform file]

@[1-5](Provider definition) @[7-14](Main resource definition) @[16-18](IP Address resource) @[20-22](Output variable)

---?color=beige @title[Demo - Terraform Apply]

Demo

Running Terraform Apply

+++?terminal=assets/sessions/terraform-apply.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=terraform apply

---?color=beige @title[Demo - Terraform Destroy]

Demo

Running Terraform Destroy

+++?terminal=assets/sessions/terraform-destroy.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=terraform destroy

---?color=beige @title[Demo - Vagrant add]

Demo

Adding newly created box to vagrant

+++?terminal=assets/sessions/vagrant-box-add.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=vagrant box add

+++?terminal=assets/sessions/vagrant-up-local.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=vagrant up local

+++?terminal=assets/sessions/vagrant-destroy.cast&theme=solarized-light&color=#7FDBFF&font=medium&title=vagrant destroy

---?color=beige @title[Demo - Bringing it all together]

Demo

Bringing it all together

---?color=#7FDBFF @title[Who Am I? - Gary Ewan Park]

@snap[north-west] Who am I? @snapend

@snap[west span-65] Senior Software Engineer @ Chocolatey Software

Chocolatey MVP Logo Cake Build @snapend

@snap[east span-30] Gary Ewan Park

Gary Ewan Park

@snapend

@snap[south-west bio-contact] @fa[twitter twitter-blue]  gep13      @fa[github text-black]  github.com/gep13      @fa[home text-blue]  gep13.co.uk      @fa[envelope choco-blue]  [email protected] @snapend

---?color=#7FDBFF

@title[Questions]

Questions?

Feel free to get in touch after the talk.

Email: [email protected]

Twitter: @gep13

Web: https://gep13.co.uk

---?color=#7FDBFF @title[Resources]

Resources