مقایسه Linux و Windows Server برای سرور
مقایسه هزینه، مدیریت از راه دور و قابلیتهای Active Directory در Linux و Windows Server. بررسی تفاوت لایسنسگذاری و مناسبترین گزینه برای حجم کاری شما.
پاسخ کوتاه
برای اکثر حجمهای کاری وب و ابری، Linux گزینه پیشفرض است: این سیستم رایگان و کممصرف است و کل دنیای سرورهای متنباز بر پایه آن بنا شده است. Windows Server زمانی انتخاب درستی است که دقیقاً به چیزی از اکوسیستم Microsoft نیاز داشته باشید، مانند Active Directory، فریمورک کلاسیک و مخصوص ویندوز .NET، Microsoft SQL Server، یا اپلیکیشنهای تجاری که فقط روی ویندوز اجرا میشوند. انتخاب بر اساس برتری مطلق نیست، بلکه بر اساس این است که حجم کاری شما در کدام دنیای نرمافزاری قرار دارد. در ادامه تفاوتهای واقعی هنگام اجرای هر کدام روی یک سرور آورده شده است.
هزینه و لایسنس
استفاده از Linux رایگان است. توزیعهای رایج سرور برای نصب روی هر تعداد سرور که بخواهید هزینهای ندارند و شما فقط در صورت نیاز به پشتیبانی پولی یک شرکت، هزینه پرداخت میکنید. Windows Server یک نرمافزار لایسنسدار است: شما به ازای هر سرور هزینه پرداخت میکنید، لایسنس معمولاً به تعداد هستههای پردازنده (processor cores) وابسته است و دسترسی کلاینتها (client access) ممکن است لایسنسهای جداگانهای بخواهد. در یک VPS، این موضوع اغلب به صورت قیمت بالاتر برای طرحهای Windows نسبت به طرحهای Linux با همان مشخصات ظاهر میشود، زیرا هزینه لایسنس در قیمت لحاظ شده است. در یک مجموعه از سرورها، این تفاوت لایسنسینگ تبدیل به یک بند هزینهای واقعی در بودجه میشود.
میزان مصرف منابع
Linux سبکتر است. یک سرور Linux با تنظیمات حداقلی (minimal) به راحتی با مقدار کمی RAM و دیسک، بدون محیط گرافیکی، کار میکند؛ به همین دلیل است که روی طرحهای کوچک VPS بسیار بهینه عمل میکند. Windows Server سربار پایه بیشتری دارد. نسخه Windows Server Core با حذف محیط گرافیکی به کاهش این سربار کمک میکند، اما یک سرور Linux که همان وظیفه را انجام میدهد، معمولاً به حافظه و دیسک کمتری نیاز دارد. در یک VPS کوچک، این تفاوت تعیین میکند که چه مقدار فضای خالی برای اپلیکیشن اصلی شما باقی میماند.
مدیریت از راه دور: SSH در مقابل RDP و PowerShell
شما یک سرور Linux را از طریق SSH مدیریت میکنید که یک اتصال متنی به shell است؛ این روش سبک است، قابلیت اسکریپتنویسی دارد و روی لینکهای کند به خوبی کار میکند. Windows Server از طریق Remote Desktop (یک نشست گرافیکی کامل) و به طور فزایندهای از طریق PowerShell مدیریت میشود که یک shell اسکریپتنویسی بسیار قدرتمند است؛ از نسخه Windows Server 2019، یک سرور OpenSSH اختیاری نیز همراه آن ارائه میشود، بنابراین یک shell از راه دور فقط متنی نیز در آن در دسترس است. هر دو دنیای اکنون قابلیت اتوماسیون خوبی دارند. تفاوت کاربردی این است که مدیریت Linux ابتدا بر پایه متن است و سبک عمل میکند، در حالی که مدیریت Windows از نظر تاریخی ابتدا گرافیکی بوده است، هرچند PowerShell در حال پر کردن این شکاف است. اگر بسیار سرور را همزمان مدیریت میکنید، مدل متنی و SSH با ابزارهایی مانند Ansible به صورت طبیعی مقیاسپذیر است.
پشتههای وب و اپلیکیشن
پشتههای وب متنباز روی Linux رشد کردهاند. Nginx، Apache، اکثر پایگاههای داده و زمانهای اجرای زبانهای برنامهنویسی رایج، همگی بهترین عملکرد را دارند و بهترین مستندات را روی Linux دریافت میکنند؛ همچنین پشته کلاسیک LAMP stack یک محصول بومی Linux است. Windows Server حجمهای کاری وب را از طریق IIS اجرا میکند و خانه طبیعی برای فریمورک کلاسیک .NET و Microsoft SQL Server است. توجه داشته باشید که .NET مدرن (که قبلاً .NET Core نامیده میشد) چندپلتفرمی است و به راحتی روی Linux اجرا میشود، بنابراین یک اپلیکیشن .NET جدید مانند فریمورک قدیمی، شما را مجبور به استفاده از ویندوز نمیکند. سرور را با پشته متناسب کنید: وب متنباز روی Linux، و سرویسهای مخصوص Microsoft روی Windows.
Active Directory و اکوسیستم Microsoft
این شفافترین دلیل برای استفاده از Windows Server است. Active Directory، سیستم مدیریت هویت و دایرکتوری که اکثر شبکههای سازمانی ویندوزی بر پایه آن ساخته شدهاند، یک نقش (role) در Windows Server است و مدیریت سیاستهای گروهی (group policy)، ورود تکمرحلهای (single sign-on) و مدیریت مرکزی دسکتاپهای ویندوزی را انجام میدهد. اگر سازمان شما از Active Directory، Exchange یا سایر محصولات سرور Microsoft استفاده میکند، Windows Server برای آن نقشها واقعاً اختیاری نیست. یک سرور Linux میتواند به یک دامین Active Directory متصل شود و احراز هویت انجام دهد، اما جایگزینی برای خودِ کنترلکننده دامین (domain controller) نیست.
بنابراین کدام را باید اجرا کنید؟
برای سرورهای وب، میزبانی اپلیکیشن، کانتینرها و هر چیزی که در آن به هزینه کم، مصرف منابع پایین و اکوسیستم متنباز نیاز دارید (که اکثریت حجمهای کاری رو به اینترنت هستند)، از Linux استفاده کنید. زمانی از Windows Server استفاده کنید که به Active Directory، فریمورک کلاسیک .NET، Microsoft SQL Server یا یک اپلیکیشن مخصوص ویندوز نیاز دارید. بسیاری از سازمانها هر دو را اجرا کرده و برای هر نقش، انتخاب جداگانه انجام میدهند. اگر سیستمعاملی که در حال مقایسه آن با Linux هستید FreeBSD است و نه Windows، مقایسه Linux در مقابل FreeBSD به جای آن پاسخ میدهد.
اگر میخواهید نگاه گستردهتری به سمت Unix داشته باشید، FreeBSD 15 به عنوان یک سیستمعامل سرور ارزش بررسی دارد.
FAQ
Is Linux better than Windows Server?
هیچکدام در حالت انتزاعی برتر نیستند. Linux برای میزبانی وب، کانتینرها و سرورهای حساس به هزینه یا با منابع محدود، گزینه پیشفرض بهتری است، زیرا رایگان، سبک و دارای اکوسیستم متنباز است. Windows Server زمانی بهتر است که به Active Directory، فریمورک کلاسیک .NET، Microsoft SQL Server یا یک اپلیکیشن تجاری که فقط روی ویندوز اجرا میشود، نیاز داشته باشید. پاسخ صحیح به حجم کاری شما بستگی دارد.
Is Linux more secure than Windows Server?
هیچکدام به طور خودکار امن نیستند و هر دو را میتوان به صورت امن اجرا کرد. Linux سطح حمله پیشفرض کوچکتری روی سرور به شما میدهد: یک نصب حداقلی فاقد دسکتاپ گرافیکی و سرویسهای کمتر است و وصلههای امنیتی در هر توزیع رایگان هستند. Windows Server هدف بزرگتر و یکدستتری برای بدافزارهای عمومی است، اما Microsoft آن را با یک برنامه ماهانه قابل پیشبینی وصله میکند و قابلیت سختافزاری (hardening) خوبی دارد. در عمل، میزان قرارگیری در معرض خطر، پیکربندی و انضباط در اعمال وصلهها، بسیار بیشتر از نام سیستمعامل در امنیت نقش دارند.
Why is a Windows VPS more expensive than a Linux one?
چون Windows Server یک نرمافزار لایسنسدار است و هزینه لایسنس در قیمت طرح گنجانده شده است، در حالی که اجرای Linux رایگان است. یک میزبان (host) برای ارائه ویندوز، به ازای هر سرور به Microsoft هزینه پرداخت میکند و این هزینه به شما منتقل میشود. یک VPS لینوکسی با همان مشخصات، چنین لایسنسی ندارد، بنابراین معمولاً برای همان CPU، حافظه و دیسک، هزینه کمتری دارد.
Can I run .NET applications on Linux?
بله. .NET مدرن که قبلاً .NET Core نامیده میشد، چندپلتفرمی است و به خوبی روی Linux اجرا میشود، بنابراین اپلیکیشنهای جدید .NET نیازی به ویندوز ندارند. استثنا، فریمورک قدیمی و مخصوص ویندوز .NET و کدهایی است که به اجزای مخصوص ویندوز وابستهاند که همچنان به Windows Server نیاز دارند. قبل از انتخاب سیستمعامل، بررسی کنید که یک اپلیکیشن خاص از کدام نسخه .NET استفاده میکند.
Do I need Windows Server for Active Directory?
برای یک کنترلکننده دامین (domain controller) واقعیِ Active Directory، بله. Active Directory یک نقش در Windows Server است و هیچ جایگزین آمادهای در لینوکس برای خودِ کنترلکننده دامین وجود ندارد. سرورهای Linux میتوانند به یک دامین Active Directory متصل شوند و احراز هویت کنند، و Samba 4 میتواند به عنوان یک کنترلکننده دامین کامل برای دامینهای کوچک و متوسط عمل کند (با محدودیتهای شناخته شده در مورد forest trusts و برخی ویژگیهای جدید AD)، اما اکثر شبکههای عملیاتی Microsoft همچنان کنترلکننده دامینهای خود را روی Windows Server اجرا میکنند.