Azure Bicep: Hướng dẫn Toàn diện
1. Giới thiệu
ARM Template (Quá khứ)
Ngày xưa, để định nghĩa hạ tầng Azure dạng code (IaC Native), ta dùng JSON (ARM Template). JSON rất dài dòng, khó đọc, khó viết, không hỗ trợ comment. Là cơn ác mộng của DevOps.
Bicep (Hiện tại)
Microsoft tạo ra Bicep để thay thế JSON.
- Ngôn ngữ sạch, gọn, dễ đọc (giống Terraform).
- Biên dịch (Transpile) ra JSON chuẩn để gửi cho Azure.
- Hỗ trợ tuyệt vời bởi VS Code (IntelliSense).
2. Cú pháp cơ bản
Tạo một Storage Account bằng Bicep:
// Khai báo tham số
param location string = resourceGroup().location
param namePrefix string = 'st'
// Tạo resource
resource st 'Microsoft.Storage/storageAccounts@2021-04-01' = {
name: '${namePrefix}unique123' // String interpolation
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
// Output kết quả
output storageId string = st.id
3. So sánh: Bicep hay Terraform?
| Đặc điểm | Bicep | Terraform |
|---|---|---|
| Hãng | Microsoft (Native) | HashiCorp (3rd Party) |
| State File | Không cần (Dùng trực tiếp Azure ARM) | Cần quản lý State File |
| Đa nền tảng | Chỉ Azure | Azure, AWS, GCP, K8s... |
| Cập nhật | Day-0 (Có tính năng mới ngay lập tức) | Chờ Provider update (nhanh nhưng có độ trễ) |
Lời khuyên
- Nếu công ty bạn dùng Multi-cloud (cả AWS, Azure) -> Dùng Terraform.
- Nếu chỉ dùng 100% Azure và muốn sự đơn giản -> Dùng Bicep.