برنامه نویسی

کارگران CloudFlare: محاسبات عصر جدید

در چشم انداز به سرعت در حال تحول محاسبات ابری ، کارگران CloudFlare به عنوان یک راه حل منحصر به فرد و قدرتمند که سیستم عامل های سنتی بدون سرور را به چالش می کشد ، معرفی می شود. بر خلاف خدمات ابری معمولی ، کارگران CloudFlare از یک رویکرد نوآورانه برای اجرای کد استفاده می کنند که عملکردی استثنایی ، مقیاس پذیری و مقرون به صرفه بودن را ارائه می دهد.

شبکه جهانی CloudFlare: بنیادی برای امنیت و عملکرد

در هسته کارگران CloudFlare شبکه عظیم و توزیع شده در سطح جهانی CloudFlare قرار دارد. این شبکه بیش از 335 شهر در سراسر جهان فاصله دارد و فقط 50 میلیون نفر از 95 ٪ از جمعیت متصل به اینترنت فاصله دارد. این شبکه به طور متوسط ​​بیش از 57 میلیون درخواست HTTP در هر ثانیه خدمت می کند ، با قله های بیش از 77 میلیون درخواست در ثانیه ، در حالی که روزانه 209 میلیارد تهدید سایبری را تشخیص داده و مسدود می کند.

انواع سرور و امنیت

CloudFlare با دو نوع اصلی ، تمام سرورهای موجود در شبکه خود را طراحی و مالک می کند:

سرورهای هسته خصوصی: هواپیمای کنترل که در آن کلیه پیکربندی های مشتری ، ورود به سیستم و سایر داده ها در آن قرار دارند.
سرورهای Edge Edge: جایی که اینترنت و ترافیک به صورت خصوصی به شبکه CloudFlare خاتمه می یابد ، تا مورد بازرسی قرار گیرد و سپس به مقصد خود هدایت شود.

این سخت افزار توسط CloudFlare طراحی شده و توسط تولید کنندگان مورد احترام صنعت ساخته شده است که یک زنجیره تأمین جامع و بررسی امنیتی را تکمیل می کنند. هر سرور یک پشته نرم افزاری یکسان را اجرا می کند و امکان طراحی سخت افزار مداوم را فراهم می کند. سیستم عامل در سرورهای Edge همچنین یک طراحی واحد است که از توزیع لینوکس بسیار اصلاح شده متناسب با مقیاس و سرعت پلتفرم ساخته شده است.

Isoolates V8: یک طرح امنیتی اول

در قلب کارگران CloudFlare یک تفاوت اساسی در معماری نهفته است: کارگران CloudFlare به جای استفاده از ظروف یا ماشین های مجازی ، از ایزوله های V8 استفاده می کنند ، همان فناوری ساخته شده توسط تیم Google Chrome برای تأمین انرژی موتور جاوا اسکریپت در مرورگر خود.
ایزوله های V8 به CloudFlare اجازه می دهند تا در یک فرآیند سیستم عامل واحد ، کد غیرقابل اعتماد را از بسیاری از مشتریان مختلف اجرا کند. آنها به گونه ای طراحی شده اند:

  • خیلی سریع شروع کنید (در میلی ثانیه)
  • جلوگیری از دسترسی یکی به حافظه دیگری
  • از هر نوع دیگر از محاسبات ابری به فلز نزدیکتر شوید

شرح تصویر

این انتخاب معماری چندین مزیت قابل توجه نسبت به سیستم عامل های سنتی بدون سرور ، از جمله انزوا امنیتی پیشرفته بین مستاجران ایجاد می کند.

امنیت از طریق عملکرد

معماری کارگران CloudFlare ذاتاً با از بین بردن شروع سرماخوردگی و پردازش درخواست ها بسیار سریع مزایای امنیتی را فراهم می کند:

