SlideShare a Scribd company logo
Scaling Terraform
From Startup to Enterprise
OUR
Ideato and Extrategy have now
become Flowing: an inclusive
community of people who share a
passion for innovation and a need to
keep things moving. We have come
together to form a new entity and to
partner with those who share our
values, so we can continue to grow
day by day.
PEOPLE
WE DEVELOP DIGITAL
PROJECT TOGETHER
WITH YOU.
Scaling Terraform
● Intro
● What is Terraform
● 4 Stages of Adoption
● Stage Next
Scaling Terraform
● Intro
● What is Terraform
● 4 Stages of Adoption
● Stage Next
From Infrastructure Services to multiple Cloud
Not IaaS services Cloud providerVirtualization and IaaS
Cloudflare
UltraDNS
Fastly
BitBucket
Datadog
(and more…)
Amazon
Google Cloud
Microsoft Azure
DigitalOcean
Alibaba Cloud
(and more…)
OpenStack
OpenNebula
VMware vCloud
Softlayer
Cloudstack
(and more…)
Pro Cons
● Multiple Provider
● Low learning curve
● Declarative HCL language, not
procedural code
● Dry runs
● Infrastructure versioning
● Terraform Registry
● No rolling upgrades*
● HCL Limitations (logic, loops)*
● Not “Drift detection”*
Scaling Terraform
● Intro
● What is Terraform
● 4 Stages of Adoption
○ Stage 1 Manual
○ Stage 2 Semi Automated
○ Stage 3
○ Stage 4
● Stage Next
4 Stage of Adoption
Stage 1
Scaling Terraform - Stage 1 Manual
● Web Consoles / Manual CLI
● Single environment(s)
● Mutable Infrastructure (Pets server)
Scaling Terraform - Stage 1 Manual
● Web Consoles / Manual CLI
● Single environment(s)
● Mutable Infrastructure (Pets server)
● “Infrastructure as Code”
Scaling Terraform - Stage 1 Manual
● Web Consoles / Manual CLI
● Single environment(s)
● Mutable Infrastructure (Pets server)
● “Infrastructure as Code” ops.txt
● ….
● Not using any
Terraform is the
first step to using a
lot of Terraform
Scaling Terraform - Stage 1 Manual
Technical Operational
Reproducibility Auditing
Change Management Consistency
Architecture Knowledge Sharing
Scaling Terraform - Stage 1 Manual
Technical Operational
Reproducibility Auditing
Change Management Consistency
Architecture Knowledge Sharing
Scaling Terraform - Stage 1 Manual
● Intro
● What is Terraform
● 4 Stages of Adoption
○ Stage 1 Manual
○ Stage 2 Semi automated
○ Stage 3
○ Stage 4
● Stage Next
Stage 2 - Semi automated
Scaling Terraform - Stage 2 Semi automated
● Adopting Infrastructure As Code (also Dockerfiles)
● Machine images (also playbooks and others / Packer)
● Web Consoles
● Introduce Terraform!
○ Configuration!
○ Automation!
○ Iteration!
Modeling Infrastructure with Configuration
● Plan, Apply, Iterate
Scaling Terraform - Stage 2 Semi automated
Technical Operational
Reproducibility Auditing
Change Management Consistency
Architecture Knowledge Sharing
Scaling Terraform - Stage 2 Semi automated
Technical Operational
Reproducibility Auditing
Change Management Consistency
Architecture Knowledge Sharing
State management Operations
Let’s “import” our
infrastructure
Scaling Terraform - Stage 2 Semi automated
Scaling Terraform - Stage 2 Semi automated
$ cat ec2_instance.tf
resource "aws_instance" "prod_ec2" {
# ...instance configuration...
}
$ terraform import aws_instance.prod_ec2 i-abcd1234
Scaling Terraform - Stage 2 Semi automated
Scaling Terraform
● Intro
● What is Terraform
● 4 Stages of Adoption
○ Stage 1 Manual
○ Stage 2 Semi automated
○ Stage 3
○ Stage 4
● Stage Next
Stage 3
● Workspaces
● Packaged Components
● Modules
● Inputs and Outputs
● Config Mgmt Hooks
Scaling Terraform - Stage 3
● Organizational adoption
● Multiple Environments
● Collaboration
● Version Control
Scaling Terraform - Stage 3
● Organizational adoption
● Multiple Environments (Workspaces)
Scaling Terraform - Stage 3
● Organizational adoption
● Multiple Environments (Workspaces)
$ terraform workspace new staging
You're now on a new, empty workspace. Workspaces isolate
their state, so if you run "terraform plan" Terraform
will not see any existing state for this configuration.
Scaling Terraform - Stage 3
● Organizational adoption
● Multiple Environments (Workspaces) - separate state files
●
resource "aws_instance" "example" {
count = "${terraform.workspace == "prod" ? 5 : 1}"
# … other params
}
Scaling Terraform - Stage 3
● Organizational adoption
● Multiple Environments (Workspaces) - separate state files
resource "aws_vpc" "mycompany_vpc" {
name = "VPC ${terraform.workspace == "default" ?
“Prod” : “Staging”}"
# … other params
}
● Workspaces
● Packaged Components
Scaling Terraform - Stage 3
● Workspaces
● Packaged Components
● Modules
Scaling Terraform - Stage 3
Scaling Terraform - Stage 3
$ tree base-mod/
├── README.md
├── main.tf
└── variables.tf
└── outputs.tf
● Version control (PR)
● Remote state
Scaling Terraform - Stage 3
Technical Operational
Reproducibility Auditing
Change Management Consistency
Architecture Knowledge Sharing
State management Operations
Scaling Terraform - Stage 3
Technical Operational
Reproducibility Auditing
Change Management Consistency
Architecture Knowledge Sharing
State management Operations
Scaling Terraform - Stage 3
● Intro
● What is Terraform
● 4 Stages of Adoption
○ Stage 1 Manual
○ Stage 2 Semi automated
○ Stage 3
○ Stage 4
● Stage Next
Stage 4
● VCS Integration
● Team permissions
● “Run Terraform for me”
Developer
“I need to create new VMs
for my new env; but i don’t
know yet how many”
Operations
“Ok, it’s not a problem!”
Scaling Terraform - Stage 4
Operations
Create new Reservation
(Scheduled Reserved or Convertible)
Create new IAM and assign permission for this RI
Restrict IAM Policy for using RI and EC2 family
Scaling Terraform - Stage 4
Developers
Configure AWS CLI with IAM user
Create Terraform module for EC2 resources
Terraform Enterprise
Terraform Enterprise
“Run Terraform for me”
Scaling Terraform - Stage 4
Scaling Terraform - Stage 4
Grazie!
Paolo Tonin
Cloud & DevOps
paolo.tonin@flowing.it

