Netlify یک شرکت کامپیوتری مبتنی بر سرور ابری است که به سایت های ایستا خدمات هاست و پشتیبانی serverless ارائه می کند، این شرکت برنامه های رایگان و پولی نیز عرضه می نماید. ماتیاس بیلمن مسئول سابق CTO که حوزه فعالیت آن ساخت وب سایت برای کسب و کارهای کوچک بود و بنیان گذار Netlify در این رابطه خاطر نشان میشود که برنامه سازان به قدری به استفاده از Github به عنوان روند اصلی کار خود نیازمند شده اند که معتقد هستند روش کار برنامه نویسان قدیمی آن بود که وارد یک سرور مجازی می شدند و شکل ساختار اجزای مورد نظر خود را تغییر می دادند، اما Git وارد بازار شد و تبدیل به روش اصلی کار گردید. با استفاده بیشتر از آن هر روز انتظار رخداد اتفاقات بیشتری را خواهید داشت، در این مقاله قصد بر آن است که شناخت نسبی از Netlify بدست آوریم.
پلتفرم Netlify به عنوان یک محصول MakerLoop در مارس ۲۰۱۵ به بازار عرضه شده است، این قابلیت یک پلتفرم توسعه دهنده وب است که میزان بهره وری را چند برابر افزایش میدهد. Netlify با ادغام اجزای جدا از هم و نوین اینترنت با یکدیگر، از توسعهٔ محلی گرفته تا بخش های پیشرفته edge، سرعت دستیابی به اپلیکیشن ها و وب سایت های بسیار کارآمد تر، امن تر و با قابلیت توسعه بیشتر را تا ۱۰ برابر افزایش میدهد. بنابراین Netlify، برنامه نویسان را قادر می سازد تا تغییراتی را که با این به روزرسانی های ساده به آسانی قابل برگشت هستند را در سرتا سر شبکه های بزرگتر سرورها معرفی کنند. و تمام این کارها را می توانند تنها با استفاده از یک خط فرمان رابط انجام دهند.
Netlify منابع و انبار مخصوص به خود را ایجاد می کند که انبار Github و سرویس های خود Netlify را شارژ می کند. سپس با انتخاب بهترین سرویس از میان سرویس های ابری موجود توسط Netlify، این به روز رسانی ها اجرا و در سراسر شبکه گسترده ای از شبکه های ارائهٔ محتوا توزیع می شوند تا صفحات استاتیک از پیش ساخته را به بازدید کنندگان ارائه کنند. سپس Netlify تمام آن سایت های استاتیک را در شبکه ارائه محتوای خود توزیع می کند، به این معنی که بازدید کنندگان در زمان دسترسی و بازدید آن صفحات، در حقیقت صفحات از قبل ساخته شده را مشاهده می کنند. منظور از انجام چنین کاری آن است که به جای آنکه هر بار که یک بازدید کننده صفحه ای را باز می کند، برنامه اجرا شود، صفحات سایتها از پیش بارگذاری شوند و بازدید کننده در حقیقت این صفحات از پیش بارگذاری شده را از نزدیکترین سرور مجازی به خود از لحاظ مکانی دریافت کند. بدین ترتیب زمان بارگذاری کاهش می یابد.
Netlify برای پرداختن به برخی محدودیتهای سایتهای ایستا که نسبت به روشهای انتشار محتواهای دینامیک مانند WordPress یا Medium پیچیدگی کمتری دارند و ساده تر هستند، یک سیستم مدیریت محتوای بدون سرور open source مخصوص به خود ایجاد کرده است که به آن Netlify CMS می گویند. JAMstack که یک سازه توسعه وب سازگار با سرور ابری و مبتنی بر JavaScript مشتریمدار است، API هایی که قابلیت چند بار استفاده را دارند، برای نخستین بار توسط Netlify به وجود آمد. در اصل JAMstack را می توان یک تغییر قابل توجه از تمرکز بر چیزی که در حال حاضر یک پس زمینه نه چندان مهم است، به پیش زمینه ای که امروزه قدرتمند و اصلی است، دانست. تصوراتی که در مورد JAMstack وجود داشت خیلی زود تحقق یافت. این سایت به سرعت از اپلیکیشن های یک پارچه و یک دست به اپلیکیشن های جدا از هم تبدیل شده است و بدین ترتیب، طراحان و سازندگان وب سایت بیش از پیش قدرتمند شده اند.
اگر ترافیک داده به شکل ناگهانی افزایش یابد، ممکن است صفحاتی که پویایی بیشتری دارند، به خاطر کندی کار آسیب ببینند. وی امیدوار است که با ساده کردن فرآیند نصب، بتواند سازندگان را متقاعد سازد که به جای آنکه سایت های خود را مستقیماً بر روی AWS یا سایر عرضه کنندگان نصب کنند، با استفاده از محصولی مانند Netlify، به دنبال تجربه ی صفحات کم حجم تر و سبک تر باشند. بخشی از این فرآیند که به مرور زمان کامل شده است، این است که بتوانند به سادگی به روز رسانی های Git را به یک سرور مثلاً AWS منتقل کنند. انتظار می رود که روزی برسد که به جایی برسیم که در یک قسمت از سیستم کد دستوری به روزرسانی را وارد کنیم و در بخش دیگری از سیستم این فرمان اجرا شود. از آنجا که با گذشت زمان و به ویژه برنامه نویسان و سازندگان نسل جدید بیشتر به دنبال دستیابی به چنین پدیده ای بودند، بیلمن و تیم همراهش تصمیم گرفتند که ابزاری بسازند که با استفاده از آن تمام اجزای لازم برای ساختن و نصب آن صفحات را یکجا کنار هم گرد آورند.
محصولات Netlify
• شناسایی ابزار و تولید کننده های دلخواه شما :
Netlify Dev به صورت خودکار ابزار رایج همچون Gatsby, Hugo, Jekyll, React Static, Eleventy را شناسایی کرده و تنظیمات zeroconf بدون نیاز به پیکربندی خاص برای ساخت سرور محلی شما ایجاد می کند.
• موتور مناسب اجرایی :
Netlify با صداقت کامل موتور مناسب edge خود را در WebAssembly دوباره سازی کرده و در اختیار کاربران قرار می دهد تا بتوانند تمام کد ها و دستورات آن را قبل از نصب در زیر ساخت های جهانی، به صورت محلی آزمایش کنید.
• عملکرد های انتقال و فشرده سازی :
می توانید دستورات و کدهای سرور ابری خود را به زبان javascript مدرن بنویسید و تمام اجزای مورد نیاز را به آن اضافه کنید.
Netlify این دستورالعمل ها را به صورت AWS Lambda جمع آوری و دسته بندی می کند و تبدیل به API endpoint تمام و کمال می کند.
• متغیرهای محیطی را نیز اضافه کنید :
همین که سرور ساخت و توسعه شروع به کار می کند به صورت خودکار تمام متغیرهای محیطی را که در داشبورد Netlify ذخیره کرده اید، بارگیری می کند و در دسترس قرار می دهد.
گاهی اوقات زمانی که از سایتی بازدید می کنیم صفحه سایت به شکل پویا بر حسب اپلیکیشن هایی که بر روی یک سرور اختصاصی مثلاً AWS اجرا می شوند، ساخته می شود. در این شرایط علاوه بر آنکه باید خود صفحه ساخته شود، فرصت مناسبی برای حمله ی بدافزارها نیز به وجود می آید تا دیگر در دام تنظیمات پویایی که ممکن است موقعیت را برای حمله بدافزارها فراهم کنند، نمی افتد. در Netlify منظور از سایت های ایستا چیزی شبیه به سایت های ایستای سال ۱۹۹۴ نیست، ۹۹.۹٪ از سایت هایی که سرویس می گیرند بسیار پویا هستند. تنها تفاوت این است که این سایت ها به جای آنکه هر نوبت از روی سرور مجدد ساخته شوند، با مرورگر تعامل دارند. اگر یک برنامه نویس به صورت ناخواسته خطی از یک کد دستوری را حذف کند، میتواند خیلی سریع به همان نمونه ای که صفحه ی پیش ساخته ی سایت از آنجا برایش ارسال شده است، برگردد. با اینکه اکثر عملیات از طریق کدهای خطی دستوری انجام می شود، کاربران Netlify می توانند تصویری از صفحات در حال اجرای خود را هم از طریق یک رابط تحت وب مشاهده کنند و بر سلامتی آن ها نظارت داشته باشند.
چالش اصلی Netlify در حال حاضر آن است که بتواند سرعت و سادگی کار با این ابزارها را مطابق با نیاز و در خواست برنامه نویسان تنظیم و حفظ کند. تصور اینکه چیزی مانند AWS بر روی یک ابزار مشابه اجرا شود، کار آسانی نیست، و برای بسیاری از برنامه نویسان که تا به حال کار خود را بر روی AWS انجام داده اند، تفکیک این دو از یکدیگر کار دشواری است. اما بیلمن معتقد است حال که شرکت های بزرگتر از مزایای استفاده از این شیوه ها بهره مند شده اند، ابزاری از این قطعاً توجه طیف گسترده تری از برنامه نویسان و کسانی که به دنبال کارها و شیوه های ویژه هستند، را جلب خواهد کرد.
امنیت در Netlify
Netlify یک پلتفرم جهانی است که مسئله امنیت در طراحی آن هم در نظر گرفته شده است.
1. کاهش سطح در معرض خطر کاهش تعداد edge nodes :
در سراسر ADN جهانی Netlify محتوای موجود در edge nodes کاملاً ایستا و از پیش تعیین شده است و بدین ترتیب هیچ فرآیند فعالی در این node ها وجود ندارد و در نتیجه محدوده در معرض خطر کاهش می یابد.
2. کاهش سطح در معرض خطر ساخت و رایانش :
کدهای برنامه ها یک بار قبل از نصب در زیرساخت های ساختمانی Netlify و یک بار در زمان تولید ، وقتی از دستورالعمل های ابری Lambda برای عملکرد های سایت استفاده میشود، اجرا می شوند. هر دوی این محیط ها موقتی هستند و کانتینرهای موقت را تنها برای مدتی که برای انجام وظایف تعیین شده، فعال می کنند. این بدان معناست که محیط آزادی برای سوء استفاده وجود ندارد و کل سیستم به مدت محدودی برای شبکه های عمومی قابل دسترس است.
3. HTTPS :
Netlify از Let’s Encrypt برای صدور گواهی تأیید برای تمام دامین هایی که نصب می کند، استفاده می کند. شما می توانید تأییدیه های خودتان را آورده و در Netlify دامین نصب کنید.
4. استفاده از عرضه کنندگان کنترل شده و بسیار معتبر :
Netlify تنها از عرضه کنندگان بزرگ سرور ابری که به صورت مرتب از نظر تأییدیه ها و مسائل امنیتی کنترل و بررسی میشوند، استفاده می کند.