چگونه یک توسعه‌دهنده فول-استک Serverless باشیم؟

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 19 آبان 1398
دسته بندی ها : برنامه نویسی

تبدیل شدن به یک توسعه‌دهنده Full-Stack رویایی است که تقریباً بیشتر توسعه‌دهندگان به دنبال آن هستند. توسعه‌دهنده فول‌استک را می‌توان کسی دانست که می‌تواند تمام ویژگی‌های موجود در یک اپلیکیشن را از صفر تا صد بنویسد. البته این کار صرفاً جنبه دوست داشتن ندارد، توسعه‌دهندگان فول-استک همواره حقوق بسیار بیشتری از هر شکل دیگر توسعه‌دهندگان دریافت می‌کنند. حال شاید دلیل خوبی به شما نیز برای تمایل به تبدیل شدن به توسعه‌دهنده فول‌-استک را داده باشم..

مشکل اصلی تبدیل شدن به یک توسعه‌دهنده Full-Stack آن است که زمان زیادی برای یادگیری می‌طلبد و راه رسیدن به آن کمی دشوار است. در این مطلب از وبسایت راکت قصد داریم در ارتباط با ۴ مورد مهم صحبت کنیم که با یادگیری آن‌ها می‌توانید به یک توسعه‌دهنده Full-Stack تبدیل شده و از آن لذت ببرید. در کنار هر کدام از این موارد در ارتباط با Serverless و نقش آن در مورد مربوطه را بررسی خواهیم کرد.

۱- توسعه فرانت-اند و میزبانی وبسایت

هر شکلی از اپلیکیشن را که در نظر بگیرید به یک رابط کاربری برای تعامل برقرار کردن با آن نیاز دارد. در ارتباط با اپلیکیشن‌های مدرن رابط کاربری گرافیکی یکی از مهمترین ویژگی‌های آن است. شما به عنوان یک توسعه‌دهنده Full-Stack باید توانایی پیاده‌سازی چنین چیزی را داشته باشید.

در کنار توسعه رابط کاربری و فرانت-اند نیاز است تا بتوانید وبسایت یا وب اپلیکیشن‌تان را روی سرویس‌های مختلف میزبانی، قرار دهید. برای یک ساختار ساده HTML/CSS/JS استفاده از Github Pages کافی به نظر می‌رسد اما زمانی که وارد مراحل پیشرفته‌تری می‌شوید نیاز است تا سراغ راهکارهای پیشرفته‌تری بروید.

کارهایی که نیاز است در این مرحله بدانید:

  • توانایی در توسعه رابط کاربری و میزبانی آن روی یک سرویس مناسب
  • مدیریت کردن URLها.
  • توانایی در ثبت دامنه و متصل کردن آن به سرویس مورد نظر.

برای انجام این موارد می‌توانید از تکنولوژی‌های Serverless استفاده کنید. برای مثال Amazon S3 یکی از انتخاب‌های مناسب برای میزبانی کردن فایل‌هاست.

اما دلیل آنکه باید از Serverless استفاده بکنید آن است که نیازی به انجام تنظیمات مختلف روی سرور ندارید و از طرفی دیگر مدیریت DNSها و موارد مرتبط به صورت خودکار انجام می‌شود.

بک-اند و API

جدای از طراحی رابط کاربری، یک اپلیکیشن نیاز دارد تا از نظر منطقی مدیریت شود. این بخشی است که تحت عنوان توسعه بک-اند شناخته می‌شود. اما بخش مهم دیگر ماجرا APIها هستند. می‌توان APIها را به عنوان رابطی برای بخش فرانت-اند و بک-اند در نظر گرفت. از طریق این APIها رابط کاربری شما می‌تواند به داده‌های دیتابیس، فایل‌ها و… دسترسی پیدا کند.

کارهایی که نیاز است در این مرحله بدانید:

  • توانایی در ایجاد یک سیستم کامل برای مدیریت Back-End
  • توانایی در ایجاد Restful API
  • توانایی در دسترسی به دیتابیس و محتوای آن
  • توانایی در دسترسی به سرویس‌های خارجی (سرویس SMS، ایمیل و…)
  • توانایی در محافظت از APIها از طریق API Key

برای انجام موارد بالا ابتدا نیاز است تا یک زبان برنامه‌نویسی سمت سرور را به خوبی بدانید. پایتون، پی‌اچ‌پی، جاوا و… زبان‌هایی از این دست هستند. بعد از این کار نیاز است تا روش‌های توسعه API برای زبان برنامه‌نویسی مورد نظر را یاد بگیرید.

با استفاده از Serverless شما می‌توانید روال کاری آسان‌تری داشته باشید چرا که برای ارتباط برقرار کردن میان بخش‌های مختلف می‌توانید از یک API Getway و سرویس‌های مربوط به Lambda استفاده کنید. در محیط Serverless هر سرویس در یک محیط جداگانه اجرا خواهد شد و توسعه پیدا خواهد کرد از این رو اگر به مشکلی برخورد کند دیگر بخش‌های سیستم دچار مشکل نخواهند شد.

دیتابیس

یک سرویس Full-Stack نیاز دارد تا اطلاعات مربوط به کاربران، محصولات و… را در یک دیتابیس ذخیره کند. این دیتابیس می‌تواند یک دیتابیس رابطه‌ای و یا غیر رابطه‌ای باشد. انتخاب آن کاملاً به شرایط اپلیکیشن شما بستگی دارد. اما در نهایت شما در این مرحله نیاز دارید تا بتوانید یک سیستم مدیریت بانک اطلاعاتی را به خوبی مدیریت کرده و دیتابیس‌های مقیاس‌پذیری را با آن ایجاد کنید. همچنین باید این قابلیت را داشته باشید که بتوانید دسترسی به دیتابیس را کنترل کنید.

با استفاده از Serverless شما نیازی به نگرانی از بابت پیکربندی این سیستم‌ها نخواهید داشت چرا که تمام موارد به صورت آماده در اختیار شما قرار می‌گیرد. اما باید بدانید که نیاز است تا از طریق SDK مربوط به سرویس برای مثال AWS SDK با سیستم مورد نظرتان تعامل داشته باشید. از آنجایی که سرویس‌های Serverless مقیاس‌پذیر هستند بنابراین با الگوی سیستم بانک اطلاعاتی شما نیز سازگاری خواهند داشت. 

دیپلوی و نگهداری

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

شما باید قابلیت آن را داشته باشید که بتوانید تمام منابع گفته شده را روی سرور دیپلوی کنید. یک سرویس برای کنترل نسخه‌های مختلف اپلیکیشن داشته باشید و در نهایت بتوانید سرور را از نظر نرم‌افزار و سخت‌افزاری (در صورت نیاز) بروزرسانی کنید.

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

در پایان

در این مطلب از وبسایت راکت سعی داشتیم تا شما را به صورت مختصر با رویکرد توسعه Full-Stack با کمک Serverless آشنا بکنیم. مطمئناً موضوعات بیشتری نیز در این روند باید در نظر گرفته شوند اما این موارد چهارچوب اصلی شما خواهند بود. برای مطالعه بیشتر در ارتباط با موضوع Serverless به این صفحه مراجعه کنید. 

منبع

مقالات پیشنهادی

  • خالق لاراول چگونه کار می‌کند؟

    اخیرا افرادی را دیدم که وضعیت / روند کاری خود را به اشتراک می‌گذارند. پس من هم تصمیم گرفتم که همین کار را انجام دهم.

    عرفان کاکایی
  • 40 مجموعه از بهترین آیکون های 2015

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

    حسام موسوی