Serverless و آنچه که برای شما اهمیت دارد

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

 

 

محاسبات Serverless به طور دقیق با الگوها و تکنولوژی های معماری جدید مانند سرویس های مایکروسافت و ظروف ارتباط دارد. Greenfield، برنامه های بومی سرور ابری و سرور مجازی اغلب مبتنی بر سرویس های مبتنی بر مایکروسافت است، که آنها را برای در حال اجرا در ظروف (Docker) مناسب می سازد. تفکیک بیشتر و انتزاع – که توابع serverless بین نرم افزار و زیرساخت ها اجازه می دهد آنها را یک الگوی ایده آل برای توسعه سرویس های microservice جدید است که می تواند در محیط های مختلف اجرا شود.

 

همان طور که برنامه های serverless بیشتر مورد استفاده قرار می گیرند (با لمبدا که محبوب ترین سرویس ابری توسط AWS است)، ما به طور فزاینده ای شرکت هایی را می خواهیم که تجربه ای غیرمستقیم برای مهندسانشان در زیرساخت های محل را فعال کنند .

محاسبات Serverless

در حالی که سرور مجازی و هاست مزایای زیادی را ارائه می دهد، اجرای آن به طور موفقیت آمیز همراه با ظروف، با چندین چالش همراه است، مخصوصا برای ITOps. در حالی که سرور مجازی و سرور اختصاصی بدون نیاز به سرعت توسعه، نیاز به یک خوشه Kubernetas دارد تا اجرا شود، و Kubernetes به سختی دشوار است برای راه اندازی و مدیریت. علاوه بر این، این فناوری های جدید، پیچیدگی، گستردگی و گسترش فناوری اطلاعات، ابزار و برنامه های کاربردی را افزایش می دهد که شرکت های امروزی نیاز به پشتیبانی دارند. سرورهای جدید را به محیط های مخلوط که قبلا وجود دارند اضافه کنید – از منابع Cloud، VM های سنتی و حتی فلز خفیف – و چیزهایی که حتی برای IT پیچیده تر می شوند.

 

در این مجموعه، ما برخی از بهترین شیوه ها و الگوهای را برای فعال کردن هر دو توسعه دهندگان و تیم های OPS را قادر به استفاده از محاسبات سرور ابری و سرور مجازی به نحوی که از کل عملیات IT خود پشتیبانی – و آنها را به سطح بعدی را پوشش می دهد بحث خواهیم نمود .

 

مقدمه ای بر معماری Serverless

ابر بومی

مهمترین ویژگی معماری ابر بومی (CN) این است که توانایی به طور پویا در مقیاس وسیع برای حمایت از تعداد زیادی از کاربران و تیم های گسترده و توسعه یافته و عملیاتی است. این نکته حتی مهمتر از آن است که ما در نظر داشته باشیم که محاسبات ابری طبیعتا ذاتی بودن چندین مستاجر است.

 

در این منطقه، نیازهای معمولی که ما باید در نظر بگیریم عبارتند از:

  1. این توانایی را به طور خودکار از شکست در سطوح برخوردار است که می تواند دسترسی به برنامه را مختل کند .
  2. توانایی برای تطبیق تیم های بزرگ توسعه با اطمینان از اینکه اجزای خود را فراهم می کند .
  3. توانایی کار با تقریبا هر گونه زیرساخت (محاسبه، ذخیره سازی و شبکه) را دارد .

 

Mono، Micro، و Serverless : تکامل معماری کاربرد مدرن

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

 

Microservices یک تکامل طبیعی پارادایم معماری سرویس گرا (SOA) است. در این رویکرد، برنامه به توابع کسب و کار آزاد متصل می شود، که هر کدام به یک یا چند سرویس microservice متصل می شوند. هر میکرو سرویس برای یک تابع کسب وکار خاص طراحی شده و می تواند توسط یک توسعه دهنده یا تیم مستقل کار کند.

کد جداگانه آن به آسانی نه تنها از ابزار یا ارتباطات (به طور معمول ارتباط با استفاده از یک API RESTful با داده هایی که در اطراف استفاده از نمایندگی JSON / XML منتقل می شود) بلکه همچنین از دیدگاه فرآیند ساخت، راه اندازی، ارتقاء و نگهداری . هر سرویس میکروسافت می تواند به طور دلخواه پایگاه داده محلی خود را داشته باشد. مزیت مهمی در اتخاذ این رویکرد این است که هر سرویس میکروسافت می تواند با استفاده از یک پشته فناوری جداگانه از سایر قسمت های برنامه ایجاد شود.

 

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

 

