102
MATT LONG TESTING PROGRAMMABLE INFRASTRUCTURE

London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long

Embed Size (px)

Citation preview

Page 1: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

MATT LONG

TESTING PROGRAMMABLE INFRASTRUCTURE

Page 2: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

PROGRAMMABLE INFRASTRUCTURE IS GREAT, BUT WE'RE MISSING SOMETHING.

TESTING.

Page 3: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

I'M A TESTERHELLO, I'M MATT

Page 4: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

I WORK HERE ↑

Page 5: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

I AM NOT A SYSADMIN

Page 6: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

WHAT IS PROGRAMMABLE INFRASTRUCTURE?

Page 7: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE APPLICATION OF METHODS AND TOOLING FROM SOFTWARE DEVELOPMENT TO MANAGEMENT OF IT INFRASTRUCTURE

PROGRAMMABLE INFRASTRUCTURE IS..

THE INTERNET

Page 8: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

EXAMPLES OF PROGRAMMABLE INFRASTRUCTURE

▸ Automated provisioning & configuration

▸ Configuration as code

▸ Version / source controlled

Page 9: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TOOLING EXAMPLES

Page 10: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

PROGRAMMABLE INFRASTRUCTURE IS AWESOME!

Credit: Vault Boy, Bethesda Softworks

Page 11: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

IT'S FAST!

Page 12: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

IT'S AUTOMATIC!

Page 13: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

IT'S ALL CODE!

Page 14: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

BUT IT GETS COMPLEX

Page 15: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING IS USED TO MITIGATE COMPLEXITY & RISK

Page 16: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

BUT TESTING IS RARE

Credit: Gunshow, KC Green

Page 17: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

WHAT I'M GOING TO TALK ABOUT

▸PART 1: Testing a cloud broker

▸PART 2: Building a Kubernetes cluster

▸CONCLUSIONS

Page 18: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING A CLOUD BROKER

AN INFRASTRUCTURE HEAVY PRODUCT

Page 19: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THE PROBLEM

Page 20: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

WE WANT TO MOVE TO THE CLOUD...

BUT WE'RE WARY OF LOCK IN

Large organisation

Page 21: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

USERS

USE MULTIPLE CLOUD PROVIDERS

Page 22: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

PROBLEMS

▸ Different interfaces, feature sets & lingo

▸ Can't switch easily

▸ Spending difficult to track

▸ Temptation to fall back on most popular

Page 23: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

USERS

CLOUD BROKER

Page 24: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

BENEFITS

▸Quick, easy provisioning

▸ one team previously took 3 months

▸ Common interface to cloud features

▸ Templates for common dev environments

▸ Built in best practice: monitoring, security

▸ Track spending

Page 25: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THIS IS A REALLY COMPLICATED APPLICATION

Page 26: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

Page 27: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

WORKFLOW

▸ Log into Web UI

▸ Fill in information about environment

▸ Broker creates and bootstraps resources

▸ SSH into resources

Page 28: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

WEB TESTING

▸ Log into Web UI

▸ Fill in information about environment

Page 29: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

???

▸ Broker creates and bootstraps resources

▸ SSH into resources

Page 30: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

HOW DO YOU TEST INFRASTRUCTURE?

Page 31: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

WHAT TO TEST?

Do our deployment scripts work?

Does the VPN server work?

Can instances access one another?

Are services running?

Can I SSH into a server?

Page 32: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THIS SEEMS FAMILIAR..

Page 33: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

Does the VPN box work?Can I SSH into a server?

Do our deployment scripts work?

Are services running?

ANOTHER TESTING PYRAMID?

credit: Ubuntu dev quality guidehttps://developer.ubuntu.com/en/phone/platform/quality/

Can instances access one another?

Page 34: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TOOLING

Page 35: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TOOLS AVAILABLE

▸ Bats

▸ ShUnit2

▸ Goss

▸ ServerSpec / Inspec / TestInfra

▸ Test Kitchen

Page 36: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

UNIT TESTING

Page 37: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

BATS

▸ "Bash Automated Testing System"

▸ Unit testing for bash

▸ Like JUnit

Page 38: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

SH UNIT 2

▸ Shell unit testing framework

▸ Runs on all Bourne shells

▸ sh, BASH, DASH, ksh, zsh

▸ No activity or support?

Page 39: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

INTEGRATION TESTINGOR: SERVER VALIDATION

Page 40: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

GOSS

▸ Go based

▸ Specs in YAML

▸ Minimal, fast, and simple

▸ Some neat features

▸ .. have to run on the server

▸ .. no Windows support

Page 41: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

SERVERSPEC

▸ Server based assertions