بدون شروع سرماخوردگی: از آنجا که جدا شده های V8 فقط در 5 میلی ثانیه شروع می شوند ، کارگران از آسیب پذیری های امنیتی که می تواند در مرحله اولیه سازی سیستم عامل های سنتی سرور ایجاد شود ، رنج نمی برند.
امنیت یک پاس: تمام بررسی های امنیتی در یک پاس واحد از طریق پشته CloudFlare اتفاق می افتد ، سطح حمله را کاهش می دهد و شکاف بین لایه های امنیتی را از بین می برد.
استقرار مداوم: هر سرور در هر مرکز داده کد یکسان را اجرا می کند ، و اطمینان می دهد که از سیاست های امنیتی به طور یکنواخت در سراسر جهان استفاده می شود.

حل مشکل شروع سرماخوردگی

یکی از بدنام ترین مشکلات مربوط به سیستم عامل های بدون سرور معمولی مانند AWS Lambda ، مشکل “شروع سرد” است. در اینجا نحوه عملکرد سیستم عامل های بدون سرور سنتی به طور معمول آورده شده است:

  1. آنها یک فرآیند کانتینر شده برای کد شما می چرخند
  2. آنها در مقیاس خودکار آن فرآیندها (تا حدودی دست و پا چلفتی)
  3. هر درخواست همزمان جدید نیاز به یک ظرف جدید دارد
  4. ظروف بیکار در نهایت خاموش می شوند
  5. هر استقرار کد نیاز به راه اندازی مجدد تمام ظروف دارد

این امر منجر به تاخیرهای قابل توجه می شود که نمونه جدیدی از عملکرد شما باید به ویژه برای کارکردهای به ندرت مورد استفاده یا در حین سنبله های ترافیکی انجام شود.

کارگران CloudFlare این مسئله را کاملاً از بین می برند. از آنجا که آنها لازم نیست یک فرآیند را شروع کنند ، جدا شده های V8 فقط در 5 میلی ثانیه شروع می شوند – مدت زمانی که برای کاربران غیرقابل تصور است. این امر باعث می شود کارگران برای برنامه های حساس به تأخیر و وب سایت های پر ترافیک که عملکرد مداوم بسیار مهم است ، ایده آل باشد.

کارایی حافظه

زمان های سنتی مانند Node.js یا پایتون هرگز برای محیط های چند مستاجر با هزاران قطعه کد مختلف که تحت محدودیت حافظه سخت اجرا می شوند ، طراحی نشده اند. آنها برای استفاده فردی در سرورهای اختصاصی ساخته شده اند.

از طرف دیگر ، V8 اساساً طراحی شده بود تا چند مستاجر باشد. این ساخته شده است تا کد را از بسیاری از زبانه های مرورگر در محیط های جدا شده در یک فرآیند واحد اجرا کند. این فلسفه طراحی ، آن را در یک زمینه بدون سرور بسیار کارآمدتر می کند.

راندمان حافظه جدا شده V8 به طور چشمگیری اقتصاد محاسبات بدون سرور را تغییر می دهد. از آنجا که حافظه اغلب بالاترین هزینه اجرای کد مشتری (حتی بالاتر از CPU) است ، کاهش مصرف حافظه با سفارش بزرگی به میزان قابل توجهی هزینه ها را کاهش می دهد.

CloudFlare Workers در مقابل AWS Lambda

AWS Lambda ، که در سال 2014 راه اندازی شد ، مفهوم محاسبات “بدون سرور” را محبوب کرد. از Firecracker برای تخم ریزی VMS به سرعت استفاده می کند و چند اجاره امن را فراهم می کند. با این حال ، لامبدا با چالش های مختلفی روبرو شد:

  • راه اندازی پیچیده ای که به نقش های IAM ، دروازه API و پیکربندی KMS نیاز دارد
  • زمان شروع سرد 100-1000ms
  • خطر صورتحساب های غیر منتظره عظیم هنگامی که لامبدا به طور غیر منتظره ای شروع می شود