Serverless مرحله بعدی در این تکامل است

Computing Serverless یک پارادایم جدید در توسعه نرم افزاری است که توسعه دهنده برنامه نویسی توابع کاربرد متمرکز شده است و از زمان نیاز به سرمایه گذاری در تنظیم و مدیریت منابع لازم برای راه اندازی و اجرای این برنامه ها آزاد شده است.

 

در این پارادایم، ارائه دهنده سرور ابری و سرور مجازی یا زیرساخت نیاز به آنها از انواع مدل های داده پشتیبانی می کنند – NoSQL غالب است. دلیل این است که توابع در یک معماری serverless سبک هستند و نیاز به بسته بندی تمام وابستگی های آنها به یک پایگاه داده جنجالی، ساخت NoSQL بسیار مناسب است.انجام تمام لوله های مورد نیاز برای برنامه برای نمونه برداری، دارد . توسعه دهنده برکد برنامه تمرکز دارد و مسئول ارائه دهندگان مرکز داده اصلی برای مدیریت تمام منابع مرتبط مورد نیاز برای اجرای آن، قابل اطمینان است.

FaaS

توابع بعنوان سرویس (FaaS) رایج ترین نوع محاسبات سرور مجازی و سرور ابری است که در آن برنامه به عنوان یک عملکرد نرم افزاری خالص با هدف استفاده گران توسعه داده می شود (اگر می خواهید یک سرویس میکروسکوپی بسیار دقیق باشد). با هم و به صورت اختیاری در ارتباط با نرم افزار microservices برای انجام کارهای تجاری استفاده می شود.

 

Serverless و FaaS اجازه می دهد برای پرداخت صورتحساب دقیق. از آنجا که FaaS توابع بیکار به مصرف CPU / حافظه بسیار پایین تر است، استفاده از منابع خوشه ای با استفاده واقعی نسبت به مقدار استقرار سازگارتر می شود. وقتی که توابع بیکار هستند، منابع سرور نمونه اکتیو نمیشوند، بنابراین هزینه کاهش مییابد. با این حال، به یاد داشته باشید که مزایای استفاده از صورت حساب ها، کاملا حساس هستند، بر الگوهای استفاده واقعی بستگی دارد. یک تابع که هر ۱۰ ثانیه یک ثانیه اجرا می شود در Lambda ارزان تر است، اما اگر هر ۱۰ ثانیه آن را برای ۲ ثانیه اجرا کند، در EC2 ارزان تر است. شما باید مدل خود را با دقت بررسی کنید و ارزیابی کنید که آیا serverless در واقع پول شما را صرفه جویی خواهد کرد.

 

معماری Serverless یا توابع به عنوان یک سرویس (FaaS)، مطابق با اصول کلی زیر است:

  1. این برنامه ها بطور ارادی سرویس های شخص ثالث مبتنی بر ابر مانند حوادث / پیام رسانی، خدمات احراز هویت و غیره را استفاده می کنند.
  2. آنها از انواع مدل های داده پشتیبانی می کنند – NoSQL غالب است. دلیل این است که توابع در یک معماری serverless سبک هستند و نیاز به بسته بندی تمام وابستگی های آنها به یک پایگاه داده جنجالی، ساخت NoSQL بسیار مناسب است.
  3. آنها تقسیم بندی افقی را به عنوان یک اصل اساسی مطرح می کنند. نرم افزار باید به صورت خودکار به سرعت و یا به پایین بر اساس میزان تولید.
  4. از دیدگاه توسعه دهنده، انعطاف پذیری ارائه شده توسط چارچوب سرورها، آنها را به عنوان راهی سریع و مقرون به صرفه برای توسعه برنامه های کاربردی دیجیتالی می سازد .
  5. برنامه FaaS باید به طور کامل از پشته زیربنایی زیربنایی خلاص شود. این کلیدی است، زیرا تیم های توسعه می توانند تنها بر روی کد برنامه تمرکز کنند و نیازی به نگرانی در مورد تعمیر و نگهداری OS / Storage / Network اصلی ندارند.

نظر

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