Gene寫了這篇「IT 顧問 Talk (偏見篇): 作業系統之章」, 所以手癢也來寫.
先從一點私人方面聊起, 也可以視為偏見的一種.
很多人知道我是FreeBSD的愛用者, 然後少一些人知道我不「這麼」喜歡Linux(或者說, 我Anti-GPL), 但是其實很多人不知道FreeBSD & Linux都不是我碰的前三種「泛Unix」系統. 我碰的前三種是 AIX, DEC, IRIX.
而事實上直到今天我還是Multi-OS的使用者:「目前」主要工作用Win7, 家裡同時有Win7, WinXP, Mac OS, FreeBSD四個OS在用, 如果把一些Embedded System也算在內的話, 還要加進Linux. 其實我個人的觀點來說, 只要有網路, 有Browser, 有SSH Console, 我幾乎就能工作以及使用, 差別只是方便與否及效率的問題, 所以在不同階段用不同的OS作為主力, 在P社時用FreeBSD + Gnome, 開業時用WinXP與Mac OS, 現在用Win7; 全部的因素都是工作, 假如工作上不挑, 我就會用我偏好的FreeBSD or Mac OS. (其實我最挑剔的是Keyboard, Mouse, Monitor, 不過那是另外一個Topic)
但是選擇Server Side的OS就完全不是這麼一回事.
如果以一般中小企業內部使用來講, 老實講以我接觸的案例還是以Windows Base居多, 我曾經仔細跟業主以及管理者們討論並分析過原因, 其實很大的因素是大多數人並「不知道」或是「刻意迴避」Windows Base的軟體成本. 舉例來說, 很多公司都有Active Directory作為公司網域, 但是大多數並沒有老實的購買License, 光是「標準版」的Windows Server, 以微軟的Open Value License來算, 光是OS本身應該就在兩萬上下, 也就是說, 相同硬體下, 一個FreeBSD/Linux的Server跟一個Windows Base的Server, 在TCO上差了兩萬, 以一般Rack Mount Server來說, 可能就佔掉了20%甚至更高的比例. 要是讓每個業主都被迫要乖乖的繳「微軟稅」, 我相信大多數業主都會想換成FreeBSD/Linux吧. 更不用說一套MySQL或PostgerSQL的價格是0, 而一套MS-SQL Server「標準版」要價15萬左右. 所以當架構逐漸變大, 或是可預期的必須隨著規模而橫向擴充時, 初期選擇Windows Platform會造成極高的Cost, 而且以Windows產品的生命週期, 平均每三到五年必須付出一次升級的費用, 而且痛苦的是可能會升不上去. (例如Exchange Server 2003就不能無痛的升級到Exchange 2008)
所以其實並不是我特別痛恨Microsoft或是特別熱愛FreeBSD/Linux, 而是幾乎所有業主都關心Cost問題, 而在這個基礎上偏向選擇FreeBSD/Linux是必然現象. 不過, 這並不是唯一的因素….
通常在Cost之外, 更重要的問題是建構於其上的架構, 軟體, 以及人員.
首先考慮的是架構. 架構如果必須遷就Client或其他環境影響力, 例如一定需要很嚴謹且複雜的Active Directory網域來協助管理公司甚至集團各單位的存取, 以及跨系統之間的Auth & Audit問題, 那個Windows Base會是比較好的選擇, 畢竟幾乎大多數Office Client幾乎都會是Win32, 而假若用FreeBSD/Linux去規劃出一樣的功能, 得額外花費更多的管理與行政耗損. 但反過來說若幾乎Client都是Unix Base, 那一套建構於Unix上的NIS會比Windows好用太多.
軟體面的話, 分成購入或是自製兩種範疇. 購入的話其實沒得選擇, 很多軟體是Windows Only或是Unix Only(或者幾乎可以說Linux Only), 所以當這個軟體是必要且無可取代的, 毫無選擇必須配合軟體來配置OS. 但若是自製的話, 就得牽涉到開發人員的能力與慣用工具, 以及開發後使用者需要用的UI與操作習慣來決定, 繼續深入的話會延伸到撰寫的語言選擇, 資料庫選擇, 甚至架構選擇以及「容器」選擇, 那又是一個很發散的Topic了, 有空 & 有力氣再來談吧.
而最後在人員方面, 雖說我一直主張, 一個80分的Windows Server Administrator並不一定會比一個80分的Unix Server Administrator便宜, 不過實際上要找到一個60分的Windows Server Administrator比找到一個60分的Unix Server Administrator要來的容易多了. 所以除非是有這樣現成的技術人力或是有長期投資在技術人員訓練的心理準備與預算準備, 那麼有時候寧可多花錢在純軟硬體的TCO上, 也不要最後被人的問題給擊垮.
但是這也不是絕對的, 假若以建構大型網站或系統來說, 既然原先就必須投入大量成本了, 那不如把成本放在買更好的硬體, 或是聘請/培養更好的技術人員還比較實際些.
不過無論如何, 我「個人」還是偏好FreeBSD/Linux, 至少對於具備軟體開發能力的團隊來說, 我們還有機會把「東西」改成我們想要的樣子, 而不是讓我們去配合OS變成另外一個樣子. 至於要FreeBSD或Linux, 甚至是哪種*BSD, 哪種Linux Distro, 那又是另外一個發散的Topic了.
這真是一篇帶來一堆發散Topic的雜文.
自言自語, 寫完跟Gene閒聊時講到一句我覺的應該要紀錄下來的話
「所以啊, 講到HA的時候呢, 最難克服的one point failure是Administrator的大腦永遠都會有個洞 XD」
自己推中肯 XD