کارگران CloudFlare از طریق معماری ISOLATES V8 خود به این مسائل می پردازند ، که:

  • مشکلات شروع سرماخوردگی را از بین می برد
  • برای اجرای هر عملکرد به شدت سربار را کاهش می دهد
  • امنیت و انزوا داخلی را فراهم می کند

در حالی که لامبدا در درجه اول از طیف گسترده ای از زبانها به صورت بومی پشتیبانی می کند ، کارگران از جاوا اسکریپت ، زنگ زدگی و پایتون (از طریق تدوین WebAssembly) پشتیبانی می کنند.

اکوسیستم در حال گسترش

فراتر از محاسبه ، CloudFlare یک اکوسیستم جامع از پیشنهادات بدون سرور ایجاد کرده است:

  • کارگران KV: یک فروشگاه با ارزش کلیدی توزیع شده
  • R2: ذخیره سازی شیء مانند S3
  • D1: پایگاه داده های رابطه ای مدیریت شده
  • CI/CD: خط لوله استقرار یکپارچه

اشیاء بادوام: یک تغییر دهنده بازی برای برنامه های کاربردی

شاید ابتکاری ترین پیشنهاد در اکوسیستم CloudFlare اشیاء با دوام باشد. این ویژگی به توسعه دهندگان این امکان را می دهد تا ضمن حفظ وضعیت در بین درخواست ها ، کد را بر روی یک دستگاه واحد بنویسند.

هر شیء بادوام:

  • با یک شناسه منحصر به فرد خطاب شده است
  • حالت بین درخواست ها را حفظ می کند
  • ضمن حفظ قوام ، می تواند در سطح جهان توزیع شود
  • تضمین می کند که فقط یک نمونه در یک زمان ، در هر نقطه از جهان اجرا می شود

این رویکرد بسیاری از مشکلات سیستم توزیع شده سنتی را ساده می کند:

1. جواهرات وب و برنامه های زمان واقعی

اجرای وب سایت در محیط های بدون سرور چالش برانگیز بوده است زیرا اتصالات را نمی توان “زنده” در داخل توابع زودگذر نگه داشت. اشیاء بادوام با فراهم کردن یک محیط مداوم برای هر اتصال ، این مسئله را حل می کنند.

2. گردش کار رویداد محور

به جای استفاده از پایگاه داده ها برای ذخیره رویدادها در سیستم های زیر میخانه ، اشیاء با دوام می توانند رویدادها را ذخیره کرده و آنها را برای مشترکین پخش کنند و باعث کاهش ترافیک شبکه و نیازهای ذخیره سازی شوند.

3. هماهنگ سازی چند دستگاهی

هر کاربر می تواند “سرور” (شیء بادوام) اختصاصی خود را داشته باشد که هماهنگ سازی حالت را در دستگاه های خود مدیریت کند ، و آن را برای برنامه هایی که نیاز به کار به صورت آفلاین و همگام سازی آنلاین دارند ، ایده آل می کند.

4. موارد استفاده مشترک

  • مدیریت دولت جهانی (به عنوان مثال ، محدود کردن نرخ در سیستم های توزیع شده)
  • هماهنگی بازی های چند نفره در زمان واقعی
  • ساخت برنامه های چت
  • اجرای انتخابات رهبر در سیستم های توزیع شده
  • مدیریت پیشخوان های توزیع شده

محدودیت های دقیق

کارگران CloudFlare تحت محدودیت های مختلفی عمل می کنند که توسعه دهندگان باید از آن آگاه باشند. این محدودیت ها بین برنامه های رایگان و پرداخت شده متفاوت است ، در حالی که برنامه های پرداخت شده در اکثر دسته ها محدودیت های بالاتری دارند.

محدودیت های کلیدی توضیح داده شده است

زمان CPU