More Related Content

What's hot

Terraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerTerraform Abstractions for Safety and Power
Terraform Abstractions for Safety and Power
Calvin French-Owen
 
Terraform in deployment pipeline
Terraform in deployment pipelineTerraform in deployment pipeline
Terraform in deployment pipeline
Anton Babenko
 
Terraform
TerraformTerraform
Terraform
Adam Vincze
 
Terraform in action
Terraform in actionTerraform in action
Terraform in action
Damien Pacaud
 
Terraform - Taming Modern Clouds
Terraform  - Taming Modern CloudsTerraform  - Taming Modern Clouds
Terraform - Taming Modern Clouds
Nic Jackson
 
Terraform at Scale
Terraform at ScaleTerraform at Scale
Terraform at Scale
Calvin French-Owen
 
Building infrastructure as code using Terraform - DevOps Krakow
Building infrastructure as code using Terraform - DevOps KrakowBuilding infrastructure as code using Terraform - DevOps Krakow
Building infrastructure as code using Terraform - DevOps Krakow
Anton Babenko
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modules
Yevgeniy Brikman
 
Intro to Terraform
Intro to TerraformIntro to Terraform
Intro to Terraform
Josh Michielsen
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Stephane Jourdan
 
Terraform
TerraformTerraform
Terraform
Phil Wilkins
 
Terraform Q&A - HashiCorp User Group Oslo
Terraform Q&A - HashiCorp User Group OsloTerraform Q&A - HashiCorp User Group Oslo
Terraform Q&A - HashiCorp User Group Oslo
Anton Babenko
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & Introduction
Lee Trout
 
Refactoring terraform
Refactoring terraformRefactoring terraform
Refactoring terraform
Nell Shamrell-Harrington
 
Case Study: Using Terraform and Packer to deploy go applications to AWS
Case Study: Using Terraform and Packer to deploy go applications to AWSCase Study: Using Terraform and Packer to deploy go applications to AWS
Case Study: Using Terraform and Packer to deploy go applications to AWS
Patrick Bolduan
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
Jason Vance
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices
Nebulaworks
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
TomStraub5
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Adin Ermie
 
Infrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformInfrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using Terraform
Adin Ermie
 

What's hot (20)

Terraform Abstractions for Safety and Power
Terraform Abstractions for Safety and PowerTerraform Abstractions for Safety and Power
Terraform Abstractions for Safety and Power
 
