مدیریت سرور را برونسپاری کنیم یا نیروی داخلی بگیریم؟ چارچوب تصمیمگیری
بیشتر کسبوکارها وقتی به این سؤال میرسند که یک بار سرورشان از کار افتاده و کسی نبوده که سریع درستش کند. در آن لحظه دو راه به ذهن میرسد: «یک ادمین استخدام کنیم» یا «به یک شرکت بسپاریم». هر دو جواب میتواند درست باشد؛ بستگی به اندازهی زیرساخت، حساسیت سرویس و ساختار تیم شما دارد. این مقاله یک چارچوب برای این تصمیم میدهد، نه یک جواب از پیش تعیینشده.
اگر سؤال شما بیشتر دربارهی کارهای DevOps مثل CI/CD و کوبرنتیز است، مقالهی برونسپاری DevOps یا استخدام را ببینید. اینجا تمرکز روی مدیریت و نگهداری روزمرهی سرور است.
۱. پوشش زمانی: شبها، تعطیلات، مرخصی
سرورها ساعت اداری نمیشناسند. پر شدن دیسک ساعت ۳ بامداد یا حمله در تعطیلات نوروز اتفاق میافتد. یک نفر نیروی داخلی، هر قدر هم متعهد، نمیتواند ۲۴ ساعته و ۳۶۵ روزه در دسترس باشد: میخوابد، مرخصی میرود، بیمار میشود و ممکن است شرکت را ترک کند. پوشش واقعی شبانهروزی با نیروی داخلی یعنی حداقل چند نفر با برنامهی کشیک (On-call).
یک تیم پشتیبانی بیرونی ذاتاً از چند نفر تشکیل شده است، اما این به معنی پوشش شبانهروزی خودکار نیست. اینکه چه ساعاتی و با چه زمان پاسخی پوشش داده میشود، باید در قرارداد نوشته شده باشد.
سؤال کلیدی: اگر سرویس شما یک شب کامل از دسترس خارج باشد، چقدر ضرر میکنید؟ اگر جواب «تقریباً هیچ» است، پوشش ساعت اداری کافی است. اگر جواب «خیلی زیاد» است، به پوشش شبانهروزی نیاز دارید، و باید هزینهی واقعی تأمین آن را با هر دو روش مقایسه کنید.
۲. گسترهی تخصص
مدیریت سرور امروز یعنی سیستمعامل، وبسرور، دیتابیس، کنترلپنل، ایمیل، DNS، فایروال، بکاپ، مانیتورینگ، Docker و پاسخ به حادثههای امنیتی. کمتر کسی در همهی اینها عمیق است. نیروی داخلی معمولاً در چند حوزه قوی است و در بقیه با جستوجو و آزمون و خطا جلو میرود؛ و آزمون و خطا روی سرور Production گران تمام میشود.
تیم بیرونی مشکلات مشابه را روی سرورهای زیادی دیده است. مثلاً اینکه یک آپدیت امنیتی PHP روی کنترلپنلها چه دامهایی دارد (نمونهاش را در تجربهی ما از وصلهی بحرانی PHP نوشتهایم). در مقابل، نیروی داخلی کسبوکار و اپلیکیشن شما را عمیقتر میشناسد؛ مزیتی که نباید دستکم گرفت.
۳. اجزای هزینه؛ چه چیزهایی را باید حساب کنید
مقایسهی «حقوق یک نفر» با «مبلغ قرارداد ماهانه» مقایسهی ناقصی است. برای مقایسهی منصفانه، این اقلام را برای هر دو گزینه بنویسید:
| نیروی داخلی | برونسپاری |
|---|---|
| حقوق، مزایا، بیمه و هزینههای جانبی استخدام | مبلغ قرارداد پایه |
| هزینهی جذب، مصاحبه و دورهی آشنایی | هزینهی راهاندازی اولیه و بررسی وضعیت فعلی (در صورت وجود) |
| پوشش کشیک، اضافهکار و جایگزین در مرخصی | هزینهی کارهای خارج از دامنهی قرارداد یا ساعات اضطراری |
| آموزش و بهروز ماندن | زمان مدیریت قرارداد و هماهنگی از طرف شما |
| ابزارها (مانیتورینگ، لایسنسها) | ابزارهایی که در قرارداد هست یا نیست |
| هزینهی رفتن نیرو: انتقال دانش، دورهی خالی و استخدام دوباره | هزینهی تغییر پیمانکار و انتقال دانش |
یک ردیف دیگر را هم به هر دو ستون اضافه کنید: هزینهی هر ساعت قطعی ضرب در تعداد ساعات قطعی که هر گزینه احتمالاً جلویش را میگیرد. فرض کنید سرویسی دارید که هر ساعت قطعیاش معادل فروش یک روز کامل است؛ در این حالت، تفاوت در سرعت واکنش ممکن است از تفاوت در مبلغ ماهانه مهمتر باشد.
۴. سرعت واکنش
نیروی داخلی که در ساعت کاری پشت میزش نشسته، معمولاً سریعترین واکنش ممکن را دارد، چون فرایند تیکت و هماهنگی در کار نیست. خارج از ساعت کاری، همهچیز به در دسترس بودن او بستگی دارد. در برونسپاری، سرعت واکنش به چیزی بستگی دارد که در قرارداد تعریف شده و به اینکه هشدارها مستقیم به تیم پشتیبان برسد، نه اینکه اول کاربر شما متوجه شود. مانیتورینگ درست (مثلاً با Prometheus و Grafana) در هر دو مدل پیشنیاز واکنش سریع است.
۵. دانش و مستندسازی
بزرگترین ریسک پنهان مدل داخلی، دانش در ذهن یک نفر است. سرورهایی را دیدهایم که بعد از رفتن ادمین، هیچکس رمزها، دلیل تنظیمات یا محل بکاپها را نمیدانست. همین ریسک در برونسپاری هم وجود دارد اگر پیمانکار مستند تحویل ندهد. صرفنظر از مدل، این را الزامی کنید:
- فهرست سرورها، سرویسها و نقش هر کدام
- محل و روش بکاپ و آخرین تست بازیابی
- ثبت تغییرات: چه چیزی، کی، توسط چه کسی و چرا
- رمزها و کلیدها در یک Password Manager سازمانی که مالکش خود شما هستید
۶. امنیت و کنترل دسترسی
سپردن سرور به نیروی بیرونی یعنی دادن دسترسی به افرادی که کارمند شما نیستند. این ریسک قابل مدیریت است، اما فقط اگر آگاهانه مدیریتش کنید. همین قواعد برای نیروی داخلی هم باید رعایت شود:
- کمترین دسترسی لازم: برای هر نفر کاربر جداگانه، نه یک حساب root مشترک. ورود با کلید SSH، نه رمز (روش آن را در امنسازی SSH توضیح دادهایم).
- قابلیت لغو فوری: باید بتوانید در چند دقیقه دسترسی یک فرد یا یک شرکت را کاملاً قطع کنید.
- ثبت و ممیزی: لاگ ورودها و دستورات مدیریتی در جایی نگهداری شود که خود مدیران سرور نتوانند پاکش کنند.
- مالکیت: حسابهای دامنه، DNS، دیتاسنتر و بکاپ باید به نام کسبوکار شما باشد، نه پیمانکار یا کارمند.
- تعهد محرمانگی در قرارداد یا قرارداد عدم افشا.
چه زمانی نیروی داخلی انتخاب بهتری است؟
- زیرساخت بزرگ است و حجم کار روزمره یک یا چند نفر را تماموقت مشغول میکند.
- زیرساخت عمیقاً با محصول گره خورده و تغییرات روزانه به هماهنگی نزدیک با تیم توسعه نیاز دارد.
- الزامات قانونی یا امنیتی، دسترسی افراد خارج از سازمان را محدود یا ممنوع میکند.
- میخواهید توانمندی زیرساخت را بهعنوان یک دارایی بلندمدت در سازمان بسازید.
چه زمانی برونسپاری منطقیتر است؟
- چند سرور دارید و حجم کار برای یک نیروی تماموقت توجیه ندارد.
- به پوشش خارج از ساعت اداری نیاز دارید ولی تیمی برای کشیک ندارید.
- به تخصصهای متنوع ولی گاهبهگاه نیاز دارید (پاسخ به حادثه، مهاجرت، بهینهسازی).
- تیم فنیتان توسعهدهنده است و نمیخواهید زمانش صرف نگهداری سرور شود.
مدل ترکیبی: اغلب بهترین جواب
در بسیاری از سازمانهای متوسط، ترکیب این دو بهتر جواب میدهد: یک نیروی داخلی که اپلیکیشن و کسبوکار را میشناسد و کارهای روزمره را انجام میدهد، بههمراه یک تیم بیرونی برای پوشش شب و تعطیلات، پشتیبان دوم در حادثهها، بازبینی امنیتی دورهای و پروژههای تخصصی. شرط موفقیت این مدل، مرز روشن مسئولیتها و مستندات مشترک است.
چکلیست: قرارداد پشتیبانی سرور باید چه چیزهایی را مشخص کند؟
اگر برونسپاری را انتخاب کردید، چه با ما و چه با هر پیمانکار دیگری، قبل از امضا مطمئن شوید این موارد مکتوب و شفاف است:
- دامنهی کار: کدام سرورها و سرویسها؟ آیا اپلیکیشن، ایمیل و DNS هم شامل است؟ چه کارهایی صراحتاً خارج از دامنه است و چطور هزینه میشود؟
- زمان پاسخ و زمان رفع: برای هر سطح اهمیت جداگانه، و در چه ساعاتی. «زمان پاسخ» با «زمان رفع مشکل» یکی نیست.
- کانالهای ارتباطی: برای مشکل اضطراری با چه کسی و از چه راهی تماس میگیرید؟
- دسترسیها: چه سطحی، با چه حسابهایی، چطور ثبت میشود و پایان قرارداد چطور تحویل و لغو میشود.
- بکاپ: مسئولیت گرفتن، نگهداری و تست بازیابی با کیست؟ هر چند وقت یک بار تست میشود و نتیجهاش گزارش میشود؟
- آپدیتها: آپدیتهای امنیتی با چه زمانبندی و با چه روش تست و بازگشتی انجام میشود؟
- گزارشدهی: چه گزارشی و هر چند وقت یک بار (وضعیت، حادثهها، تغییرات، پیشنهادها)؟
- مستندات و خروج: در پایان همکاری چه مستنداتی تحویل میشود تا انتقال به نفر بعدی بیدردسر باشد؟
- محرمانگی و مسئولیت در صورت حادثه.
اگر هنوز نمیدانید وضعیت فعلی سرورهایتان چطور است، قبل از هر تصمیمی یک بررسی بر اساس چکلیست سلامت سرور لینوکس انجام دهید. نتیجهی آن معمولاً روشن میکند حجم واقعی کار چقدر است.
نمیخواهید این کار را خودتان انجام دهید؟ اگر برونسپاری یا مدل ترکیبی برای شما مناسب است، دربارهی دامنهی کار و نیازهایتان با تیم مروانت صحبت کنید. صفحهی مدیریت و پشتیبانی سرور را ببینید.