زمان CPU مقدار زمانی را که CPU در واقع صرف انجام کار در طی یک درخواست معین می کند ، نشان می دهد. بیشتر کارگران کمتر از میلی ثانیه از زمان CPU مصرف می کنند ، اما محدودیت ها برای جلوگیری از سوءاستفاده اجرا می شود. اگر کارگر شما به طور مداوم به این محدودیت ها برخورد کند ، اجرای با توجه به حد پیکربندی شده خاتمه می یابد.

استفاده از حافظه

هر نمونه کارگران می تواند تا 128 مگابایت حافظه مصرف کند. در صورت فراتر از این حد ، کارگران CloudFlare کارگران ممکن است یک یا چند درخواست را لغو کنند. برای عملیات فشرده حافظه ، CloudFlare توصیه می کند به جای بارگذاری کل پاسخ ها در حافظه ، از API TransformStream برای پاسخ به جریان استفاده کنید.

مدت

مدت زمان كليه كليه كليه زمان از ابتدا تا انتها دعوت كارگر. تا زمانی که مشتری به هم وصل شود ، هیچ محدودیتی در مدت زمان کارگر وجود ندارد. هنگامی که مشتری قطع می شود ، تمام وظایف مرتبط با آن درخواست لغو می شود.

اندازه کارگر

اندازه کد یک کارگر پس از فشرده سازی در برنامه رایگان و 10 مگابایت در برنامه پرداخت شده به 3 مگابایت محدود می شود. بسته های بزرگتر می توانند بر زمان راه اندازی تأثیر بگذارند ، زیرا کارگر باید در حافظه بارگیری شود. CloudFlare توصیه می کند وابستگی های غیر ضروری و استفاده از KV ، D1 یا R2 را برای ذخیره پرونده ها و دارایی های پیکربندی حذف کنید.

زمان راه اندازی کارگر

همه کارگران باید بدون در نظر گرفتن برنامه ، بتوانند دامنه جهانی خود (کد سطح بالا) را در 400 میلی ثانیه تجزیه و اجرا کنند. اندازه کارگر بر استارتاپ تأثیر می گذارد زیرا کد بیشتری برای تجزیه و ارزیابی وجود دارد.

مسیرها و دامنه ها

هر منطقه محدودیت 1000 مسیر و 100 دامنه سفارشی دارد. برای اهداف توسعه استفاده wrangler dev --remote، محدودیت سختگیرانه تر 50 مسیر در هر منطقه اجرا می شود.

اتصالات همزمان

برای هر دعوت نامه کارگر می توانید حداکثر شش اتصال را باز کنید. این اتصالات شامل تماس های Fetch () ، عملیات KV ، عملیات حافظه پنهان ، عملیات R2 ، عملیات صف و سوکت های TCP است.

اطلاعات قیمت گذاری

CloudFlare برنامه های رایگان و پرداخت شده را برای کارگران ارائه می دهد ، با گزینه های سازمانی که برای سازمان های بزرگتر در دسترس است. برنامه رایگان کمک هزینه ای سخاوتمندانه برای پروژه ها و توسعه های کوچک فراهم می کند ، در حالی که برنامه پرداخت شده بیشترین محدودیت های کمی را بالا می برد و صورتحساب مبتنی بر استفاده را معرفی می کند.
کاربران برنامه رایگان مشمول محدودیت نرخ پشت سر هم 1000 درخواست در دقیقه و حد درخواست روزانه 100000 درخواست هستند. وقتی به این محدودیت ها رسید:
برای اطلاعات دقیق و به روز قیمت گذاری ، از جمله هزینه های خدمات اضافی مانند کارگران KV ، R2 ذخیره سازی ، بانک اطلاعاتی D1 ، اشیاء با دوام و صف ها ، به مستندات رسمی CloudFlare در: https://developers.cloudflare.com/ci-cd/ci-cd/builds/limits-and-limits-and-pricing//pricing/

چه موقع کارگران CloudFlare را انتخاب کنید

