Azure Microsoft Cloud Enterprise Account: استخدم Bicep / Terraform لمدة 10 دقائق لنشر بيئة الشبكة القياسية بنقرة واحدة على Azure

سحابة 2026-06-01 阅读 7
1

في عمليات الحوسبة السحابية الحديثة والصيانة ، هناك مشهد كلاسيكي للغاية "شركة التجنيد":

عمل مهندس الشركة بجد لتصميم مجموعة من خطط قطاع الشبكة التي تتوافق مع معايير السلامة ، والتي تم تسليمها إلى التشغيل والصيانة لتنفيذها. نتيجة لذلك ، قام Yunwei بتسجيل الدخول إلى وحدة التحكم في بوابة Azure ، وفي مواجهة النموذج الكثيف ، نقر بالماوس أثناء التحقق بالعين المجردة. بعد نصف ساعة ، ضع قسم الشبكة الرئيسية عن طريق الخطأ

/16

خطأ

/24

، أو عكس ترتيب قواعد الدخول لمجموعة أمان الشبكة (NSG). والنتيجة هي:

الجهاز الظاهري الذي تم نشره لاحقًا إما فقد الاتصال تمامًا ، أو تعرض قاعدة البيانات الأساسية مباشرة للشبكة العامة ، ويستغرق التحقيق في السبب أكثر من نصف يوم.

تسمى طريقة التشغيل والصيانة هذه التي تعتمد فقط على اللحم البشري "للإشارة إلى البلاد" على صفحة الويب "جرافة يدوية" في الصناعة. ليس فقط أنها غير فعالة ، والأكثر فتكا هو

لا يمكن نسخها على الإطلاق

. إذا كنت بحاجة إلى استنساخ نفس المجموعة من البيئة في بيئة الاختبار والإصدار المسبق والإنتاج ، فمن الصعب عليك التأكد من أنك تنقر على الماوس مئات المرات دون أن تخطئ مرة واحدة.

من أجل إنهاء هذا النوع من عمليات ورشة العمل غير الفعالة وعالية الخطورة تمامًا ، ظهرت البنية التحتية ، IaC ، رمز Infrastructure as Code. في بيئة Microsoft Cloud (Azure) ، هناك سلاحين رئيسيين لبرمجة IaC:

أحدهما هو ابن Microsoft Bicep (لغة DSL المعلنة الحديثة) ، والآخر هو Terraform القياسي القديم في الصناعة.

منطقهم الأساسي صارم للغاية:

"رسم" طوبولوجيا الشبكة الخاصة بك عن طريق كتابة التعليمات البرمجية.

تحتاج فقط إلى كتابة ملف نصي صغير ، وتحديد ما تحتاجه في الداخل. بعد ذلك ، يتم دفع سطر واحد من الأوامر إلى السحابة ، وسوف يقوم دماغ Azure الأوتوماتيكي بترتيب المباني الشاهقة لك في غضون دقيقة واحدة ، وسيتم إنشاء مجموعة من بيئة الشبكة الأساسية التي تلبي معايير الشركات المصنعة الكبرى على الفور.

اليوم نرفض أي تكديس للمفاهيم المملة وندخل مباشرة في المواجهة الفعلية للنواة الصعبة. سوف نستخدمها بشكل منفصل

Bicep

و

تيرافورم

في هذين النوعين ، يأخذك الممسك إلى مجموعة من الرموز القياسية ، و 10 دقائق لحام مجموعة من القواعد القياسية على مستوى المؤسسة بما في ذلك "1 VNet (شبكة افتراضية) ، 2 شبكات فرعية مستقلة ، 1 مجموعة أمان شبكة عالية الحماية" في السحابة.

المرحلة الأولى: التفكيك العميق ، "نموذج ثلاثي الأبعاد" للشبكة القياسية

قبل كتابة التعليمات البرمجية ، يجب أن تكون واضحًا تمامًا في ذهنك حول طوبولوجيا فيزياء الشبكة الأساسية التي نريد نشرها. مجموعة من أسس شبكة Azure على مستوى المؤسسة التي تمر عبر المؤسسة ليست بأي حال من الأحوال مجرد فتح VNet. يجب أن تلبي بنية العزل الأساسية:

الشبكة الافتراضية (VNet): هذه هي المملكة المستقلة الحصرية الخاصة بك على Azure ، وهي معزولة فعليًا عن الشبكة العامة الخارجية. قمنا بتخطيط قسم الشبكة الخاص به كقسم داخلي قياسي للمصنع الكبير: 10.0.0.0/16.

الشبكات الفرعية المستقلة الأمامية والخلفية (Subnets): يجب قطع موقعين أفقيًا داخل الهيكل الكبير ، كل منهما يؤدي واجبه ، والعزل المادي: نحن

