Docker vs Podman
المعيار الصناعي Docker في عالم الحاويات (containers) في مواجهة Podman ذي المقاربة اللاخادمية (daemonless). من الأفضل من ناحية الأمان والامتثال المؤسسي والاستخدام اليومي؟
إدارة تصريحية للبنية التحتية (بلغة HCL)
بنية تحتية ككود بلغات البرمجة الحقيقية
| الفئة | Terraform | Pulumi |
|---|---|---|
| الأداء | 8/10 | 8/10 |
| سهولة التعلّم | 7/10 | 8/10 |
| النظام البيئي | 10/10 | 7/10 |
| المجتمع | 10/10 | 7/10 |
| سوق العمل | 9/10 | 6/10 |
| الاستدامة المستقبلية | 7/10 | 9/10 |
# Terraform — شبكة VPC ونسخة EC2 على AWS
terraform {
required_providers {
aws = { source = "hashicorp/aws", version = "~> 5.0" }
}
backend "s3" {
bucket = "tfstate-bucket"
key = "prod/terraform.tfstate"
region = "eu-west-1"
}
}
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
tags = { Name = "production-vpc" }
}
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t3.micro"
vpc_security_group_ids = [aws_security_group.web.id]
tags = { Name = "web-server" }
}// Pulumi — شبكة VPC ونسخة EC2 على AWS (بلغة TypeScript)
import * as aws from "@pulumi/aws";
const vpc = new aws.ec2.Vpc("main", {
cidrBlock: "10.0.0.0/16",
enableDnsHostnames: true,
tags: { Name: "production-vpc" }
});
const sg = new aws.ec2.SecurityGroup("web-sg", {
vpcId: vpc.id,
ingress: [{ protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"] }],
egress: [{ protocol: "-1", fromPort: 0, toPort: 0, cidrBlocks: ["0.0.0.0/0"] }]
});
const server = new aws.ec2.Instance("web", {
ami: "ami-0c55b159cbfafe1f0",
instanceType: "t3.micro",
vpcSecurityGroupIds: [sg.id],
tags: { Name: "web-server" }
});
export const publicIp = server.publicIp;يظل Terraform الخيار الأساسي في عالم IaC بفضل نظامه البيئي الواسع ونضجه. أما Pulumi فيمنح فرق هندسة البرمجيات تجربة أكثر طبيعية بفضل قوة لغة البرمجة الحقيقية. تغيير الترخيص في Terraform يمنح OpenTofu زخماً إضافياً؛ ومن المتوقع أن يكسب Pulumi المزيد من الزخم على المدى الطويل.
احصل على استشارة مجانيةنعم، يوفر Pulumi أمر terraform convert الذي يحوّل كود Terraform بلغة HCL تلقائياً إلى اللغة التي تفضّلها. لكن بالنسبة لقواعد الكود الكبيرة، قد تحتاج لمراجعة النتائج وإجراء تعديلات يدوية.