▸ Ruby/RSpec based

▸ Probably the most famous

▸ Can SSH into instances

Page 42: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

INSPEC

▸ Written & maintained by Chef

▸ Very similar to ServerSpec

▸ Different feature set

▸ More focused on compliance

Page 43: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TESTINFRA

▸ ServerSpec, but in Python

Page 44: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TEST HARNESS

Page 45: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TEST KITCHEN

▸ Orchestrates setup, test, teardown

▸ Runs BATS, shUnit2, RSpec, Serverspec

▸ Popular in the Chef community

▸ Not suitable for our cloud broker

Page 46: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

OUR SOLUTION

Page 47: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

USERS

CLOUD BROKER

Page 48: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

USERS

WEB TEST FRAMEWORK

Page 49: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

USERS

INFRASTRUCTURE TEST FRAMEWORK

Page 50: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

USERS

WEB TESTS

https://github.com/opencredo/test-automation-quickstart

Page 51: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

INFRASTRUCTURE TESTS

Serverspec

Page 52: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

INFRASTRUCTURE TESTING STACK

/ Serverspec

???

Page 53: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

WHY RUBY?

▸ Fantastic testing community

▸ More suitable for SSHing into boxes

▸ "Win RM" gem

▸ Ops already familiar with it

▸ Reduces tech stack

Page 54: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

SERVERSPEC SMOKE TESTS

▸ Run before everything else

▸ Really quick

▸ Catches obvious errors

▸ Not complex tasks

Page 55: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

SERVERSPEC EXAMPLE

describe package('jenkins') do it { should be_installed } end

describe service('jenkins') do it { should be_enabled } it { should be_running } end

describe port(8080) do it { should be_listening } end

Page 56: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

Background: Given environment has been created And the following user details: | user_alias | username | public_key | | userA | envoy | test |

Scenario: IPA - Login via SSH Key authentication succeeds Given user "userA" is authorised to access environment vms When user "userA" starts ssh session in host "env"

Then I should be able to echo "hello world"

CUCUMBER FOR ACCEPTANCE TESTING

Page 57: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

Background: Given environment has been created And the following user details: | user_alias | username | public_key | | userA | envoy | test |

Scenario: IPA - Login via SSH Key authentication succeeds Given user "userA" is authorised to access environment vms When user "userA" starts ssh session in host "env"

Then I should be able to echo "hello world"

CUCUMBER FOR ACCEPTANCE TESTING

Cloud broker APIs

Page 58: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

Background: Given environment has been created And the following user details: | user_alias | username | public_key | | userA | envoy | test |

Scenario: IPA - Login via SSH Key authentication succeeds Given user "userA" is authorised to access environment vms When user "userA" starts ssh session in host "env"

Then I should be able to echo "hello world"

CUCUMBER FOR ACCEPTANCE TESTING

Standard Ruby

Page 59: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

Background: Given environment has been created And the following user details: | user_alias | username | public_key | | userA | envoy | test |

Scenario: IPA - Login via SSH Key authentication succeeds Given user "userA" is authorised to access environment vms When user "userA" starts ssh session in host "env"

Then I should be able to echo "hello world"

CUCUMBER FOR ACCEPTANCE TESTING

RSpec assertions

Page 60: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

UNDER THE CUCUMBER, PLAIN RUBY

Then(/^I should be able to echo "([^"]*)"$/) do |text| cmd = "echo #{text}" output = @session.exec!(cmd) close_ssh(@session) expect(output.to_s.strip).to eql(text) end

Page 61: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THOUGHTS

Page 62: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE GOOD

▸ Specialised tests for each layer

▸ Really quick, expressive ServerSpec tests

▸ Power of a full programming language for user tests

Page 63: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE BAD

▸ Over reliance on acceptance tests

▸ Awkward switching between two suites

▸ Out of my comfort zone

Page 64: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE UGLY

▸ Starting infrastructure is SLOW.

▸ It's expensive...

Page 65: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

IT WAS WORTH ITDESPITE ALL THAT

Page 66: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

BUILDING A KUBERNETES CLUSTER

APPLYING TDD TO INFRASTRUCTURE

Page 67: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

INTERNAL DEVOPS TRAINING COURSE

Page 68: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

I LEARNED A LOT!

Credit: The Simpsons, Fox

Page 69: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

BUILD THIS:

WITH THESE:

Page 70: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

NOT A STRAIGHTFORWARD TASK

Page 71: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

BUT HOW TO TEST IT?

▸ This is a dev activity

▸ Want fast feedback

▸ Complexity is mitigated by testing!

Page 72: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

▸ Provisions cloud infrastructure

▸ Declarative files