کارگران CloudFlare در چندین سناریو عالی هستند:

  1. برنامه های حساس به تأخیر: به لطف زمان راه اندازی نزدیک و توزیع جهانی ، کارگران برای برنامه هایی که هر میلی ثانیه در آن حساب می شود ایده آل است.

  2. وب سایت های ترافیک بالا: مدل مقیاس گذاری کارآمد به این معنی است که کارگران می توانند بدون مجازات های شروع سرد سرور سنتی ، سنبله های ترافیکی را به طرز فجیعی کنترل کنند.

  3. موارد استفاده از محاسبات: هنگامی که محاسبات باید به کاربران نزدیکتر اتفاق بیفتد ، کارگران محاسبات را در بیش از 300 مکان لبه در سراسر جهان فراهم می کنند.

  4. برنامه های مشترک در زمان واقعی: با اشیاء بادوام ، ساخت بازی های چند نفره ، برنامه های گپ یا ابزارهای ویرایش مشترک به طور قابل توجهی ساده تر می شوند.

  5. پروژه های حساس به هزینه: برای پروژه هایی که دارای الگوهای قابل پیش بینی یا ترافیکی زیاد هستند ، مدل قیمت گذاری کارگران اغلب منجر به هزینه های کمتری در مقایسه با سیستم عامل های سنتی بدون سرور می شود.

با این حال ، کارگران ممکن است برای:

  1. بارهای کاری فشرده CPU: با محدودیت زمانی CPU 10ms در برنامه رایگان ، کارهای محاسباتی سنگین ممکن است چالش برانگیز باشد.

  2. برنامه های بزرگ یکپارچه: حد 3-10 مگابایت ممکن است نیاز به تغییر مجدد برنامه های بزرگتر داشته باشد.

  3. برنامه هایی که نیاز به محیط های خاص زمان اجرا دارند: اگر برنامه شما به باینری های خاص بومی یا دسترسی به سطح سیستم بستگی دارد ، ممکن است محیط محدودتر کارگران محدود کننده باشد.

پایان

کارگران CloudFlare نشان دهنده تکامل قابل توجهی در محاسبات بدون سرور است. با استفاده از ایزوله های V8 به جای ظروف یا VMS ، عملکرد قابل توجهی بهتر ارائه می دهد ، شروع های سرماخوردگی را از بین می برد و صرفه جویی قابل توجهی در هزینه را از طریق راندمان حافظه فراهم می کند.

CloudFlare با افزودنی مانند اشیاء بادوام ، یکی از چالش برانگیزترین جنبه های معماری بدون سرور را مورد بررسی قرار داده است: حفظ وضعیت و کار با برنامه های زمان واقعی. این امر باعث می شود این پلتفرم برای طیف گسترده ای از برنامه های کاربردی نسبت به ارائه های سنتی بدون سرور مناسب باشد.

محدودیت های این پلتفرم به خوبی مستند شده و به وضوح در بین ردیف های رایگان و پرداخت شده ساخته شده است و به توسعه دهندگان این امکان را می دهد تا تصمیمات آگاهانه ای در مورد اینکه آیا این مورد متناسب است ، تصمیمات آگاهانه بگیرند. مدل قیمت گذاری ساده-بدون هیچ گونه هزینه ای برای زمان بیکار-آن را برای تیم های توسعه آگاهانه جذاب می کند.

برای توسعه دهندگان به دنبال ساخت برنامه های با کارایی بالا و در سطح جهانی بدون مدیریت زیرساخت ها ، کارگران CloudFlare جایگزین قانع کننده ای برای سیستم عامل های ابری معمولی ارائه می دهند. ترکیبی از قابلیت های محاسبات لبه ، مدیریت داخلی داخلی و اکوسیستم در حال گسترش خدمات مکمل ، آن را به گزینه ای قدرتمند برای توسعه برنامه های وب مدرن تبدیل می کند.

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

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

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

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