B الشبكة الفرعية الأمامية (Subnet-Frontend): قسم الشبكة المقسم هو 10.0.1.0/24 ، والذي سيتم استخدامه خصيصًا لتركيب تطبيقات الويب العامة أو موازن التحميل في المستقبل. الشبكة الفرعية الخلفية DB (Subnet-Backend): قسم الشبكة المقسم هو 10.0.2.0/24. في المستقبل ، سيتم تخزين قاعدة البيانات الأساسية أو الخدمات الخلفية الحساسة على وجه التحديد ، وسيتم قطع الوصول المباشر إلى الشبكة الخارجية.

حارس بوابة الدفاع العالي: مجموعة أمان الشبكة (NSG): هذا جدار حماية موزع عالق عند مدخل الشبكة الفرعية. نريد أن نكتب قاعدة ختم آمنة: يُسمح فقط لحركة مرور الشبكة العامة 443(HTTPS) و 80(HTTP) بالدخول إلى الشبكة الفرعية الأمامية ، ويتم اعتراض جميع الثيران والأشباح والثعابين المتبقية فعليًا على الفور.

المرحلة الثانية: النوع الأول-حرب خاطفة ابن Microsoft Bicep

إذا كنت فريقًا محضًا من Microsoft ، فأنت لست بحاجة إلى تثبيت أدوات تكوين تابعة لجهة خارجية. أداة سطر الأوامر Azure (Azure CLI) الأصلية تعرف Bicep بنسبة 100 ٪. لا يحتوي على أي ملفات حالة مرهقة (ملفات الحالة) التي يجب صيانتها ، والقواعد نظيفة مثل الماء الصافي.

على الكمبيوتر المحلي ، قم بإنشاء اسم جديد

Main. bicep

المستندات ، قم بلصق قوالب الإنتاج عالية الدقة التالية مباشرة:

// 1. تحديد المعلمات الثابتة العالمية لتسهيل تغيير الاسم بمفتاح واحد في المستقبل

موقع param string = resourceGroup().

Param vnetName string = 'vnet-core-prod'

Param nsgName string = 'nsg-Web-firewall'

// 2. الارتفاع من الأرض: قم بإعداد حارس البوابة (مجموعة الأمن السيبراني)

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

Name: nsgName

الموقع: الموقع

Properties: {

SecurityRules: [

{

Name: 'Allow-HTTPS-Inbound'

Properties: {

Priority: 10

0 // الأولوية القصوى

Protocol: 'Tcp'

الوصول: "Allow"

Direction: 'Inbound'

SourceAddressPresfix: '*' // من أي مكان في العالم

SourcePortRange: "*"

DestinationAddressPresfix: "*"

DestinationPortRange: '443 '// الإصدار الدقيق 443 ميناء عالي الدفاع

}

}

]

}

}

// 3. نقل Qiankun: إنشاء شبكة افتراضية كبيرة للهيكل ، وقطع شبكتين فرعيتين ، وفي نفس الوقت ربط العم بالشبكة الأمامية

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

Name: vnetName

الموقع: الموقع

الخصائص: {

AddressSpace: {

AddressPresfixes: [

'10.0.0.0/16 '// قسم الشبكة الأساسية

]

}

Subnets: [

{

Name: 'Subnet-Frontend'

الخصائص: {

AddressPresfix: '10.0.1.0/24 '// مواقع الواجهة الأمامية

NetworkSecurityGroup: {

Id: nsg.id // أطلق النار مباشرة على جدار حماية NSG على هذه الشبكة الفرعية

}

}

}

{

Name: 'Subnet-Backend'

الخصائص: {

AddressPresfix: '10.0.2.0/24 '// قاعدة بيانات خلفية الموقع الخفي

}

}

]

}

}

أمر الإقلاع بزر واحد لمدة 30 ثانية (Bicep)

افتح المحطة المحلية الخاصة بك ، وقم بتسجيل الدخول إلى حساب Azure الخاص بك ، وحدد مجموعة من الموارد التي قمت بإنشائها (على سبيل المثال)

Rg-infra-prod

) ، اطرق مباشرة على هذا الخط من التعليمات القصيرة المذهلة:

باش

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

بعد الكتابة على السيارة ، اترك لوحة المفاتيح بكلتا يديه. سترى شريط التقدم يومض في المحطة. بعد حوالي 20 ثانية ، ستمنحك وحدة التحكم سلسلة كثيفة من تقارير نجاح JSON.

في هذا الوقت ، إذا قمت بتسجيل الدخول إلى خلفية صفحة الويب Azure للتحديث ، فستجد أن VNet مستلقية هناك بدقة ، والشبكتان التابعتان و NSG مرتبطان بالتنقيط ، والتنسيق هو بالضبط نفس البكسل المخطط في الكود.

