آنچه در این مقاله میخوانید
راهکارهایی برای توسعه دهندگان در نت ملی
۱۵ اردیبهشت ۱۴۰۵
وقتی دسترسی به اینترنت ناپایدار میشود، اولین چیزی که از کار میافتد فقط یک سایت یا API نیست؛ بلکه زنجیرهای از ابزارهایی است که روزانه به آنها تکیه کردهایم. از نصب یک پکیج ساده تا ارتباط با سرویسهای خارجی، همه چیز به پایداری اینترنت وابسته است.
برای برنامهنویسها، اینترنت بخشی جداییناپذیر از فرآیند توسعه است. هر اختلال در آن میتواند سرعت کار را کم کند و در مقیاس بزرگتر، روی کیفیت توسعه و هماهنگی با ابزارهای جهانی اثر بگذارد.
در چنین شرایطی، مسئله اصلی این است که چطور میشود سیستمهایی ساخت که در این اختلالها متوقف نشوند؛ یعنی وابستگیها را طوری مدیریت کرد که پروژه به اینترنت بینالملل گره نخورده باشد.

در این مقاله، به راهکارهایی برای توسعه در شرایط “نت ملی” میپردازیم؛ راهکارهایی که به حفظ جریان توسعه و افزایش پایداری پروژهها کمک میکنند.
در ادامه خواهید خواند:
- چرا در قطعی اینترنت خارجی پروژهها از کار میافتند؟
- در زمان قطعی اینترنت چه کارهایی میتوان انجام داد؟
- جمع بندی
- سوالات متداول
چرا در قطعی اینترنت خارجی پروژهها از کار میافتند؟
مشکل معمولاً از بخشهایی شروع میشود که در حالت عادی دیده نمیشوند:
- CDNهایی که فایلهای استاتیک را لود میکنند
- APIهایی که بهصورت روزمره به آنها درخواست میزنیم
- پکیجهایی که از رجیستریهای خارجی نصب میشوند
- سرویسهای SaaS که پشت صحنه استفاده میکنیم
تا وقتی اینترنت پایدار است، این وابستگیها مشکلی ایجاد نمیکنند؛ اما با قطع اینترنت خارجی، همین نقاط به گلوگاه اصلی تبدیل میشوند.
در زمان قطعی اینترنت چه کارهایی میتوان انجام داد؟
اصل مهم در این شرایط، کاهش وابستگی مستقیم به اینترنت بینالملل است. این کار معمولاً با چند رویکرد ساده انجام میشود:
استفاده از mirrorهای داخلی
برای ابزارهایی مثل npm و pip و composer و Docker، استفاده از mirrorهای داخلی کمک میکند فرآیند نصب و build بدون اتصال مستقیم به منابع خارجی ادامه پیدا کند.
در واقع بهجای اینکه هر بار به منبع اصلی وصل شوید، از یک نسخه کششده و نزدیکتر استفاده میکنید.
دسترسی سریع به میرورهای نرمافزاری در شبکه ملی
میرور نرم افزاری چیست؟
این کار باعث میشود:
- نصب پکیجها بدون اینترنت پایدار هم انجام شود
- سرعت دانلود بیشتر شود
- فرآیند build قابل پیشبینیتر شود
- وابستگی به registryهای خارجی کمتر شود

