【Linux故事】Linux的核心就是選擇、控制和學習新知識
譯文【51CTO.com快譯】自打小時候第一次幫助老爸讓卡片分類機正常使用以后,我就搗鼓過好多計算機和電子產品,從不害怕嘗試新產品或者搞壞新產品。這些年來,我用過除Vista之外的每一個Windows版本,不過我在使用Commodore Amiga 1000或在那臺老古董386上運行OS/2 Warp時覺得最好玩。生平頭一次接觸Linux是在一臺Web服務器上運行Red Hat 5。由于我從小就玩TRS-DOS和Commodore BASIC之類的系統,所以用起來得心應手。
在同事向我介紹使用GNOME的Red Hat 6之前,我其實對Linux不是很迷戀。之后,連忙試用了一系列不同的發行版,包括Mandrake Linux、原版Debian和Knoppix。有一段時間,我經常雙啟動進入到Windows 2000和Knoppix,但后來發現:越來越多的是,除非我需要Windows管理服務器,否則不會啟動進入到Windows。
我很快就迷上了Linux,以至于想看看要是完全丟棄Windows會怎樣。那時我在雙啟動Mandrake;由于之前做過大量使用Borland Delphi開發的工作,于是我開始先搗鼓起Free Pascal和Lazarus。我清查了一下自己使用哪些應用程序,結果發現其實唯一需要Windows來處理事務的是Microsoft Money。我查看了GnuCash后,它在我眼里實在太像商業會計軟件包了。于是我決定自編程序;又由于我熱衷于Linux,決定它應該是開源免費程序。我用了兩周的時間編寫出了第一個版本,命名為“CheckBook Tracker”。
2003年,我將該程序發布到Freshmeat.net(現在的freecode.com)上后,驚訝地發現許多人問我“為什么你免費贈送這個軟件?”或者“你完全免費能得到什么實惠?”我的問答始終是“鼓勵人們使用Linux。”大概有七年的時間吧!我一直用CheckBook Tracker來平衡收支,直到后來不再開支票為止。遺憾的是,現在這個項目已停掉了,但是源代碼仍在那里。我偶爾還會收到有人發來的電子郵件,請教相關問題。
我繼續從事IT支持方面的工作,開始使用一個特殊的小巧Linux,為客戶安裝基于軟盤的互聯網防火墻,開始看到在公司企業使用自由開源軟件(FOSS)的優點。盡管那時Linux桌面仍并不適合普通人,要是出現了需要解決的技術問題,通常可以找到一個解決這個問題的開源項目。
2004年,我進入EvriChart公司,擔任IT主管。后來,公司規模變得很大后,我的頭銜換成了CIO。這讓我有機會在早期階段將整套IT基礎設施往我希望前進的方向推進。一開始,我們有六名員工和一個為減少電話開支而開發的Asterisk電話系統。我停止了雙啟動,在辦公臺式機上完全丟棄了Windows。我仍運行Mandrake 10.1;到2006年,決定換成Ubuntu 6.06 Dapper Drake。此后我基本上就用Ubuntu。最初是由于桌面管理工具似乎更容易使用。現在,由于我們更加離不開業務應用軟件,比如OpenLDAP、Gluster、PXE和Puppet,我慢慢改成了Fedora。
隨著我們在EvriChart不斷增加技術,我總是首先找Linux尋求解決方案。正由于如此,在這10年間,我們省下了估計超過40萬美元的軟件許可證和專用硬件費用。其中大部分是服務器操作系統許可證和存儲系統,但也有我們用PHP自行編寫的軟件,而不是購買商業產品的許可證。
雖然我們確實有少數幾臺機子運行Windows,但總是根據要求來決定――比如驅動特定的企業掃描硬件或公司需要某個特定版本的微軟Office。我們的域基礎設施搭建在OpenLDAP驗證系統及Samba服務器之類的系統上,以便驗證個別Windows用戶的身份。我們有幾個內部開發的應用軟件,我們用來處理圖像和工作流程,它們都基于Web服務器,主要是用PHP編寫而成的,那樣它們就能做到與客戶軟件無關。我們如同使用樂高積木那樣使用Linux和OSS,使用一點腳本(充當粘合劑)將不同的項目組合起來,那樣我們只要花極少的時間和精力,就能獲得完全定制的系統。
Windows和專有文件管理系統力不從心
早期促使我們完全改用Linux來處理圖像的一個因素是由于我們當時使用的基于Windows服務器的文檔管理系統。我們當時面臨困境:我們在過去幾年花了2.5萬多美元的那套商業應用軟件根本力不從心――僅僅為了保持正常運行,我們每天就需要清除數據,要么它就是不堪重負。這促使我們開發自己的解決方案,再次使用Linux和各種開源應用程序,就像積木那樣:我們使用一些PHP代碼和Web接口把它們結合起來。之后,我們的DocStore文檔管理系統引擎就這樣問世了。
由于我們并沒有被任何遺留系統所束縛,能夠使用更現代化的技術,從頭開始進行開發。我們研究了Flickr和Facebook是運作其基礎設施的,Reddit的Alexis Ohanian和Steve Huffman在弗吉尼亞做一場報告時,我有幸結識了他們倆,了解了他們是如何處理網站生成的龐大流量。正是與Alexis在基礎設施設計方面的一番交流讓我受益良多,得以清楚瓶頸在哪里,如何避免這些瓶頸。因而,我們設計出了單一文檔庫,必要的話,只要為系統添加更多的組件(積木),該文檔庫就可以滿足美國每一家醫院的所有文檔存儲要求。
為了確保高可用性,我們嘗試了幾種系統,但是最后選擇了結合用于文件存儲的ZFS和Gluster、異地復制的在線備份以及用于數據庫管理和異地復制的Galera及MariaDB。所有數據都用AES-256加密,那樣不僅磁盤故障后,我們能存活下來,就算服務器故障、甚至整個數據中心故障后,照樣也能存活下來。
我們的五處地方使用OpenVPN連接起來,我們還實施了一套自定義的iptables + Packetfence網絡訪問控制(NAC)系統 ,用于內部網絡控制,還在網絡邊界部署了自定義的iptables防火墻。我們是用大眾化服務器硬件和Linux搭建好這一切的,成本極少――我們的網絡上根本就沒有一個專有的“黑盒子”設備。在去年,我請廠商為把我們的一些高可用性基礎設施換成商業數據存儲產品報個價,結果發現,僅僅復制我們只花了2萬美元的硬件和Linux做成的系統,最低報價也要30萬美元。
Linux易于使用,誰都可以安裝,甚至是無意安裝!
我們使用PXE網絡安裝服務器和Puppet系統,這讓我們用不了10分鐘就能搭建好一個新的Linux桌面,而且完全不用插手。我們常常經歷成長階段:我們突然需要部署多個新的桌面,而這套自動化系統為我們的工作人員省掉了好多工時。
有一天,有個用戶安裝的Windows突然在其筆記本電腦上出現了損壞,她無意中安裝了Linux,結果給了我們一個驚喜。她的筆記本電腦無法從硬盤啟動后,居然從網絡自動啟動。她看到PXE安裝屏幕后,就按了回車鍵,Linux桌面自動安裝上了所有的默認網絡安全設置和應用程序。然后,她用其網絡帳戶登錄進入到里面,發郵件給我,說她的Windows已更新,她想知道為什么微軟Office現在看起來大不一樣,“原來的Outlook跑哪里去了?” Linux居然如此容易,現在無意中也能安裝和配置它,哪怕是在筆記本電腦上,為此我們大笑一場。
我本人的安裝系統
我本人的安裝系統包括:Gnome 3、Chrome、LibreOffice、PhpStorm、MySQL Workbench和ClusterSSH。我使用的工具幾乎都是基于Web服務器,比如用于開發工作的Jira及Stas、phpLDAPadmin、CUPS、BandwidthD、Ganglia以及用于管理和監控的LogAnalyzer。我還使用ownCloud,它可以為我在諸多設備之間同步我的KeePassX數據庫文件。
我是游戲迷,Linux最近在游戲領域嶄露頭角,并取得了長足進展,這讓我挺興奮的。我運行Valve的Steam平臺,最近在空余時間你能看到我在網上玩《方舟:生存進化》、《殺戮空間2》或《虛幻競技場2015》測試版游戲。我目前擁有通過Steam為自己和孩子們購買的61款商用Linux游戲;雖然我在家里仍安裝了一套Windows系統用來玩游戲和處理攝影作品,但還是期盼哪一天不需要用它。
在我看來,Linux的核心就是選擇、控制和學習新知識。我認為,這是對一些人來說Linux不是那么“容易”的一個原因。一些人更喜歡就只有一個按鍵的鼠標,因為不容易搞糊涂。但本人還是寧可使用有20個鍵的鼠標,以獲得更大的靈活性,花上幾個鐘頭來摸索用法。沒錯,我運行Gnome 3是因為我喜歡它,而不是因為我不得不運行它。
作者簡介:EvriChart公司CIO兼首席信息安全官,為美國各地的醫院管理病歷。熱衷于網絡安全和Linux。他是信息技術行業的公認領袖,尤其致力于迅速、高效地開發新的解決方案,解決客戶問題。
原文標題:Linux is about choice, control, and learning something new,作者:Tony Maro
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】