المرحلة الثالثة: النوع الثاني-الصناعة

إذا كانت شركتك عبارة عن بنية غائمة ، باستثناء Azure

من الضروري أيضًا التحكم في AWS أو Alibabic Cloud ، لذا فإن المعيار البلاتيني الصناعي المعترف به في الصناعة لا يزال من عائلة HashiCorp

تيرافورم

.

على الكمبيوتر المحلي ، قم بإنشاء دليل فارغ وابني اسم في الداخل

main.tf

الملف. يستخدم Terraform بناء جملة HCL الكلاسيكية ، والمنطق أثقل قليلاً ، ولكن نظرًا لآلية قفل الحالة القوية ، فهو مستقر مثل طرزان في تعاون الفريق الكبير: #1. إشارة مشتركة: نريد الاتصال بمحرك Microsoft Azure الرسمي (Provider)

ترافيرما {

الموفرون المطلوبون {

Azurerm = {

Source = "hashicorp/azurerm"

الإصدار = "~>" 3.0"

}

}

}

Provider "azurerm" {

Features {} # يجب أن تعلن بوضوح خصائص الفتح

}

#2. الضميمة: أعلن أننا نريد زراعة الشبكة في مجموعة الموارد الحالية

Data "azurerm_resource_group" "core_rg" {

Name = "rg-infra-prod"

}

#3. صب الدرع: إنشاء مجموعة الأمن السيبراني عالية الدفاع (NSG)

Resource "azurerm_network_security_group" "web_nsg" {

Name = "nsg-Web-firewall"

= موقع 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

Direction = "Inbound"

الوصول = "Allow"

Protocol = "Tcp"

Source_port_range = "*"

Destination_port_range = "443"

Source_address_prefix = "*"

Destination_address_prefix = "*"

}

}

#4. فتح هيكل كبير: إنشاء شبكة افتراضية (VNet)

Resource "azurerm_virtual_network" "core_vnet" {

Name = "vnet-core-prod"

الموقع = بيانات.أزوريرم_مجموعة_الموارد.المجموعة الأساسية.الموقع

Resource_group_name = da

تا.

Address_space = ["10.0.0.0/16"]

}

#5. القطع الدقيق: قطع الشبكة الفرعية الأمامية يدويًا وربطها بـ NSG

Resource "azurerm_subnet" "sub_frontend" {

Name = "Subnet-Frontend"

اسم مجموعة الموارد = اسم مجموعة الموارد الأساسية في بيانات أزوريرم

Virtual_network_name = azurerm_virtual_network.core_vnet.name

Address_prefixes = ["10.0.1.0/24"]

}

Resource "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. القص الدقيق: قطع الشبكة الفرعية الخلفية للشبكة الداخلية النقية يدويًا

Resource "azurerm_subnet" "sub_backend" {

Name = "Subnet-Backend"

اسم مجموعة الموارد = اسم مجموعة الموارد الأساسية في بيانات أزوريرم

Virtual_network_name = azu

-أجل-

Address_prefixes = ["10.0.2.0/24"]

}

ثلاثة محاور وبزر واحد أمر الهبوط (Terraform)

افتح المحطة ، قم بالتبديل إلى

main.tf

تحت الكتالوج الذي توجد فيه ، يتم النقر على "Tyra Three Stأس" الكلاسيكي بدوره:

باش

# الفأس الأول: التهيئة ، قم بتنزيل أحدث حزمة برنامج تشغيل مكونات الشبكة الرسمية من Microsoft

تفيرميتل إعداد

# الفأس الثاني: تمرين البروفة ، دع Terraform يعطيك جردًا للعين المجردة دون إنفاق المال

مخطط تيرافورم

# الفأس الثالث: يبدأ الهجوم العام ، والشحن الحقيقي للبنية التحتية إلى السحابة (بالإضافة إلى التأكيد على عدم إزالة اللحم البشري)

Terraform apply-auto-approve

في أقل من 30 ثانية ، ستضيء المحطة باللون الأخضر

تم التقديم بالكامل! Resources: 4 added

. مجموعة كاملة من بيئة شبكة العزل القياسية على مستوى المصنع الكبير قد بدأت تمامًا في عالم الفيزياء السحابية في Azure.

المرحلة الرابعة: تاريخ تجنب الدماء والدموع للبنية التحتية الصناعية ، أي رمز

باستخدام هاتين المجموعتين من التعليمات البرمجية ، يمكنك بشكل أساسي تجاهل جميع إدارة الشبكة التقليدية التي لا تزال تكافح من أجل النقر على صفحة الويب. ولكن للبقاء على قيد الحياة في خطوط أنابيب DevOps التجارية الصارمة حقًا ، بصفتك المهندس المعماري الرئيسي ، يجب عليك على الفور لحام فريقك بمعياري تجنب المحصلة النهائية التاليين:

