IAC WITH TERRAFORM Based in Toronto, Canada Goal: Build software - - PowerPoint PPT Presentation

iac with terraform
SMART_READER_LITE
LIVE PREVIEW

IAC WITH TERRAFORM Based in Toronto, Canada Goal: Build software - - PowerPoint PPT Presentation

ARTURO PIE @arturo_pie IAC WITH TERRAFORM Based in Toronto, Canada Goal: Build software that dramatically reduces waste in the global supply chain We serve Kelloggs, P&G, DHL, LOreal and others Software Craftsmanship


slide-1
SLIDE 1

IAC WITH TERRAFORM

ARTURO PIE@arturo_pie

slide-2
SLIDE 2

▸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

slide-3
SLIDE 3

INFRASTRUCTURE

slide-4
SLIDE 4 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"] }
  • wners = ["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 = 5 preferred_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 = 0 to_port = 0 protocol = "-1" id bl k ["0 0 0 0/0"]

INFRASTRU CTURE AS CODE

slide-5
SLIDE 5

ENVIRONMENT

slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

Self-service

slide-10
SLIDE 10
slide-11
SLIDE 11

Self-service Documentation

slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14

Self-service Documentation Speed and safety

slide-15
SLIDE 15
slide-16
SLIDE 16

Self-service Documentation Speed and Safety Version Control

slide-17
SLIDE 17
slide-18
SLIDE 18

Self-service Documentation Speed and Safety Version Control Validation

slide-19
SLIDE 19
slide-20
SLIDE 20

Self-service Documentation Speed and Safety Version Control Validation Reusability

slide-21
SLIDE 21
slide-22
SLIDE 22

Self-service Documentation Speed and safety Version control Validation Reusability Happiness

slide-23
SLIDE 23

Self-service Documentation Speed and safety Version control Validation Reusability Happiness

slide-24
SLIDE 24

INFRASTRUCTURE AS CODE

Maintainability Reusability Testability Security Self-service Documentation Speed and safety Version control Validation Reusability Happiness

slide-25
SLIDE 25
slide-26
SLIDE 26

Ad Hoc Scripts Chef Puppet Ansible SaltStack CloudFormation Heat Terraform

slide-27
SLIDE 27

* Terraform: Up and Running

slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30
slide-31
SLIDE 31

API CALLS TERRAFORM *.TF FILES

slide-32
SLIDE 32
slide-33
SLIDE 33

Source Code https://github.com/arturopie/iac_with_terraform

slide-34
SLIDE 34
slide-35
SLIDE 35
slide-36
SLIDE 36

Q&A

Arturo Pie - @arturo_pie Code is powerful

Source Code https://github.com/arturopie/iac_with_terraform

slide-37
SLIDE 37

Q&A

Arturo Pie - @arturo_pie Code is powerful

Source Code https://github.com/arturopie/iac_with_terraform

slide-38
SLIDE 38

NO SILVER BULLET

Maintainability Reusability Testability Security