Akaun Perusahaan Awan Microsoft Azure: Gunakan Bicep / Terraform selama 10 minit untuk menggunakan persekitaran rangkaian standard di Azure dengan satu klik

awan 2026-06-01 阅读 6
cloud

Dalam operasi dan penyelenggaraan pengkomputeran awan moden, terdapat pemandangan rollover "merekrut syarikat" yang sangat klasik:

Arkitek syarikat telah bekerja keras untuk merancang satu set rancangan segmen rangkaian yang mematuhi peraturan keselamatan, yang akan dilaksanakan oleh operasi dan penyelenggaraan. Akibatnya, operasi dan penyelenggaraan log masuk ke konsol portal Azure, menghadap borang yang padat, periksa dengan mata kasar dan klik tetikus. Selepas setengah jam, secara tidak sengaja meletakkan segmen rangkaian utama

/16

Salah memukul

/24

, Atau membalikkan susunan peraturan kemasukan Kumpulan Keselamatan Rangkaian (NSG). Hasilnya ialah:

Mesin maya yang digunakan kemudian sama ada terputus sepenuhnya, atau secara langsung mendedahkan pangkalan data teras ke rangkaian awam, dan memerlukan lebih dari setengah hari untuk menyelesaikan penyebabnya.

Kaedah operasi dan penyelenggaraan ini, yang hanya bergantung pada daging manusia untuk "menunjukkan negara" di laman web, disebut "jentolak manual" dalam industri. Bukan sahaja tidak cekap, yang paling mematikan adalah

Tidak dapat menyalin sama sekali

。 Sekiranya anda perlu mengklon satu salinan persekitaran yang sama dalam ujian, pra-produksi, dan persekitaran pengeluaran, sukar bagi anda untuk menjamin bahawa anda mengklik tetikus beratus kali tetapi tidak ada yang salah.

Untuk mengakhiri operasi dan penyelenggaraan bengkel yang tidak cekap dan berisiko tinggi ini, infrastruktur sebagai kod (IaC,Infrastructure as Code) muncul. Dalam ekosistem Microsoft Cloud (Azure), terdapat dua senjata pengaturcaraan IaC yang dominan:

Salah satunya ialah Bicep (bahasa DSL deklaratif moden), anak lelaki Microsoft, dan yang lain adalah Terraform, standard industri lama.

Logik asas mereka sangat tegar:

Gunakan kod untuk "melukis" topologi rangkaian anda.

Anda hanya perlu menulis fail teks kecil yang menentukan apa yang anda perlukan. Kemudian satu baris perintah didorong ke awan, dan otak pengaturan automatik Azure akan membina bangunan tinggi untuk anda pada tahap piksel dalam 1 minit, dan dengan serta-merta menghasilkan persekitaran rangkaian asas yang memenuhi standard pengeluar utama.

Hari ini kita menolak konsep yang membosankan dan terus memasuki konfrontasi pertempuran tegar. Kami akan menggunakan

Bicep

Dan

Terraform

Dalam dua genre ini, tangan akan membawa anda dengan satu set kod standard, dan satu set standard perusahaan yang mengandungi "1 VNet (rangkaian maya) 2 subnet bebas dan 1 kumpulan keselamatan rangkaian pertahanan tinggi" akan dikimpal di awan dalam 10 minit. Rangkaian asas.

Tahap pertama: pembongkaran mendalam, "model tiga dimensi" rangkaian standard

Sebelum menulis kod, anda mesti menjelaskan secara menyeluruh topologi fizikal rangkaian asas yang ingin kami gunakan. Satu set asas rangkaian Azure peringkat perusahaan yang berkelayakan tidak semestinya hanya membuka VNet, ia mesti memenuhi seni bina pengasingan yang paling asas:

Virtual Network (VNet): Ini adalah kerajaan bebas eksklusif anda di Azure, yang secara fizikal diasingkan dari rangkaian awam luar. Kami merancang segmen rangkaian sebagai segmen rangkaian dalaman kilang besar standard: 10.0.0.0/16.

Subnet bebas depan dan belakang (Subnet): Dua kedudukan mesti dipotong secara mendatar di dalam casis besar, masing-masing menjalankan tugasnya, pengasingan fizikal: Kami