1. مأساة "فقدان ملف حالة Terraform" القاتلة (State Lock)

إذا كنت تستخدم Terraform ، عندما تقوم بتنفيذ

Terraform apply

بعد ذلك ، سيتم إنشاء اسم في الكتالوج المحلي بهدوء

terraform.tfstate

ملف نصي.

مخاطر الكوارث: هذا الملف هو "العقل الوحيد للذاكرة" الذي يتذكره Terraform كيف تبدو الشبكة السحابية الحالية. إذا كان التطوير الآخر يعمل أيضًا على هذا الرمز على أجهزة الكمبيوتر الخاصة بهم ، نظرًا لعدم وجود ملف tfstate الخاص بك محليًا ، فإن Terraform سيصبح أعمى ، معتقدًا خطأً أنه لا يوجد شيء في السحابة ، لذلك في اللحظة التي يتم فيها تنفيذ التطبيق ، قم ببناء شبكة الإنتاج الخاصة بك في السحابة والأجهزة الافتراضية بالداخل ، اقتلع بلا رحمة ومحو جسديا!

تكوين الميدالية الذهبية المعيارية الخالية من الموت للمصنع الكبير: يُمنع منعًا باتًا الاحتفاظ بـ tfstate على الكمبيوتر المحلي! يجب تكوين استراتيجية backend "azurerm" في كتلة terraform { ... }. حفظ الملفات بالقوة في هذه الحالة ، وقفل في Azure الرسمي تشفير Storage Acc

في حساب التخزين (Blob) ، وافتح قفل الحالة. وبهذه الطريقة ، فإن أي شخص في العالم يدير الكود في أي ركن من أركان العالم سيذهب إلى نفس الدماغ المركزي لمحاذاة البيانات ، ولحام مأساة "التغطية والحذف الخاطئ" تمامًا.

2. احذر من الشلل عبر المناطق الناجم عن "Hardcode" في Bicep

عند كتابة رمز Bicep ، سيكتب العديد من المبتدئين مباشرة في الكود من أجل توفير المتاعب

موقع "eastasia"

(هونج كونج).

تفكيك السبب: إذا كانت أعمال الشركة في يوم من الأيام ستذهب فجأة إلى الولايات المتحدة ، فأنت بحاجة إلى استنساخ مجموعة كاملة من شبكة العزل في eastus (غرفة الكمبيوتر في شرق الولايات المتحدة). بمجرد تنفيذ هذا السطر من التعليمات البرمجية ، سيقوم النظام بالإبلاغ عن الأخطاء بلا رحمة ، لأن مجموعة الموارد الخاصة بك تم بناؤها بوضوح في الولايات المتحدة ، لكن الكود أجبر Microsoft على سحب شبكة الإنترنت في هونغ كونغ.

دليل التحايل المتشدد: استخدم دائمًا المعلمات للاستيلاء على الجغرافيا ديناميكيًا. كما نكتب قالب Bicep التوضيحي أعلاه: موقع param string = resourceGroup(). دع الكود نفسه يستفسر بذكاء عن "أي مجموعة موارد يتم زراعتها حاليًا" ، وأين توجد مجموعة الموارد ، سيهبط تلقائيًا على الكرمة ، ويحقق مجموعة حقيقية من القوالب والاستنساخ العالمي السلس.

الخلاصة

باستخدام Bicep / Terraform لتنفيذ البنية التحتية الحديثة ، أي نشر الرمز (IaC) ، تم تبسيط الجوهر الصناعي الأساسي في الواقع إلى ستة عشر كلمة:

الرمز الطوبولوجي ، التحكم في الإصدار ، الحالة المركزية ، الجغرافيا الديناميكية.

لقد ودعت تمامًا حالة التشغيل والصيانة الأصلية المتمثلة في التحقق من المعلمات كل يوم في الماضي ، والخوف من الخطأ في جزء الشبكة ، ونقر اللحم البشري بالماوس مئات المرات في وحدة التحكم في وقت متأخر من الليل. قم بتوحيد جميع الأصول الرقمية الأساسية بالكامل في جزء من رمز النص الذي يمكن تقديمه إلى GitHub. أثناء جلوسك أمام الكمبيوتر ، قم بتغيير الرقم برشاقة ، والعودة إلى السيارة ، وسيتم تسليم المهام المتبقية المتمثلة في الدفاع العالي والتوسع بأمان إلى العصر الأصلي للسحابة التي تومض بسرعة الضوء.

cloud
← 返回新闻中心