Terraform in deployment pipeline
Terraform in deployment pipelineTerraform in deployment pipeline
Terraform in deployment pipeline
 
Terraform
TerraformTerraform
Terraform
 
Terraform in action
Terraform in actionTerraform in action
Terraform in action
 
Terraform - Taming Modern Clouds
Terraform  - Taming Modern CloudsTerraform  - Taming Modern Clouds
Terraform - Taming Modern Clouds
 
Terraform at Scale
Terraform at ScaleTerraform at Scale
Terraform at Scale
 
Building infrastructure as code using Terraform - DevOps Krakow
Building infrastructure as code using Terraform - DevOps KrakowBuilding infrastructure as code using Terraform - DevOps Krakow
Building infrastructure as code using Terraform - DevOps Krakow
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modules
 
Intro to Terraform
Intro to TerraformIntro to Terraform
Intro to Terraform
 
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
Using Terraform.io (Human Talks Montpellier, Epitech, 2014/09/09)
 
Terraform
TerraformTerraform
Terraform
 
Terraform Q&A - HashiCorp User Group Oslo
Terraform Q&A - HashiCorp User Group OsloTerraform Q&A - HashiCorp User Group Oslo
Terraform Q&A - HashiCorp User Group Oslo
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & Introduction
 
Refactoring terraform
Refactoring terraformRefactoring terraform
Refactoring terraform
 
Case Study: Using Terraform and Packer to deploy go applications to AWS
Case Study: Using Terraform and Packer to deploy go applications to AWSCase Study: Using Terraform and Packer to deploy go applications to AWS
Case Study: Using Terraform and Packer to deploy go applications to AWS
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
 
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
 
Infrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformInfrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using Terraform
 

Similar to Scaling terraform

Terraforming your Infrastructure on GCP
Terraforming your Infrastructure on GCPTerraforming your Infrastructure on GCP
Terraforming your Infrastructure on GCP
Samuel Chow
 
Introduction to IAC and Terraform
Introduction to IAC and Terraform Introduction to IAC and Terraform
Introduction to IAC and Terraform
Venkat NaveenKashyap Devulapally
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
markgrover
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
smalltown
 
CDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaCCDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaC
smalltown
 
Terraform in production - experiences, best practices and deep dive- Piotr Ki...
Terraform in production - experiences, best practices and deep dive- Piotr Ki...Terraform in production - experiences, best practices and deep dive- Piotr Ki...
Terraform in production - experiences, best practices and deep dive- Piotr Ki...
PROIDEA
 
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfHashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
ssuser705051
 
Terraform-2.pdf
Terraform-2.pdfTerraform-2.pdf
Terraform-2.pdf
rutiksankapal21
 
Azure enterprise integration platform
Azure enterprise integration platformAzure enterprise integration platform
Azure enterprise integration platform
Michael Stephenson
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Spark Summit
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
Yaniv cohen
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
Vlad Fedosov
 
NetApp Online Training.pdf
NetApp Online Training.pdfNetApp Online Training.pdf
NetApp Online Training.pdf
SpiritsoftsTraining
 
Madrid meetup #7 deployment models
Madrid meetup #7   deployment modelsMadrid meetup #7   deployment models
Madrid meetup #7 deployment models
Mario Alberto Martinez Lopez
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
DoiT International
 
Declarative Infrastructure Tools
Declarative Infrastructure Tools Declarative Infrastructure Tools
Declarative Infrastructure Tools
Yulia Shcherbachova
 
Terraform: Infrastructure as Code
Terraform: Infrastructure as CodeTerraform: Infrastructure as Code
Terraform: Infrastructure as Code
Pradeep Bhadani
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
Databricks
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
Haggai Philip Zagury
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
Ludovic Piot
 

Similar to Scaling terraform (20)

Terraforming your Infrastructure on GCP
Terraforming your Infrastructure on GCPTerraforming your Infrastructure on GCP
Terraforming your Infrastructure on GCP
 
Introduction to IAC and Terraform
Introduction to IAC and Terraform Introduction to IAC and Terraform
Introduction to IAC and Terraform
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps WayDevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
DevOpsDays Taipei 2019 - Mastering IaC the DevOps Way
 
CDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaCCDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaC
 
Terraform in production - experiences, best practices and deep dive- Piotr Ki...
Terraform in production - experiences, best practices and deep dive- Piotr Ki...Terraform in production - experiences, best practices and deep dive- Piotr Ki...
Terraform in production - experiences, best practices and deep dive- Piotr Ki...
 
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfHashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
 
Terraform-2.pdf
Terraform-2.pdfTerraform-2.pdf
Terraform-2.pdf
 