B Subnet-Frontend (Subnet-Frontend): Segmen rangkaian terbahagi kepada 10.0.1.0/24, yang akan digunakan khas untuk memasang aplikasi web awam atau pengimbang beban pada masa akan datang. Subnet-Backend DB (Subnet-Backend): Segmen rangkaian terbahagi kepada 10.0.2.0/24. Pada masa akan datang, ia akan menyimpan pangkalan data teras atau perkhidmatan back-end yang sensitif, memotong akses langsung dari rangkaian luaran.

Pengawal pertahanan tinggi: Kumpulan Keselamatan Rangkaian (NSG): Ini adalah firewall yang diedarkan yang tersekat di pintu masuk subnet. Kita harus menulis peraturan cap keselamatan: hanya lalu lintas 443(HTTPS) dan 80(HTTP) rangkaian awam yang dibenarkan memasuki subnet front-end, dan semua yang lain dipintas secara fizikal secara langsung di tempat.

Tahap kedua: Genre One-Microsoft Bicep Blitz

Sekiranya anda adalah pasukan keluarga Microsoft yang murni, anda tidak perlu memasang alat konfigurasi pihak ketiga. Azure Order Tools (Azure CLI) pada asalnya memahami Bicep 100%. Ia tidak mempunyai fail status yang rumit (Fail Negara) untuk penyelenggaraan, dan sintaksnya bersih seperti air jernih.

Di komputer tempatan, buat yang baru bernama

Utama. bicep

Fail, hantarkan templat pengeluaran definisi tinggi berikut secara langsung:

// 1. Tentukan parameter statik global untuk memudahkan penamaan semula satu klik pada masa akan datang

Param location string = resourceGroup().location

Param vnetName string = 'vnet-core-prod'

Param nsgName string = 'nsg-web-firewal'

// 2. Naik dari tanah: sediakan penjaga pintu (kumpulan keselamatan rangkaian)

Sumber nsg 'Microsoft.Network/networkSecurityGroups @ 2023-11-01 '= {

Name: nsgName

Location: location

Sifat: {

SecurityRules: [

{

Name: 'Allow-HTTPS-Inbound'

Sifat: {

Priority: 10

0 // Keutamaan tertinggi

Protocol: 'Tcp'

Akses: 'Allow'

Arahan: 'Inbound'

SourceAddressPrefix: '*' // dari mana-mana sahaja di dunia

SourcePortRange: '*'

DestinationAddressPrefix: '*'

DestinationPortRange: '443' // Pelepasan tepat 443 port pertahanan tinggi

}

}

]

}

}

// 3. Pergerakan Besar Alam Semesta: Buat rangkaian maya casis besar, potong dua subnet, dan ikat paman ke rangkaian terminal depan pada masa yang sama

Sumber vnet 'Microsoft.Network/virtualNetworks @ 2023-11-01 '= {

Name: vnetName

lokasi: lokasi

harta benda: {

AdressSpace: {

AdressPrefixes: [

'10.0.0.0/16 '// segmen rangkaian teras besar

]

}

Subnet: [

{

Name: 'Subnet-Frontend'

harta benda: {

AdressPrefix: '10.0.1.0/24 '// kedudukan depan

NetworkSecurityGroup: {

Id: nsg.id // Ambil gambar firewall NSG secara langsung di subnet ini

}

}

}

{

Nama: 'Subnet-Backmend'

harta benda: {

AdressPrefix: '10.0.2.0/24 '// Kedudukan rahsia pangkalan data belakang

}

}

]

}

}

Arahan angkat satu kekunci 30 saat (Bicep)

Buka terminal tempatan anda, log masuk ke akaun Azure anda, dan tentukan kumpulan sumber yang anda bina (mis.

Rg-infra-prod

), Ketik arahan ringkas yang luar biasa ini:

Bash

Az deployment group create-regource-group rg-infra-prod-template file main.bicep

Setelah mengetuk Enter, tinggalkan papan kekunci dengan kedua tangan. Anda akan melihat bar kemajuan berkelip di terminal. Selepas kira-kira 20 saat, konsol akan mengembalikan serangkaian laporan kejayaan JSON yang padat.

Pada masa ini, jika anda log masuk ke latar belakang laman web Azure untuk memuat semula, anda akan mendapati bahawa VNet telah terbaring di sana dengan rapi, kedua-dua subnet dan NSG terikat dengan titisan, dan format dan piksel yang dirancang dalam kod sama persis.

Tahap ketiga: genre dua-industri ini tidak lama, gelung tertutup kelas industri Terraform