در برخی زیرساختهای داخلی مثل لیارا، این موضوع با ارائه mirrorهای آماده برای ابزارهای پرکاربرد تا حد زیادی پوشش داده شده و توسعه در شرایط محدود را سادهتر میکند.
دسترسی به مستندات در سایت های داخلی
یکی از مشکلات رایج در زمان محدودیت اینترنت، عدم دسترسی به مستندات زبانها یا فریم ورکهاست.
برای همین داشتن نسخه داخلی از documentation میتواند فرآیند یادگیری و توسعه را ادامهدار نگه دارد. برخی پلتفرمهای داخلی این امکان را فراهم کردهاند تا مستندات زبانها و ابزارهای مختلف بدون نیاز به اینترنت خارجی در دسترس باشند.
| نام | آدرس |
| برنامه آماده DevDocs لیارا | https://liara.ir/one-click-apps/devdocs |
| مرکز مستندات وزیر وب | https://c.vazirweb.ir/docs/index.html |
| مستندات لیارا | https://docs.liara.ir |
| مستندات رسمی | https://thealibigdeli.ir/official-docs |
هاستینگ و زیرساخت داخلی
برای اینکه سایت یا اپلیکیشن شما در شرایط اضطراری و زمان قطعی اینترنت در دسترس باشد، استفاده از هاست ابری مدیریتشده کمک میکند سرویسها روی زیرساخت داخلی اجرا شوند و وابستگی به اینترنت خارجی کمتر شود.
همچنین برای بخش دادهها، استفاده از دیتابیس ابری باعث میشود مدیریت و نگهداری اطلاعات بدون درگیری با زیرساخت خارجی ادامه پیدا کند.
برای مدیریت دامنه و دسترسی پایدار به سرویسها، استفاده از DNS مدیریتشده نقش مهمی در جلوگیری از اختلال در دسترسی کاربران دارد.
در این حالت معمولاً از موارد زیر استفاده میشود:
- سرور یا VPS داخلی
- دیتابیس مدیریتشده
- Object Storage داخلی
- DNS و CDN داخلی
این مدل کمک میکند بخش زیادی از سرویسها مستقل از اینترنت بینالملل کار کنند.
زیرساختهای داخلی و سرویسها
| نوع سرویس | کاربرد | لینک |
|---|---|---|
| هاست ابری مدیریت شده (PaaS) لیارا | اجرای اپلیکیشنها | https://liara.ir/products/cloud-host |
| دیتابیس ابری مدیریت شده (DBaaS) لیارا | مدیریت دیتابیس | https://liara.ir/products/cloud-database |
| سرور مجازی ابری (IaaS) لیارا | زیرساخت اختصاصی | https://liara.ir/products/cloud-server |
| فضای ذخیرهسازی ابری (Object Storage) لیارا | ذخیره فایلها | https://liara.ir/products/object-storage |
| برنامههای یک کلیکی (SaaS) لیارا | https://liara.ir/one-click-apps | |
| DNS | مدیریت دامنه | https://liara.ir/products/dns |
دسترسی به ابزارهای توسعه و ریپازیتوریها
در بعضی شرایط برای مدیریت کد، استفاده از ابزارهایی مثل GitHub یا GitLab باعث میشود تیمها همچنان بتوانند روی سورسکدها کار کنند و جریان توسعه متوقف نشود.
در کنار آن، در بعضی بازهها، دسترسی به سرویسهایی مثل Vercel و Next.js و SourceForge و Let’s Encrypt برقرار بوده و همین موضوع کمک کرده بخشهایی از فرآیند توسعه مثل deploy و مدیریت SSL بدون توقف ادامه پیدا کند.
مدیریت فایلهای استاتیک و CDN
فایلهای استاتیک معمولاً بیشترین مشکل را در زمان محدودیت اینترنت ایجاد میکنند.
در این شرایط، استفاده از فضای ذخیرهسازی ابری (Object Storage) کمک میکند فایلها داخل زیرساخت داخلی نگهداری شوند و از آنجا سرویسدهی شوند.
این کار باعث میشود وابستگی به CDNهای خارجی کمتر شده و UI و تجربه کاربری حتی در شرایط اختلال هم حفظ شود.

وابستگی کمتر به سرویسهای خارجی
سرویسهایی مثل APIهای خارجی، SaaSها یا سرویسهای third-party معمولاً نقطه شکست سیستم هستند.
در این شرایط بهتر است:
- سرویسهای حیاتی self-host شوند
- برای سرویسهای خارجی fallback در نظر گرفته شود
- دادههای پرمصرف cache شوند
جمع بندی
قطعی یا محدودیت اینترنت بیشتر از اینکه یک مشکل مقطعی باشد، نشان میدهد چقدر زیرساخت توسعه به سرویسهای بیرونی وابسته است. اگر این وابستگیها از قبل مدیریت نشده باشند، حتی یک اختلال ساده میتواند کل روند توسعه را مختل کند.
در چنین سناریوهایی، استفاده از زیرساختهای داخلی و سرویسهایی مثل هاست، دیتابیس و ذخیرهسازی ابری، کمک میکند سیستم حتی در شرایط محدود هم پایدار باقی بماند.
سوالات متداول
۱. در زمان قطعی اینترنت خارجی برنامهنویسها چه کار میکنند؟
معمولاً وابستگیها را کاهش میدهند و از mirrorهای داخلی، cache و سرویسهای self-hosted استفاده میکنند تا فرآیند توسعه ادامه پیدا کند.
۲. چرا پروژهها در شرایط نت ملی دچار مشکل میشوند؟
چون ابزارهای توسعه مثل npm و Docker و APIها و CDNها به اینترنت خارجی وابستهاند و با قطع آنها، فرآیند build و deploy مختل میشود.
۳. mirror داخلی چیست و چه کمکی در توسعه میکند؟
mirror داخلی نسخه کششدهای از پکیجها و ایمیجهاست که بدون اتصال مستقیم به منابع خارجی استفاده میشود و باعث ادامه روند توسعه در شرایط محدود میشود.
۴. آیا میتوان بدون اینترنت خارجی هم توسعه نرمافزار انجام داد؟
بله، اما فقط در صورتی که وابستگیها از قبل cache یا mirror شده باشند و سرویسهای حیاتی روی زیرساخت داخلی قرار گرفته باشند.
۵. چه سرویسهایی بیشتر تحت تاثیر قطعی اینترنت هستند؟
CDNها، APIهای خارجی، registryهای پکیج (مثل npm و pip) و سرویسهای SaaS بیشترین وابستگی را به اینترنت خارجی دارند.