Azure enterprise integration platform
Azure enterprise integration platformAzure enterprise integration platform
Azure enterprise integration platform
 
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-MallaKerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
Kerberizing Spark: Spark Summit East talk by Abel Rincon and Jorge Lopez-Malla
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
NetApp Online Training.pdf
NetApp Online Training.pdfNetApp Online Training.pdf
NetApp Online Training.pdf
 
Madrid meetup #7 deployment models
Madrid meetup #7   deployment modelsMadrid meetup #7   deployment models
Madrid meetup #7 deployment models
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Declarative Infrastructure Tools
Declarative Infrastructure Tools Declarative Infrastructure Tools
Declarative Infrastructure Tools
 
Terraform: Infrastructure as Code
Terraform: Infrastructure as CodeTerraform: Infrastructure as Code
Terraform: Infrastructure as Code
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 

Recently uploaded

制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
cuobya
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
uehowe
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
xjq03c34
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
bseovas
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
Danica Gill
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
davidjhones387
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
wolfsoftcompanyco
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
cuobya
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
Toptal Tech
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
ukwwuq
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
Paul Walk
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
bseovas
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
uehowe
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 

Recently uploaded (20)

制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
制作毕业证书(ANU毕业证)莫纳什大学毕业证成绩单官方原版办理
 
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
留学挂科(UofM毕业证)明尼苏达大学毕业证成绩单复刻办理
 
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
办理新西兰奥克兰大学毕业证学位证书范本原版一模一样
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
留学学历(UoA毕业证)奥克兰大学毕业证成绩单官方原版办理
 
7 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 20247 Best Cloud Hosting Services to Try Out in 2024
7 Best Cloud Hosting Services to Try Out in 2024
 
Discover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to IndiaDiscover the benefits of outsourcing SEO to India
Discover the benefits of outsourcing SEO to India
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalmanuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
manuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal
 
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
可查真实(Monash毕业证)西澳大学毕业证成绩单退学买
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!Ready to Unlock the Power of Blockchain!
Ready to Unlock the Power of Blockchain!
 
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
制作原版1:1(Monash毕业证)莫纳什大学毕业证成绩单办理假
 
Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?Should Repositories Participate in the Fediverse?
Should Repositories Participate in the Fediverse?
 
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
不能毕业如何获得(USYD毕业证)悉尼大学毕业证成绩单一比一原版制作
 
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
办理毕业证(UPenn毕业证)宾夕法尼亚大学毕业证成绩单快速办理
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 