Sekiranya syarikat anda mempunyai seni bina yang mendung, kecuali Azure

Juga mengenai AWS atau Alibaba Cloud, maka standard platinum kelas industri yang diiktiraf oleh industri masih merupakan keluarga HashiCorp

Terraform

Di komputer tempatan, buat direktori kosong baru dan buat direktori bernama

main.tf

Fail tersebut. Terraform menggunakan sintaks HCL klasik dengan logik yang sedikit lebih tebal, tetapi kerana mekanisme kunci keadaan yang kuat, ia stabil seperti gunung dalam kolaborasi pasukan besar: #1. Nyatakan kod penyambung: Kami ingin memanggil pemacu rasmi Microsoft Azure (Provider)

terraform {

pembekal_wajib {

Azurerm = {

Sumber = "hashicorp/azurerm"

versi = "~>" 3.0"

}

}

}

Provider "azurerm" {

Features {} # mesti menyatakan secara eksplisit ciri pembukaan

}

#2. Kandang: Nyatakan bahawa kita ingin menanam rangkaian dalam kumpulan sumber yang ada

Data "azurerm_resource_group" "core_rg" {

Nama = "rg-infra-prod"

}

#3. Perisai pemutus: mewujudkan Kumpulan Keselamatan Rangkaian Pertahanan Tinggi (NSG)

Sumber "azurerm_network_security_group" "web_nsg" {

Nama = "nsg-web-firewall"

Lokasi = data.azurerm_resource_group.core_rg.location

Resource_group_name = data.azurerm_resource_group.core_rg.name

Security_rule {

Name & nbs

P; = "Allow-HTTPS-Inbound"

Priority = 100

Arahan = "Inbound"

Akses = "Allow"

Protocol = "Tcp"

Source_port_range = "*"

Destination_port_range = "443"

Source_adress_prefix = "*"

Destination_adress_prefix = "*"

}

}

#4. Membuka casis besar: mewujudkan rangkaian maya (VNet)

Sumber "azurerm_virtual_network" "core_vnet" {

Nama = "vnet-core-prod"

lokasi = data.azurerm_resource_group.core_rg.lokasi

Resource_group_name = da

Ta. azurerm_resource_group.core_rg.name

Adress_space = ["10.0.0.0/16"]

}

#5. Pemecatan tepat: potong subnet hujung depan secara manual dan ikat dengan NSG

Sumber "azurerm_subnet" "sub_frontend" {

Nama = "Subnet-Frontend"

nama_kumpulan_sumber = data.azurerm_resource_group.core_rg.name

Virtual_network_name = azurerm_virtual_network.core_vnet.name

Adress_prefixes = ["10.0.1.0/24"]

}

Sumber "azurerm_subnet_network_security_group_association" "bind_nsg" {

Subnet_id = azurerm_subnet.sub_frontend.id

Network_security_group_id = azurerm_network_security_group.web_nsg.id

}

#6. Pemecatan tepat: memotong subnet hujung belakang intranet tulen secara manual

Sumber "azurerm_subnet" "sub_backend" {

Nama = "Subnet-Backend"

nama_kumpulan_sumber = data.azurerm_resource_group.core_rg.name

Virtual_network_name = azu

Rerm_virtual_network.core_vnet.name

Adress_prefixes = ["10.0.2.0/24"]

}

Arahan pendaratan satu klik tiga paksi (Terraform)

Buka terminal dan beralih ke

main.tf

Di direktori tempat anda berada, ketik "Terra Boom Three Axes" klasik satu persatu:

Bash

# Kapak pertama: inisialisasi, muat turun pakej pemacu komponen rangkaian rasmi Microsoft terkini

terraform init

# Kapak kedua: Latihan latihan, biarkan Terraform mengira dengan mata kasar apa yang akan dibina kemudian tanpa mengeluarkan wang

terraform plan

# The Third Ax: Serangan umum bermula, dan caj infrastruktur benar-benar dilancarkan ke awan (ditambah-auto-prove menghilangkan pengesahan ketukan daging manusia)

Terraform apply-auto-approve

Tidak sampai 30 saat, terminal akan menunjukkan hijau

Permohonan telah lengkap! Resources: 4 added

。 Seluruh rangkaian persekitaran rangkaian pengasingan peringkat kilang standard telah berjaya menembusi dunia fizikal awan Azure.

Tahap keempat: sejarah infrastruktur kelas industri, iaitu kod

