ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author:...

38
IAC WITH TERRAFORM ARTURO PIE @arturo_pie

Transcript of ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author:...

Page 1: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

IAC WITH TERRAFORM

ARTURO PIE@arturo_pie

Page 2: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

▸Based in Toronto, Canada

▸Goal: Build software that dramatically reduces waste in the global supply chain

▸We serve Kelloggs, P&G, DHL, L’Oreal and others

▸Software Craftsmanship

▸Learning organization

▸Modern Agile methodology

▸TDD and pair programming

Page 3: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

INFRASTRUCTURE

Page 4: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

provider "aws" {region = "us-west-2"

}

resource "aws_vpc" "main" {cidr_block = "10.0.0.0/16"

}

data "aws_ami" "ubuntu" {most_recent = true

filter {name = "name"values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-*"]

}

filter {name = "virtualization-type"values = ["hvm"]

}

owners = ["099720109477"] # Canonical}

resource "aws_instance" "web" {ami = "${data.aws_ami.ubuntu.id}"instance_type = "t2.large"security_groups = ["${aws_security_group.allow_all.id}"]

tags {Name = "HelloWorld"

}}

resource "aws_rds_cluster" "postgresql" {cluster_identifier = "aurora-cluster-demo"engine = "aurora-postgresql"availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]database_name = "mydb"master_username = "foo"master_password = "bar"backup_retention_period = 5preferred_backup_window = "07:00-09:00"

}

resource "aws_security_group" "allow_all" {name = "allow_all"description = "Allow all inbound traffic"vpc_id = "${aws_vpc.main.id}"

ingress {from_port = 0to_port = 0protocol = "-1"id bl k ["0 0 0 0/0"]

INFRASTRUCTURE AS CODE

Page 5: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

ENVIRONMENT

Page 6: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 7: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 8: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 9: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Page 10: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 11: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Page 12: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 13: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 14: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Speed and safety

Page 15: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 16: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Speed and Safety

Version Control

Page 17: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 18: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Speed and Safety

Version Control

Validation

Page 19: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 20: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Speed and Safety

Version Control

Validation

Reusability

Page 21: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 22: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Speed and safety

Version control

Validation

Reusability

Happiness

Page 23: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Self-service

Documentation

Speed and safety

Version control

Validation

Reusability

Happiness

Page 24: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

INFRASTRUCTURE AS CODE

Maintainability

Reusability

Testability

Security

Self-service

Documentation

Speed and safety

Version control

Validation

Reusability

Happiness

Page 25: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 26: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Ad Hoc Scripts

Chef

Puppet

AnsibleSaltStack

CloudFormation

Heat

Terraform

Page 27: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

* Terraform: Up and Running

Page 28: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 29: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 30: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 31: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

API CALLSTERRAFORM*.TF FILES

Page 32: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 33: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Source Codehttps://github.com/arturopie/iac_with_terraform

Page 34: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 35: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial
Page 36: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Q&AArturo Pie - @arturo_pie

Code is powerful

Source Codehttps://github.com/arturopie/iac_with_terraform

Page 37: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

Q&AArturo Pie - @arturo_pie

Code is powerful

Source Codehttps://github.com/arturopie/iac_with_terraform

Page 38: ARTURO PIE IAC WITH TERRAFORM - SEI Digital LibraryInfrastructure as Code with Terraform Author: Arturo Pie (Nulogy) Subject: Writing infrastructure as code is a considerable initial

NO SILVER BULLET

Maintainability ReusabilityTestabilitySecurity