Als DevOps Engineer bij een klant gebruiken we Terraform voor het beheer van de infrastructuur via code (IaS). Dit biedt ons vele voordelen, zoals de mogelijkheid om efficiënter te werken en menselijke fouten te minimaliseren. In deze blog zal ik mijn ervaringen met Terraform delen, en zal ik voorbeelden geven van hoe we Terraform gebruiken voor het beheer van alerts op Google Cloud Platform.
Terraform is een open-source tool van HashiCorp die wordt gebruikt voor het beheer van de infrastructuur via code. Met Terraform kunnen we de infrastructuur definiëren en beheren door middel van code, in plaats van handmatig te werken via een webconsole of terminal. Terraform maakt gebruik van een declarative syntax, wat betekent dat we ons niet bezig hoeven te houden met de onderliggende details van de configuratie.
Terraform biedt vele voordelen ten opzichte van traditioneel handmatig beheer van de infrastructuur, waaronder:
Hoewel Terraform vele voordelen biedt, zijn er ook enkele uitdagingen bij het werken met Terraform. Enkele van deze uitdagingen zijn:
Bij de klant gebruiken we Terraform voor het beheer van verschillende aspecten van de infrastructuur op Google Cloud Platform, waaronder alerts.
Om een voorbeeld te geven van hoe we Terraform gebruiken, zal ik hieronder een vereenvoudigd voorbeeld laten zien van hoe we alerts beheren via Terraform. Dit voorbeeld maakt gebruik van Stackdriver als monitoringtool.
resource "google_monitoring_notification_channel" "email" {
display_name = "My email channel"
type = "email"
labels = {
email_address = "my-email@example.com"
}
}
resource "google_monitoring_alert_policy" "alert_policy" {
display_name = "High CPU usage - Alert Policy"
combiner = "OR"
conditions {
display_name = "High CPU usage"
condition_threshold {
filter = "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\""
duration = "60s"
comparison = "COMPARISON_GT"
threshold_value = "0.8"
trigger {
count = 1
}
}
}
notification_channels = [google_monitoring_notification_channel.channel.name]
}
In dit voorbeeld gebruiken we Terraform om een email notificatie channel te maken en een alert policy te definiëren op basis van hoge CPU-gebruik voor alle VM's die draaien binnen GCP. Wanneer het CPU-gebruik wordt overschreden (in dit geval 80%) voor een duur van 1 minuut, wordt er automatisch een email verzonden naar de opgegeven channel.
Hopelijk heeft dit voorbeeld je een idee gegeven van hoe krachtig Terraform kan zijn voor infrastructuurbeheer via code.