Scaling terraform

  • 2. OUR Ideato and Extrategy have now become Flowing: an inclusive community of people who share a passion for innovation and a need to keep things moving. We have come together to form a new entity and to partner with those who share our values, so we can continue to grow day by day. PEOPLE
  • 3. WE DEVELOP DIGITAL PROJECT TOGETHER WITH YOU.
  • 4. Scaling Terraform ● Intro ● What is Terraform ● 4 Stages of Adoption ● Stage Next
  • 5. Scaling Terraform ● Intro ● What is Terraform ● 4 Stages of Adoption ● Stage Next
  • 6.
  • 7. From Infrastructure Services to multiple Cloud Not IaaS services Cloud providerVirtualization and IaaS Cloudflare UltraDNS Fastly BitBucket Datadog (and more…) Amazon Google Cloud Microsoft Azure DigitalOcean Alibaba Cloud (and more…) OpenStack OpenNebula VMware vCloud Softlayer Cloudstack (and more…)
  • 8. Pro Cons ● Multiple Provider ● Low learning curve ● Declarative HCL language, not procedural code ● Dry runs ● Infrastructure versioning ● Terraform Registry ● No rolling upgrades* ● HCL Limitations (logic, loops)* ● Not “Drift detection”*
  • 9. Scaling Terraform ● Intro ● What is Terraform ● 4 Stages of Adoption ○ Stage 1 Manual ○ Stage 2 Semi Automated ○ Stage 3 ○ Stage 4 ● Stage Next
  • 10. 4 Stage of Adoption
  • 12. Scaling Terraform - Stage 1 Manual ● Web Consoles / Manual CLI ● Single environment(s) ● Mutable Infrastructure (Pets server)
  • 13. Scaling Terraform - Stage 1 Manual ● Web Consoles / Manual CLI ● Single environment(s) ● Mutable Infrastructure (Pets server) ● “Infrastructure as Code”
  • 14. Scaling Terraform - Stage 1 Manual ● Web Consoles / Manual CLI ● Single environment(s) ● Mutable Infrastructure (Pets server) ● “Infrastructure as Code” ops.txt
  • 16. ● Not using any Terraform is the first step to using a lot of Terraform
  • 17. Scaling Terraform - Stage 1 Manual Technical Operational Reproducibility Auditing Change Management Consistency Architecture Knowledge Sharing
  • 18. Scaling Terraform - Stage 1 Manual Technical Operational Reproducibility Auditing Change Management Consistency Architecture Knowledge Sharing
  • 19. Scaling Terraform - Stage 1 Manual ● Intro ● What is Terraform ● 4 Stages of Adoption ○ Stage 1 Manual ○ Stage 2 Semi automated ○ Stage 3 ○ Stage 4 ● Stage Next
  • 20. Stage 2 - Semi automated
  • 21. Scaling Terraform - Stage 2 Semi automated ● Adopting Infrastructure As Code (also Dockerfiles) ● Machine images (also playbooks and others / Packer) ● Web Consoles ● Introduce Terraform! ○ Configuration! ○ Automation! ○ Iteration!
  • 23. ● Plan, Apply, Iterate
  • 24.
  • 25. Scaling Terraform - Stage 2 Semi automated Technical Operational Reproducibility Auditing Change Management Consistency Architecture Knowledge Sharing
  • 26. Scaling Terraform - Stage 2 Semi automated Technical Operational Reproducibility Auditing Change Management Consistency Architecture Knowledge Sharing State management Operations
  • 28. Scaling Terraform - Stage 2 Semi automated
  • 29. Scaling Terraform - Stage 2 Semi automated $ cat ec2_instance.tf resource "aws_instance" "prod_ec2" { # ...instance configuration... } $ terraform import aws_instance.prod_ec2 i-abcd1234
  • 30. Scaling Terraform - Stage 2 Semi automated
  • 31. Scaling Terraform ● Intro ● What is Terraform ● 4 Stages of Adoption ○ Stage 1 Manual ○ Stage 2 Semi automated ○ Stage 3 ○ Stage 4 ● Stage Next
  • 33. ● Workspaces ● Packaged Components ● Modules ● Inputs and Outputs ● Config Mgmt Hooks
  • 34. Scaling Terraform - Stage 3 ● Organizational adoption ● Multiple Environments ● Collaboration ● Version Control
  • 35. Scaling Terraform - Stage 3 ● Organizational adoption ● Multiple Environments (Workspaces)
  • 36. Scaling Terraform - Stage 3 ● Organizational adoption ● Multiple Environments (Workspaces) $ terraform workspace new staging You're now on a new, empty workspace. Workspaces isolate their state, so if you run "terraform plan" Terraform will not see any existing state for this configuration.
  • 37. Scaling Terraform - Stage 3 ● Organizational adoption ● Multiple Environments (Workspaces) - separate state files ● resource "aws_instance" "example" { count = "${terraform.workspace == "prod" ? 5 : 1}" # … other params }
  • 38. Scaling Terraform - Stage 3 ● Organizational adoption ● Multiple Environments (Workspaces) - separate state files resource "aws_vpc" "mycompany_vpc" { name = "VPC ${terraform.workspace == "default" ? “Prod” : “Staging”}" # … other params }
  • 41. ● Workspaces ● Packaged Components ● Modules
  • 44. $ tree base-mod/ ├── README.md ├── main.tf └── variables.tf └── outputs.tf
  • 45.
  • 46.
  • 47. ● Version control (PR) ● Remote state
  • 48.
  • 49. Scaling Terraform - Stage 3 Technical Operational Reproducibility Auditing Change Management Consistency Architecture Knowledge Sharing State management Operations
  • 50. Scaling Terraform - Stage 3 Technical Operational Reproducibility Auditing Change Management Consistency Architecture Knowledge Sharing State management Operations
  • 51. Scaling Terraform - Stage 3 ● Intro ● What is Terraform ● 4 Stages of Adoption ○ Stage 1 Manual ○ Stage 2 Semi automated ○ Stage 3 ○ Stage 4 ● Stage Next
  • 53. ● VCS Integration ● Team permissions ● “Run Terraform for me”
  • 54. Developer “I need to create new VMs for my new env; but i don’t know yet how many”
  • 56. Scaling Terraform - Stage 4 Operations Create new Reservation (Scheduled Reserved or Convertible) Create new IAM and assign permission for this RI Restrict IAM Policy for using RI and EC2 family
  • 57. Scaling Terraform - Stage 4 Developers Configure AWS CLI with IAM user Create Terraform module for EC2 resources
  • 62.
  • 64. Grazie! Paolo Tonin Cloud & DevOps paolo.tonin@flowing.it