👋
T'es qui toi?
@guisim github.com/guisim
Â
Infrastructure as Code
Deploying
infrastructureÂ
manually on-prem
Deploying
infrastructureÂ
manually in AWS
Deploying
infrastructureÂ
with home made scripts
Deploying
infrastructureÂ
with Terraform
AWSTemplateFormatVersion: "2010-09-09"
Description: "Ec2 block device mapping"
Resources:
MyEC2Instance:
Type: "AWS::EC2::Instance"
Properties:
ImageId: "ami-79fd7eee"
KeyName: "testkey"
BlockDeviceMappings:
- DeviceName: "/dev/sdm"
Ebs:
VolumeType: "io1"
Iops: "200"
DeleteOnTermination: "false"
VolumeSize: "20"
- DeviceName: "/dev/sdk"
NoDevice: {}
De quoi ça l'air
base_ec2_private:
provider: ec2-private
image: ami-a609b6d5
size: t2.micro
ssh_username: ubuntu
volumes:
- { size: 10, device: /dev/sdf }
- { size: 300, device: /dev/sdg, type: io1, iops: 3000 }
- { size: 300, device: /dev/sdh, type: io1, iops: 3000 }
tag: {‘env’: ‘test’, ‘role’: ‘redis’}
sync_after_install: grains
script: /etc/salt/cloud.deploy.d/configure_vim.sh
network_interfaces:
- DeviceIndex: 0
PrivateIpAddresses:
- Primary: True
#auto assign public ip (not EIP)
AssociatePublicIpAddress: True
SubnetId: subnet-813d4bbf
SecurityGroupId:
- sg-750af531
del_root_vol_on_destroy: True
del_all_vol_on_destroy: True
De quoi ça l'air
resource "aws_instance" "web" {
ami = "ami-47734a24"
instance_type = "t2.micro"
tags {
Name = "HelloWorld"
}
}
De quoi ça l'air
Pourquoi?
- Simplifier les déploiements
- Faciliter les tests
- Améliorer la stabilité
- Et encore plus!!
Simplifier le déploiement
- Plus besoin de clics
- Réutilisation de code
- Facilité de rollback
- Possibilité de "dry-run" et revue de code
Faciliter les tests
- Déploiement temporaire pour tester
- Déploiement automatique de Pull Request
- Facile de tester un changement d'infra
Améliorer la stabilité
- Plus de mauvaises manipulations
- Infrastructure constante
- Meilleur partage de connaissances
TERRAFORM DEMO
Infrastructure as Code
By Guillaume Simard
Infrastructure as Code
- 1,063