برنامه نویسی

چگونه زیرساخت را به عنوان کد حل کردیم

Summarize this content to 400 words in Persian Lang
زیرساخت به عنوان کد (یا به اختصار IaC) اخیراً مورد توجه قرار گرفته است – و دلیل خوبی هم دارد. این کار فواید زیادی را به همراه دارد، اما شروع کار اغلب چالش برانگیز است. بسیاری از سرویس‌های ابری هنوز از آن پشتیبانی نمی‌کنند و کاربران را مجبور می‌کند تا در پیچ و خم پانل‌های کنترلی حرکت کنند تا تغییراتی در زیرساخت خود ایجاد کنند.

در Diploi، ما راه‌حل‌های موجود مانند Terraform، Pulumi، AWS CloudFormation و Azure ARM را بررسی کردیم، اما متوجه شدیم که هیچ‌کدام به طور کامل با شعار ما برای ارائه یک «تجربه توسعه جادویی» همسو نیستند. در حالی که این ابزارها بسیار همه کاره هستند و می توانند تقریباً هر پیکربندی زیرساختی را مدیریت کنند، غالباً تسلط بر آنها دشوار است و بیش از حد پرمخاطب هستند. راه اندازی یک سرویس واحد اغلب مستلزم ایجاد چندین قالب و فایل های پیکربندی است.

از آنجایی که این تجربه توسعه‌دهنده‌ای نبود که به دنبال آن بودیم، تصمیم گرفتیم راه‌حل IaC خود را با استفاده آسان بسازیم.

زیرساخت به عنوان کد چیست؟

برای توسعه دهندگان، Infrastructure as Code (IaC) اساساً به معنای جایگزینی داشبورد مدیریت ارائه دهنده ابر با فایل های پیکربندی است. این فایل ها حاوی همه چیزهایی هستند که برای تکرار یک محیط خاص لازم است، و اطمینان حاصل می کنند که محیطی که کد شما در آن اجرا می شود همیشه به درستی و به طور مداوم تنظیم شده است.

به طور معمول، تعاریف IaC شما موارد زیر را مشخص می کند:

هدف استقرار: جایی که کد شما مستقر خواهد شد، مانند AWS یا Azure.

خدمات مورد نیاز: خدمات مورد نیاز برای پشتیبانی از برنامه شما.

راه اندازی ماشین مجازی: پیکربندی هر ماشین مجازی ضروری و نصب وابستگی ها.

پیکربندی شبکه: راه اندازی و ایمن سازی شبکه. تهیه نام دامنه پیکربندی DNS

اجرای برنامه: استقرار و اجرای کد برنامه.

پیاده سازی ما

ما در مورد بهترین راه برای پیاده سازی IaC در Diploi بسیار فکر کردیم. راه حل ما باید بصری، توسعه‌دهنده محور و بسیار قابل تنظیم باشد.ما در یک مستقر شدیم مدل مبتنی بر مولفه که به کاربران این امکان را می دهد تا به راحتی پشته خود را پیکربندی کنند بدون اینکه پیکربندی بیش از حد پرمخاطب باشد. پیکربندی دقیق‌تر برای یک مؤلفه، مانند نمودارهای HELM و سایر فایل‌های راه‌اندازی، در مخازن اختصاصی GitHub نگهداری می‌شوند که توسط صاحبان مؤلفه نگهداری می‌شوند.با این حال، کاربران همچنین می‌توانند مسیر محلی را برای یک مؤلفه مشخص کنند، و این امکان را فراهم می‌کند که مؤلفه‌های سفارشی به‌طور یکپارچه در مخزن پروژه‌ها قرار بگیرند.این رویکرد بهترین هر دو جهان را به کاربران ما می‌دهد: یک پیکربندی ساده و با استفاده آسان همراه با گزینه‌های سفارشی‌سازی بی‌حد و حصر، از جمله فایل‌های Docker سفارشی، نمودارهای HELM و موارد دیگر.