▸ Some support for variables

TERRAFORM

Page 73: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TERRAFORM COMMANDS

▸ terraform plan

▸ Tells you what will change

▸ terraform apply

▸ Applies changes

▸ terraform validate

▸ Lints terraform syntax

Page 74: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TERRAFORM FILE EXAMPLE

resource "aws_instance" "etcd-node" { count = 3

ami = "ami-7abd0209" # centos availability_zone = "eu-west-1a" # ireland instance_type = "t2.micro" subnet_id = .... private_ip = ....

key_name = "${aws_key_pair.my-key.key_name}" }

Page 75: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

LINT WITH 'TERRAFORM VALIDATE' COMMAND

Omitting a variable:

Page 76: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

BUT IT DOESN'T CATCH ALL PROBLEMS

Duplicate subnet CIDRS:

Page 77: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

LINTING ISN'T ENOUGH

▸ Devs don’t just rely on compilers

▸ We need something more powerful

Credit: Nick Cave, "Soundsuit"

Page 78: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

UNIT TESTING

Page 79: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TERRAFORM_VALIDATE

▸ Python based unit testing

▸ NOT to be confused with 'validate' command

▸ Builds map of resources & properties

▸ Totally offline

▸ New and incomplete

https://github.com/elmundio87/terraform_validate

Page 80: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TERRAFORM_VALIDATE FORK

OC has forked the terraform validate repohttps://github.com/opencredo/terraform_validate

Page 81: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

INTEGRATION TESTING

Page 82: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

GOSS

▸ Easy to get up and running

▸ Doesn’t support remote

# example usage: ./goss-test.sh 34.248.91.167

TARGET='centos@'$1 SSH_KEY_PATH=~/.ssh/aws

ssh -t -t -i $SSH_KEY_PATH $TARGET 'curl -fsSL https://goss.rocks/install | sudo sh' scp ./goss.json $TARGET:~/goss.yaml

ssh -t -t -i $SSH_KEY_PATH $TARGET 'goss validate'

https://gist.github.com/burythehammer/081d6ee11cc33c2f4c4729ae67622f5b

Page 83: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

▸ Terraform compatibility

▸ Already a talk about this

▸ “Untangling Infrastructure Code” by Nell Shamrell-Harrington

TEST KITCHEN + INSPEC

Page 84: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TestCreate Config Destroy ]TEST KITCHEN MANAGES YOUR TEST LIFECYCLE

Page 85: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TestCreate Config Destroy

TEST KITCHEN DOESN'T SUPPORT MULTIPLE PROVISIONERS

Page 86: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TEST KITCHEN DOESN'T SUPPORT MULTIPLE PROVISIONERS

https://github.com/test-kitchen/test-kitchen/issues/329

Page 87: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TERRAFORM 'NULL RESOURCE'

resource "null_resource" "ansible" { triggers { instance_ids = "${join(",", aws_instance.etcd-node.*.id)}"

}

provisioner "local-exec" { command = "sleep 20 && cd ../ansible/ && ansible-playbook etcd.yaml" }

}

Page 88: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

TestCreate

Config

Destroy

Page 89: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THOUGHTS

Page 90: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE GOOD

▸ Tooling exists!

▸ You can totally get a test suite working

Credit: Overwatch, Blizzard Entertainment

Page 91: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE BAD

▸ Unit testing extremely immature

▸ Tools immature in general

Credit: Overwatch, Blizzard Entertainment

Page 92: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE HACKY

▸ Be prepared to hack

▸ It might not even be possible

Credit: Overwatch, Blizzard Entertainment

Page 93: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THIS IS BRAND NEW GROUND

REMEMBER:

Page 94: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING TOOLS DEPEND ON YOUR STACK

Page 95: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

CONCLUSIONS

Page 96: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING IS IMPORTANT

BUT OFTEN IGNORED

Page 97: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTERS AND OPS SHOULD WORK TOGETHER

WE NEED TO GET OUT OF OUR COMFORT ZONES

Page 98: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TOOLS EXISTBUT BE PREPARED

TO HACK

Page 99: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

FINALLY...

Page 100: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING PROGRAMMABLE INFRASTRUCTURE

THE APPLICATION OF METHODS AND TOOLING FROM SOFTWARE DEVELOPMENT TO MANAGEMENT OF IT INFRASTRUCTURE

PROGRAMMABLE INFRASTRUCTURE IS..

Page 101: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

TESTING IS A SOFTWARE DEVELOPMENT METHOD

WE SHOULD APPLY IT TO INFRASTRUCTURE

Page 102: London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long

THANKSQUESTIONS?

@burythehammer

[email protected]