Penjual awan Google: Gunakan alat Terraform untuk membina seni bina rangkaian standard secara automatik di GCP dalam 10 minit
Dalam lingkaran operasi dan penyelenggaraan awan awam, ada pepatah terkenal yang dianggap sebagai standard:"
Sekiranya anda berulang kali mengklik butang yang sama di konsol lebih dari tiga kali, anda harus mengkodkannya.
”
Ramai rakan yang baru mengenal Google Cloud (GCP), ketika menghadapi projek komersial baru, sering masuk ke konsol dengan cara yang biasa dan mula mengklik tetikus: membina VPC tersuai dan membahagikan tiga subnet wilayah yang berbeza.), dengan sekumpulan firewall penanda rangkaian, akhirnya, ia dilengkapi dengan pintu masuk NAT dalaman untuk membolehkan mesin maya mengakses Internet dengan selamat.
Set proses ini akan memakan masa sekurang-kurangnya setengah jam. Apa yang lebih menyakitkan ialah apabila syarikat berada di persekitaran ujian, persekitaran pra-pembangunan, persekitaran pengeluaran dan juga kawasan luar negara yang baru
Pengeluaran semula yang sempurna
Apabila anda mempunyai rangkaian yang sama, anda hanya dapat berpeluh dan berdoa agar tidak salah membaca topeng IP semasa membaca dokumen. Selagi anda berjabat tangan dan membuat tempat yang salah, akan ada lubang panjang untuk kesalahan dan pembuangan ikan.
Dalam ekologi DevOps pengeluar moden, ada langkah terakhir untuk mengakhiri operasi dan penyelenggaraan gaya bengkel primitif ini, yang disebut
Terraform
。
Logik intinya diringkaskan dalam empat perkataan:
Infrastruktur sebagai kod (IaC,Infrastructure as Code)
。 Anda tidak perlu mengklik tetikus, anda hanya perlu menuliskan cetak biru rangkaian anda dalam fail teks, dan Terraform akan "mencetak" secara tepat dan berkumpulan untuk anda di GCP global seperti pencetak dalam 10 minit. Satu set seni bina rangkaian standard yang sama sekali tidak buruk.
Hari ini kita menolak sebarang khotbah konsep dan menolak omong kosong. Secara langsung menggunakan spesifikasi pengeluaran struktur transnasional kilang sebagai standard, dan membawa anda menggunakan Terraform untuk membina bangunan tinggi di tanah dalam masa 10 minit.
Tahap pertama: pembongkaran mendalam, "model dunia dari perspektif Tuhan" IaC
Sebelum menulis baris pertama kod, anda mesti membina model dunia fizikal di bawah Terraform dalam fikiran anda, jika tidak, anda pasti akan
. Tf
Fail diberikan kepada bulatan.
Interaksi antara Terraform dan GCP pada dasarnya adalah proses gelung tertutup "pernyataan-> pelaksanaan":
Lapisan lukisan (Configuration Files,. Tf): Lukisan seni bina rangkaian yang anda tulis dalam bahasa HCL (bahasa konfigurasi deklaratif yang mudah dibaca). Anda hanya perlu menyatakan "Saya mahukan rangkaian yang disebut prod-vpc", dan anda tidak perlu peduli bagaimana lapisan bawah Google dijadualkan melalui API.
Penyambung (Penyedia): Penterjemah GCP yang disediakan secara rasmi oleh Terraform. Ia bertanggungjawab untuk menterjemahkan gambar yang anda tulis ke dalam arahan API RESTful yang dapat difahami di latar belakang Google Cloud.
Maklum balas dunia sebenar (State File, terraform.tfsta
Te): Ini adalah "buku memori" Terraform. Ia akan merakam sumber sebenar dan IP semasa di awan dalam fail JSON. Ini adalah teras asas di mana Terraform dapat mencapai "pengubahsuaian tambahan dan tidak pernah bertindih".
Tahap kedua: menjelang pertempuran sebenar-membuka depot peluru tempatan
Pastikan anda telah memuat turun dan memasang Terraform CLI pada komputer tempatan anda dan telah dikonfigurasi
gcloud
Alat baris arahan.
Buat direktori kosong baru di komputer tempatan, namanya
Gcp-network-automation
。 Dalam katalog ini, kita perlu membuat tiga dokumen teras yang memenuhi spesifikasi seni bina pengeluar utama.
Dilarang keras memasukkan semuanya ke dalam fail
Kita mesti memutuskan modularnya:
Providers. tf: Digunakan untuk menyelaraskan kod dengan Google Cloud dan menyatakan di mana kita akan menggunakan sumber.
Variables. tf: Konsol berubah-ubah, semua wilayah, ID projek, dan segmen rangkaian IP diubah secara seragam di sini, sehingga satu set kod dapat digunakan kembali di mana-mana.
Utama. tf: Rangka tindakan rangkaian teras.
Tahap ketiga: latihan pertempuran sebenar-rangkaian pembinaan kumpulan kod tangan-tangan
Seterusnya, tinggalkan tetikus dengan kedua tangan dan bersiaplah untuk memulakan pertempuran kelajuan rangkaian selama 10 minit ini di IDE anda (seperti VS Code).
1. Tulis penyambung
Providers. tf
Fail ini bertanggungjawab untuk mengimpal Terraform dengan kuat pada projek GCP anda.
Terraform {
Required_version = ">= 1.5.0"
Required_providers {
Google = {
Sumber = "hashicorp/google"
Versi = "~> 5.0 "# Kunci versi besar untuk mengelakkan peningkatan rasmi masa depan menyebabkan ketidaksesuaian tatabahasa
}
}
}
Provider "google" {
Projek = var.project_id
Region = var.main_region
}
2. Tulis jadual pemboleh ubah
Variables. tf
Cabut semua parameter yang mungkin berubah, dan anda hanya perlu menukar baris dalam fail ini untuk menghantar kawasan baru pada masa akan datang, dan anda tidak perlu menggerakkan cetak biru inti.
Variable "project_id" {
Type & n
Bsp; = string
Description = "ID projek GCP anda"
Default = "my-automation-project-2026" # Tukar kepada ID projek sebenar anda sendiri
}
Variable "main_region" {
Type = string
Description = "Kawasan penyebaran perniagaan utama"
Default = "asia-east1" # Wilayah Taiwan, kelewatan akses domestik rendah
}
Variable "backup_region" {
Type = string
Sesi = "Kawasan pemulihan bencana"
Default = "asia-northeast1" # Kawasan Tokyo, sangat berguna untuk aktiviti berganda transnasional
}
3. Tulis rangka kerja rangkaian teras
Utama. tf
Ini adalah bahagian yang paling tegar. Kami mahu membina secara pukal di sini:
1 VPC tersuai, 2 subnet transnasional, 1 firewall keselamatan intranet yang terpencil sepenuhnya, dan satu set pintu masuk Cloud NAT yang membolehkan mesin intranet memuat turun patch tanpa rahsia
。
Terraform
#1. Membina belakang besar dalam kumpulan: Rangkaian VPC tersuai
Sumber "google_compute_network" "custom_vpc" {
Nama = "prod-standard-vpc"
Auto_create_subnetworks = false # Spesifikasi keselamatan peringkat kilang besar: Matikan rangkaian atom automatik dengan tegas, dan anda mesti membahagikan dan mengawal domain IP secara manual
Routing_mode = "GLOBAL" # Buka penghalaan global, supaya subnet transnasional dapat berkomunikasi antara satu sama lain di intranet
}
#2. Kedudukan 1: Subnet perniagaan utama Taiwan (front-end dan aplikasi)
Sumber "google_compute_subnetwork" "subnet_asia_east" {
Nama = "subnet-asia-east-prod"
Ip_cidr_range = "10.0.1.0/24" # Bahagikan 254 IP intranet yang tersedia
Region = var.main_region
Rangkaian = google_compute_network.custom_vpc.id
Private_ip_google_access = benar # Suntikan jiwa: Benarkan mesin intranet menyambung ke API rasmi Google dengan selamat tanpa IP rangkaian awam
}
#3. Pembahagian kedudukan dua: subnet pemulihan bencana jarak jauh Tokyo (pangkalan data teras dan sandaran)
Sumber "google_compute_subnetwork" "subnet_asia_northeast" {
Nama = "subnet-asia-tokyo-backup"
Ip_cidr_range = "10.0.2.0/24"
Region = var.backup_region
Rangkaian = google_compute_network.custom_vpc.id
Private_ip_google_access = benar
}
#4. Gerbang keselamatan kimpalan: mewujudkan firewall keselamatan intranet
Sumber "google_compute_firewall" "allow_internal" {
Nama = "allow-internal-mesh-raffic"
Rangkaian = google_compute_network.custom_vpc.name
Allow {
Protocol = "tcp"
}
Allow {
Protocol = "udp"
}
Allow {
Protocol = "icmp"
}
Source_ranges = ["10.0.0.0/16"] # Hanya melepaskan ketukan bersama di dalam segmen rangkaian besar kita sendiri, menyekat sepenuhnya semua pengesanan rangkaian awam
Sambungan = "Hanya membenarkan interoperabiliti rangkaian tulang belakang antara anggota intranet VPC"
}
#5. Pembinaan saluran paip laut: dilengkapi dengan penghala Cloud Router
Sumber "google_compute_router" "nat_router" {
Nama = "prod-nat-router"
wilayah = pemboleh.var_wilayah_utama
rangkaian = google_compute_network.custom_vpc.id
}
#6. Konfigurasi pintu masuk Cloud NAT yang dihoskan sepenuhnya
Sumber "google_compute_router_nat" "nat_gateway" {
Nama = "prod-cloud-nat"
Router = google_compute_router.nat_router.name
wilayah = pemboleh.var_wilayah_utama
Nat_ip_allocate_option = "AUTO_ONLY" # Google secara automatik memperuntukkan IP statik luaran dengan pertahanan tinggi
Source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
}
Tahap keempat: momen menyaksikan keajaiban-awan "klik" pencetus barisan pemasangan satu klik
Kod sudah selesai. Seterusnya, kami pergi ke terminal, melakukan "Trilogi Pelepasan" Terraform.
Langkah 1: Perhimpunan pasukan (inisialisasi)
Ketik di direktori root projek terminal:
Bash
Init udara
Pada masa ini, Terraform secara automatik akan pergi ke stesen cermin rasmi untuk memuat turun pemalam Penyedia yang secara khusus berlabuh dengan GCP ke kawasan setempat, sehingga komputer tempatan memiliki kemampuan untuk mengendalikan awan Google.
Langkah 2: pemotongan meja pasir (rancangan pratonton)
Ini adalah langkah IaC yang paling tidak terkalahkan. Sebelum anda benar-benar pergi ke awan untuk memulakan latihan ketenteraan yang benar-benar selamat:
Bash
Rancangan terraform
Melihat output laporan terminal, ia akan menggunakan tanda tambah hijau skrin penuh (
) Beritahu anda dengan jelas:
"Jika anda menekan pengesahan, saya akan membuat 6 produk rangkaian baru untuk anda di latar belakang, 0 pengubahsuaian, dan 0 pemusnahan."
Langkah 3: Kekuatan api penuh (raungan satu klik ke awan)
Setelah mengesahkan bahawa gambar itu sempurna, perintah kematian terakhir dikeluarkan:
Bash
Terraform apply -auto-approve
Bar kemajuan pada skrin mula menatal liar. Terraform menggunakan frekuensi serentak yang sangat padat di latar belakang, dan pada masa yang sama memulakan panggilan ke API rangkaian tulang belakang global Google.
Biasanya hanya perlu
15 hingga 30 saat
, Terminal terakhir
Sebaris peringatan seperti emas akan ditunjukkan:
Apply complete! Resources: 6 added, 0 changed, 0 destroyed.
。
Anda log masuk
Konsol GCP
Melihat pasaran rangkaian, bahagian belakang rangkaian kelas industri yang sempurna dengan subnet multinasional, pintu masuk NAT dan firewall pengasingan, telah berdiri tegak di rangkaian awam. Keseluruhan proses tidak membuang setetes air liur, dan semuanya diselesaikan dalam masa kurang dari 1 minit.
Tahap kelima: sejarah pembangunan IaC berskala besar peringkat perusahaan
Penyelesaian automasi ini sangat menyegarkan untuk digunakan. Tetapi dalam persekitaran pengeluaran serentak dan multi-pasukan peringkat tinggi perusahaan yang sebenar, sebagai ketua arkitek, anda mesti segera mengimpal pasukan ke dua spesifikasi garis bawah berikut:
1. Pengekalan tempatan dilarang sama sekali
Terraform. tfstate
(Bencana kolaborasi berbilang orang)
Secara lalai, Terraform akan menghasilkan a
Terraform. tfstate
Fail.
Bencana berlaku: Sekiranya Zhang San dan Li Si dalam pasukan menjalankan aplikasi udara di komputer masing-masing, kerana lejar tempatan kedua orang itu tidak diselaraskan, Terraform akan menentukan bahawa apa yang ditulis oleh pihak lain adalah "pencerobohan haram", sehingga menjadi gila di latar belakang global. Hapus pelayan dan rangkaian yang baru dibina oleh pihak lain dengan satu klik.
Penyelesaian standard untuk pengeluar utama: "Kunci Jauh" mesti dikonfigurasi. Tambahkan beberapa baris kod ke providers.tf, dan kunci akaun status secara paksa di baldi GCS Google sendiri (Google Cloud Storage):
Terraform
Terraform {
Pakej "gcs" {
Bucket = "my-syarikat-tfstate-bucket" # Kunci lejar dalam laci selamat di awan
Prefix = "terraform/negeri/network"
}
}
Selepas konfigurasi, selagi Zhang San menjalankan kod, baldi awan akan dikunci secara automatik (Lock), dan Li Si tidak akan pernah bergerak pada masa yang sama, sepenuhnya menghilangkan kemalangan tragis yang disebabkan oleh konflik kod pelbagai pasukan.
2. Menguasai seni pemusnahan diri utama "super fizikal"
Apabila projek selesai atau persekitaran pembangunan dan ujian perlu ditutup sementara untuk mengembalikan dana setelah bekerja pada hari Jumaat, jangan pergi ke konsol untuk menghapusnya satu persatu.
Cadangan stop loss tegar: Ketik terus di terminal:
Hanya memerlukan 30 saat untuk aplikasi automatik-automatik Basterraform. Terraform akan menghapus 6 produk rangkaian pada gambar dengan bersih dari ruang komputer Google secara fizikal dan sepenuhnya, tanpa meninggalkan jalan buntu.
Hapuskan bil terbiar pada akhir bulan yang disebabkan oleh kehilangan pintu masuk tertentu.
Ringkasan
Menggunakan alat Terraform untuk membina seni bina rangkaian GCP secara automatik, inti pati industri terletak pada enam belas perkataan:
Penyataan lukisan, pemutusan pemboleh ubah, kunci awan, pemusnahan diri satu kunci
。
Anda benar-benar menyingkirkan keadaan operasi dan penyelenggaraan asal topeng dengan melihat konsol nasib pada masa lalu. Ubah semua infrastruktur menjadi kod bersih yang dapat mengendalikan versi (Git commit). Biarkan seni bina rangkaian disalin tanpa had dan digulung kembali dengan satu kekunci seperti perisian. Ini adalah postur kawalan panel yang paling sahih dan elegan dari arkitek awan moden ketika mereka berlayar ke laut.