diploiVersion: v1.0
components:
– name: Next.js
identifier: next
package: https://github.com/diploi/component-nextjs#v0.0.1
– name: Local
identifier: local
package: ./local-package
addons:
– name: PostgreSQL
identifier: postgres
package: https://github.com/diploi/addon-postgres#v17.0

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک پیکربندی ساده Diploi که قادر به تکرار یک محیط پیچیده است.

این فایل های پیکربندی ساده، همراه با Stack Builder بصری ما، یک تجربه توسعه دهنده در Diploi ایجاد می کند که ✨ جادویی و بی نظیر است.

مزایای اجرای ما

پیاده سازی ما در Diploi با لیست طولانی از مزایا همراه است که بسیاری از آنها برای هر سیستم IaC صادق است. در اینجا تعدادی از جالب‌ترین موارد در فهرستی که به راحتی قابل هضم است آورده شده است:

نسخه با Git 🌳

infra مجزا را در شاخه های مختلف حفظ کنید
تفاوت و سرزنش برای تغییرات زیرساخت

خود مستندسازی فایل های پیکربندی 📝

مشاهده تمام اجزای زیرین در یک فایل واحد
پیوندهای قابل کلیک برای یافتن اطلاعات در مورد هر جزء

اجزای درون خطی 🏠

فایل های پیکربندی کامپوننت را مستقیماً در مخزن محلی قرار دهید
پین کردن نسخه دائمی و سفارشی سازی

ما هنوز در حال کار بر روی سیستم خود هستیم، بنابراین برای توضیح دقیق تر در آینده منتظر باشید. 😉

به هر حال، ما در حال حاضر به دنبال توسعه دهندگانی هستیم که به برنامه آزمایش داخلی ما بپیوندند. اگر مایل هستید که نسخه IaC ما را قبل از انتشار رسمی امتحان کنید، نظر خود را بنویسید و من با شما تماس خواهم گرفت!

زیرساخت به عنوان کد (یا به اختصار IaC) اخیراً مورد توجه قرار گرفته است – و دلیل خوبی هم دارد. این کار فواید زیادی را به همراه دارد، اما شروع کار اغلب چالش برانگیز است. بسیاری از سرویس‌های ابری هنوز از آن پشتیبانی نمی‌کنند و کاربران را مجبور می‌کند تا در پیچ و خم پانل‌های کنترلی حرکت کنند تا تغییراتی در زیرساخت خود ایجاد کنند.

در Diploi، ما راه‌حل‌های موجود مانند Terraform، Pulumi، AWS CloudFormation و Azure ARM را بررسی کردیم، اما متوجه شدیم که هیچ‌کدام به طور کامل با شعار ما برای ارائه یک «تجربه توسعه جادویی» همسو نیستند. در حالی که این ابزارها بسیار همه کاره هستند و می توانند تقریباً هر پیکربندی زیرساختی را مدیریت کنند، غالباً تسلط بر آنها دشوار است و بیش از حد پرمخاطب هستند. راه اندازی یک سرویس واحد اغلب مستلزم ایجاد چندین قالب و فایل های پیکربندی است.

از آنجایی که این تجربه توسعه‌دهنده‌ای نبود که به دنبال آن بودیم، تصمیم گرفتیم راه‌حل IaC خود را با استفاده آسان بسازیم.


زیرساخت به عنوان کد چیست؟

برای توسعه دهندگان، Infrastructure as Code (IaC) اساساً به معنای جایگزینی داشبورد مدیریت ارائه دهنده ابر با فایل های پیکربندی است. این فایل ها حاوی همه چیزهایی هستند که برای تکرار یک محیط خاص لازم است، و اطمینان حاصل می کنند که محیطی که کد شما در آن اجرا می شود همیشه به درستی و به طور مداوم تنظیم شده است.