Dengan menggunakan dua set kod ini, anda pada dasarnya dapat mengabaikan semua pentadbir rangkaian tradisional tradisional yang masih berjuang untuk menandakan tetikus di laman web. Tetapi untuk bertahan dalam barisan pemasangan DevOps serentak tinggi komersial yang benar-benar ketat, sebagai ketua arkitek, anda mesti segera mengimpal dua garis bawah untuk mengelakkan spesifikasi pasukan:

1. Maut "Terraform Status Fail Hilang" Tragedi (State Lock)

Sekiranya anda menggunakan Terraform, apabila anda selesai

Aplikasi terraform

Kemudian, direktori tempatan secara senyap-senyap akan melahirkan nama

terraform.tfstate

Fail teks.

Bahaya bencana: Fail ini adalah "satu-satunya otak memori" Terraform untuk mengingati apa yang kelihatan seperti rangkaian awan semasa. Sekiranya pembangun lain juga menjalankan kod ini di komputer mereka sendiri, kerana mereka tidak mempunyai fail tfstate anda di dalam negara, Terraform akan menjadi buta, secara keliru menganggap bahawa tidak ada apa-apa di awan, jadi pada saat aplikasi dijalankan, anda akan berada di Rangkaian pengeluaran yang dibina di awan, mesin maya di dalamnya, semua dicabut dengan kejam dan dipadamkan secara fizikal!

Konfigurasi pingat emas pengecualian standard Dachang: dilarang sama sekali menyimpan tfstate di komputer tempatan! Strategi "azurerm" pakej mesti dikonfigurasikan dalam blok interraform {... }. Memaksa fail memori status ini secara paksa dikunci dalam Storage Acc rasmi Azure

Dalam fail (akaun simpanan Blob), dan buka kunci status (Locking State). Dengan cara ini, sesiapa sahaja di dunia yang menjalankan kod di mana-mana sudut akan pergi ke otak pusat yang sama untuk menyelaraskan data dan menyolder sepenuhnya tragedi "penutup dan penghapusan yang salah".

2. Berhati-hati dengan kelumpuhan antara wilayah yang disebabkan oleh "Hardcode" di Bicep

Semasa menulis kod Bicep, banyak pemula akan menulis secara langsung dalam kod tersebut untuk menyelamatkan masalah

Lokasi: 'eastasia'

(Hong Kong).

Pembongkaran alasan: Sekiranya suatu hari, perniagaan syarikat tiba-tiba pergi ke Amerika Syarikat, anda perlu mengklon satu set rangkaian pengasingan yang sama di eastus (Bilik Komputer Timur AS). Sebaik sahaja anda melaksanakan baris kod ini, sistem akan melaporkan kesalahan dengan kejam, kerana kumpulan sumber anda jelas dibina di Amerika Syarikat, tetapi kod tersebut secara paksa memerintahkan Microsoft untuk menarik rangkaian di Hong Kong.

Panduan pengelakan tegar: Sentiasa gunakan parameter untuk menangkap geografi secara dinamik. Seperti yang kita tulis templat demonstrasi Bicep di atas: struktur lokasi = kumpulan sumber ().location. Biarkan kod itu sendiri dengan bijak bertanya "kumpulan sumber mana yang sedang ditanam", di mana kumpulan sumber, ia secara automatik akan mengikuti pokok anggur di mana ia mendarat, mewujudkan satu set templat dalam erti kata sebenarnya dan pengklonan lancar global.

Ringkasan

Dengan menggunakan Bicep / Terraform untuk melaksanakan penyebaran infrastruktur moden sebagai kod (IaC), inti inti industri sebenarnya dipermudah menjadi enam belas kata:

Kod penurunan topologi, kawalan versi, penyimpanan pusat, geografi dinamik.

Anda mengucapkan selamat tinggal kepada keadaan operasi dan penyelenggaraan asal memeriksa parameter setiap hari pada masa lalu, takut bahawa segmen rangkaian tidak sesuai, dan daging manusia mengklik tetikus beratus-ratus kali di konsol pada larut malam. Semua asas aset digital teras disatukan sepenuhnya ke dalam kod teks yang boleh dihantar ke GitHub. Duduk di depan komputer, ubah nombor dengan elegan, tekan Enter, dan baki tugas pertahanan dan pengembangan yang tinggi, selamat diserahkan kepada era awan yang berkelip dengan kelajuan cahaya.

cloud
← 返回新闻中心