سرور بدون سرور چیست؟ – انجمن DEV

اصطلاح “Serverless” در این چند سال اخیر کاملاً به یک کلمه رایج تبدیل شده است، برخی از مردم امروز حتی بحث می کنند که آیا این اصطلاح هنوز هم اهمیت دارد یا خیر. ممکن است تا این لحظه در مسیر توسعه خود درباره فناوری بدون سرور چیزی نشنیده باشید. اما واقعاً بدون سرور چیست؟ طراحی اپلیکیشن ها به صورت بدون سرور به چه معناست؟ یک سرویس یا پیشنهاد بدون سرور چیست؟ امیدوارم به همه این سوالات و بیشتر در این سری از پست های وبلاگ پاسخ دهم.
به عنوان یک قهرمان AWS و یک مهندس نرم افزار اصلی در یک شرکت بزرگ Fortune 100، من در 3 سال گذشته صرفاً بر روی فناوری های بدون سرور و فعال سازی تمرکز کرده ام. من به طور گسترده در مورد سفر بدون سرور خود، معنای بدون سرور در یک شرکت بزرگ و چگونگی موفقیت در یک محیط شرکتی صحبت کرده ام. همه چیزهایی که آموخته ام از طریق تجربه و در حین کار بوده است. تعریف بدون سروری که من با اکثر آنها همخوانی دارم بیان میکند که بدون سرور رویداد محور است، منابع شما بدون نیاز به مدیریت آنها افزایش و کاهش مییابد و از مدل «فقط برای آنچه استفاده میکنید پرداخت کنید» پیروی میکند. بیایید این را کمی بیشتر تفکیک کنیم:
-
معماری رویداد محور دقیقاً همان چیزی است که به نظر می رسد. شما برنامه های خود را بر اساس جریان رویدادهای خود می سازید. وقتی x اتفاق می افتد، می خواهم y را فعال کنم تا سرویس z را اجرا کنم. ما برنامه های بدون سرور خود را با در نظر گرفتن این جریان می نویسیم.
-
افزایش و کاهش خودکار بهعنوان درخواست سرویس، جزء کلیدی عملکرد بدون سرور است. من در اینجا تا حدودی از نام “بدون سرور” ایراد میگیرم، زیرا برخلاف تصور رایج، بدون سرور در واقع شامل سرورها نیز میشود – فقط لازم نیست آنها را به همان روشی که با اکوسیستم داخلی یا سایر ابرها مدیریت میکنید مدیریت کنید. منابع شما هنوز باید منابع مورد نیاز خود را تهیه کنید، و پیکربندی لازم است، اما زمان تخمین دقیق میزان ذخیره سازی و قدرت پردازشی که نیاز دارید گذشته است – ارائه دهنده ابر شما این کار را برای شما انجام می دهد. این باعث میشود که توسعهدهنده تمرکز بیشتری روی کد کسبوکار و کمتر روی زیرساختهای فیزیکی داشته باشد.
-
با مقیاس خودکار، این همچنین به شما این امکان را می دهد که دقیقاً برای آنچه استفاده می کنید بپردازید. دیگر نیازی به خرید و نگهداری سرور فیزیکی ندارید که میتوانید فقط تا نصف ظرفیت آن استفاده کنید، مثلاً برای زمانی از سال که ترافیک شما به اوج خود میرسد. نیازی نیست برای تمام ظرفیت ذخیره سازی و پردازشی که باید داشته باشید «فقط در مورد» هزینه کنید – دقیقاً برای آنچه استفاده می کنید، دقیقاً در زمانی که به آن نیاز دارید، پرداخت می کنید. نه بیشتر نه کمتر.
من یکی از طرفداران بزرگ بدون سرور هستم، و معتقدم که اینها مزایای بزرگی برای پذیرش بدون سرور است، اما این بدان معنا نیست که برای همه یا هر معماری مناسب است. من کمی در مورد مفهوم طراحی “اول بدون سرور” صحبت می کنم، به این معنی که شما ابتدا به هر معماری به شیوه ای بدون سرور برخورد می کنید، و اگر این بهینه ترین طراحی نباشد، به سراغ راه حل های دیگری مانند کانتینرها، پایگاه های داده رابطه ای می روید. نمونه های محاسباتی رزرو شده و غیره. به همان اندازه مهم، به ویژه در یک شرکت بزرگ، ارزیابی محدودیتهای زمانی و زمینههای تخصصی شماست. قرار نیست بدون سرور برای همه باشد، و بسته به پیشینه شما، میتواند منحنی یادگیری بزرگی با پذیرش آن وجود داشته باشد. معامله ارزشش را دارد، اما اگر زمان یا انگیزه کافی برای اختصاص دادن به این تحول را نداشته باشید، موفق نخواهید شد.
با توجه به آنچه گفته شد، امیدوارم بتوانم نقطه شروعی قوی برای سرزمین بدون سرور در اختیار شما قرار دهم. طی چند روز آینده، منابع و خدمات بدون سرور، از محاسبات، ذخیرهسازی، طراحی API و موارد دیگر را بررسی خواهیم کرد. ما بحثهایمان را در سطح بالا نگه میداریم، اما مطمئن هستم که مثالهای مرتبط، منابع و مطالعههای بیشتر از دیگر کارشناسان صنعت پیشرو را شامل میشود. هیچ پیش نیازی لازم نیست، فقط از شما میخواهم که با ذهنی باز به هر مقاله نگاه کنید، به پرسیدن سؤالات و ارائه بازخورد ادامه دهید و بیایید وارد آن شویم!*
*به عنوان یک سلب مسئولیت سریع – از آنجایی که من یک قهرمان بدون سرور AWS هستم، بیشتر مثالها و توضیحاتی که ارائه میدهم به اکوسیستم AWS اشاره میکند، زیرا تخصص من در اینجاست. بسیاری از سرویسها و ابزارهای AWS که در مورد آنها صحبت خواهیم کرد، معادلهایی در سراسر Azure، GCP یا ابزارهای دیگر دارند. من تمام تلاشم را خواهم کرد تا اینها را در آینده فراخوانی کنم. این بخشی از مجموعهای است که در اینجا پوشش داده میشود، و همچنین بخشی از تلاش بزرگتر در 90DaysOfDevOps، که من به شدت شما را تشویق میکنم آن را دنبال کنید.