به طور معمول، تعاریف IaC شما موارد زیر را مشخص می کند:

  • هدف استقرار: جایی که کد شما مستقر خواهد شد، مانند AWS یا Azure.
  • خدمات مورد نیاز: خدمات مورد نیاز برای پشتیبانی از برنامه شما.
  • راه اندازی ماشین مجازی: پیکربندی هر ماشین مجازی ضروری و نصب وابستگی ها.
  • پیکربندی شبکه: راه اندازی و ایمن سازی شبکه. تهیه نام دامنه پیکربندی DNS
  • اجرای برنامه: استقرار و اجرای کد برنامه.

پیاده سازی ما

ما در مورد بهترین راه برای پیاده سازی IaC در Diploi بسیار فکر کردیم. راه حل ما باید بصری، توسعه‌دهنده محور و بسیار قابل تنظیم باشد.
ما در یک مستقر شدیم مدل مبتنی بر مولفه که به کاربران این امکان را می دهد تا به راحتی پشته خود را پیکربندی کنند بدون اینکه پیکربندی بیش از حد پرمخاطب باشد. پیکربندی دقیق‌تر برای یک مؤلفه، مانند نمودارهای HELM و سایر فایل‌های راه‌اندازی، در مخازن اختصاصی GitHub نگهداری می‌شوند که توسط صاحبان مؤلفه نگهداری می‌شوند.
با این حال، کاربران همچنین می‌توانند مسیر محلی را برای یک مؤلفه مشخص کنند، و این امکان را فراهم می‌کند که مؤلفه‌های سفارشی به‌طور یکپارچه در مخزن پروژه‌ها قرار بگیرند.
این رویکرد بهترین هر دو جهان را به کاربران ما می‌دهد: یک پیکربندی ساده و با استفاده آسان همراه با گزینه‌های سفارشی‌سازی بی‌حد و حصر، از جمله فایل‌های Docker سفارشی، نمودارهای HELM و موارد دیگر.

diploiVersion: v1.0
components:
  - name: Next.js
    identifier: next
    package: https://github.com/diploi/component-nextjs#v0.0.1
  - name: Local
    identifier: local
    package: ./local-package
addons:
  - name: PostgreSQL
    identifier: postgres
    package: https://github.com/diploi/addon-postgres#v17.0
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یک پیکربندی ساده Diploi که قادر به تکرار یک محیط پیچیده است.

این فایل های پیکربندی ساده، همراه با Stack Builder بصری ما، یک تجربه توسعه دهنده در Diploi ایجاد می کند که ✨ جادویی و بی نظیر است.


مزایای اجرای ما

پیاده سازی ما در Diploi با لیست طولانی از مزایا همراه است که بسیاری از آنها برای هر سیستم IaC صادق است. در اینجا تعدادی از جالب‌ترین موارد در فهرستی که به راحتی قابل هضم است آورده شده است:

  1. نسخه با Git 🌳
    • infra مجزا را در شاخه های مختلف حفظ کنید
    • تفاوت و سرزنش برای تغییرات زیرساخت
  2. خود مستندسازی فایل های پیکربندی 📝
    • مشاهده تمام اجزای زیرین در یک فایل واحد
    • پیوندهای قابل کلیک برای یافتن اطلاعات در مورد هر جزء
  3. اجزای درون خطی 🏠
    • فایل های پیکربندی کامپوننت را مستقیماً در مخزن محلی قرار دهید
    • پین کردن نسخه دائمی و سفارشی سازی

ما هنوز در حال کار بر روی سیستم خود هستیم، بنابراین برای توضیح دقیق تر در آینده منتظر باشید. 😉


به هر حال، ما در حال حاضر به دنبال توسعه دهندگانی هستیم که به برنامه آزمایش داخلی ما بپیوندند. اگر مایل هستید که نسخه IaC ما را قبل از انتشار رسمی امتحان کنید، نظر خود را بنویسید و من با شما تماس خواهم گرفت!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا