企業往往被開放源碼低成本的表相所吸引,但真要採用又顯得裹足不前。本次專題採訪Novell全球導入OpenOffice、及艾群科技與松凌科技應用開放源碼開發專案,再參考iThome本身應用Linux、Apache、MySQL架設網站的經驗。發現開放源碼的確超省錢,不過,軟體廠商的「服務」才是應用開放源碼成敗的關鍵因素。

企業初聞開放源碼(Open Source)之際,第一個印象就是「免費」。事實上,省錢未必是選擇開放源碼的關鍵因素,品質、穩定、安全及易於維護等才是真正的好處。不過,要享受到以上好處的前提,是廠商的「服務」,企業與其費心研究開放源碼為何物,倒不如慎選值得信賴的廠商。

在用戶端的應用方面,Novell全球導入自由軟體(Free Software)OpenOffice的經驗告訴我們,要提前告知員工,讓他們有心理準備,再分階段逐步實施,提供自動化的機制及完整的資訊,使員工從安裝到使用,都可以利用「自助服務」的方式完成。最重要的是,彈性容許微軟Office的存在,避免造成工作上的不便。

更成熟的應用則是在伺服器端及委外專案。善用開放源碼不但省時、省力又省錢,艾群科技研發部經理陳寶元舉例:「曾經找到一個CRM的開放源碼專案,竟然已經滿足客戶60%的需求。」只要補足其餘4成的功能,再強化使用者介面就可以結案,當場省下超過一半以上的人力及時間,相對客戶也受益。開放源碼的好處

除了省錢,其實開放源碼有更實際的好處,許多企業選擇開放源碼的原因,反而是看上開放源碼的品質及易於維護性,因為程式碼是公開的,所以掌握度相對提升,也就享有彈性修改的自由。

省時、省力

艾群科技在為某大電信公司製作電子報系統時,其中一項非常重要的主模組—訊息發送平臺需要有定期排程機制,預估如果由一位工程師獨立開發的話,須耗費兩個月的工時,為了節省額外的人力、時間與成本,因此陳寶元建議客戶搭配適合的開放源碼套件。

現在有很多開放源碼社群設計的軟體框架(Framework),Struts與Hibernate即是。所謂的框架是萃取同類型應用共同的部分,包裝與更新現成的方法(Method)與函式(Function),不但架構簡潔,而且易於維護。陳寶元以其經驗道出:「既有現成設計良好的東西可用,何必花費人力做重複的工作。」

陳寶元曾參與戴姆勒克萊斯勒建置入口網站,他們應用MVC設計架構,以Struts建置Web應用程式的前端,並以Hibernate建構後端,存取資料庫。Struts的架構利於軟體開發人員將系統的特質與所展現的行為記錄在組態檔(Configuration File)中,只要修改組態檔即可因應客戶多變的需求,呈現不同的行為。Hibernate的架構萃取所有存取資料庫的行為,最精華的部份是處理ORM(Object-Relation Mapping)與連結管理(Connection Management),從資料庫連結的建立與關閉、資料查詢到回饋、程式物件與資料庫結構關係的對應等,只要呼叫Hibernate提供的方法,就可以滿足資料存取的需求。

學習新科技的快感

在戴姆勒克萊斯勒的專案建置過程中,艾群應用Apache的Log4J追蹤記錄程式的執行,用以稽核程式的品質,由於Log4J在程式執行階段,與應用主程式獨立切開,使主體程式的結構不但更為簡潔、易於維護,而且增加應用主程式執行的速度,因此相對提升應用程式執行的效能。再者Log4J是Java實作的開放源碼、有非常完整的記錄機制,不用到主機下指令;在執行階段,也不用停止應用主程式,只要直接修改組態檔就可以啟動記錄機制或修改記錄的行為。戴姆勒萊斯勒的IT人員非常喜歡這種聰明先進的設計,相對滿足IT人員學習新知的快感。

品質

許多人質疑開放源碼的品質,在缺乏資金挹注的情況下,可能很難與授權軟體一較高下。不過,這種想法似乎太以偏概全,反思商用軟體就真的擁有比較好的效能及穩定性嗎?Windows用戶對「藍色死亡畫面」應該不陌生,相對於Windows系統不時需要重新開機,Linux似乎是比較穩定的系統。選擇成熟、主流的開放源碼專案,反而比商用軟體享有更好的品質。

未來性

微軟在去年底宣布對Windows NT的支援只到12月31日,基本支援期限過後,後續的修補程式將向企業收費,而且最多延長兩年的支援期間。那麼企業即使在系統運作正常的情況下,也要被迫升級。相較之下,開放源碼的程式碼是公開的,「只要有錢,就一定有人幫你解決。」松凌科技技術總監李日貴這麼認為。

Novell協理何錦潭請企業反思:「付出高額授權費的同時,真的有獲得相對同等的效益嗎?」廠商研發軟體向使用者收取授權費,是天經地義的事情,但要價太高就不合理。而且單一廠商壟斷的市埸,將使軟體發展停滯不前,因為使用者安於單一模式,對於不同的設計會產生排斥感,將抑制其他發明的出現。

開放源碼是鼓勵創新的行為,何錦潭比喻:「開放源碼的精神就像水一樣。」水是自然存在的東西,只要下雨就有水,如果水是壟斷的事業,就不會有更好品質的水。一旦開放競爭,各家廠商就會挖空心思設法提供品質更好的水,並致力於更有效益地利用水資源,再附加更好的服務內容,到最後是每個人都受惠。

自由

未來性的另一個層面就是自由,企業被單一廠商綑綁的痛苦,在於過度依賴。如果企業的生存與特定廠商緊緊相繫,雙方就變成站在同一條船上的生命共同體。選擇開放源碼可以專業度及服務品質選擇合作的廠商,雙方維持「不沾鍋」模式,不合則換。

即使是專案開發的系統,陳寶元表示:「如果專案中使用開放源碼,結案時會將程式碼及相關文件一併交給客戶,艾群保有著作權,客戶則可行使修改的權利。」雖然說是臺灣的企業被資訊廠商寵壞,所以不用付權利金,就可以取得程式碼;但相對的好處,是程式碼在手上,即使廠商換人做做看,還是可以確保系統永續維護。

只要專案選擇的開放源碼是熟知的公開標準(Open Standard),就算更換廠商,接手者也很容易解讀程式架構,剩下的只是商業邏輯的問題,所以學習曲線並不高。企業不用再擔心軟體開發商簽約前後兩種嘴臉,既然系統不是黑盒子,那麼企業有權利選擇最好的服務提供者。真的能夠省錢嗎?

雖然使用開放源碼可以省去軟體授權費用,然而很多情況顯示,導入開放源碼未必省錢,因為以總體擁有成本來衡量,系統移轉的費用及風險、教育訓練、維護及不習慣造成時間的延遲等,都是無形的成本。所以事前的審慎評估,及後續導入的方法都是企業應考量的面向。

用戶端需考量總體擁有成本

依據Novell全球導入SuSE Linux及OpenOffice的經驗,一年節省200萬美金的授權費,的確省下龐大的成本。何錦潭分析:「授權費用及硬體成本絕對是大幅下降。」

不過,iThome資訊部經理朱凌峰認為:「應以總體擁有成本來看待用戶端的應用。」移轉的成本及員工的教育訓練是一次的陣痛,後續人力支援、不習慣導致工作延遲及解決問題擔誤的時間與商機都是成本。其次未來徵才時,一般員工的電腦操作條件必須從「熟Windows、Office操作」,改成「諳Linux與OpenOffice」。

保誠人壽資訊系統呂長松表示:「有制度的企業不在乎花錢。」太複雜的企業環境不利管理,臺灣企業的資訊人員編制精簡,用戶端軟體如果技術門檻太高,將使資訊人員疲於奔命。企業害怕改變的心態,是可以預期的問題,如何降低因為改變伴隨而來的麻煩,就是用戶端導入開放源碼的關鍵成本。

何錦潭認為:「翻動現有的架構都是痛苦的。」但當愈來愈多的企業使用開放源碼,經驗的累積將使導入開放源碼的障礙逐漸下降,也將促使開放源碼更貼近使用者的期待。

專案將減少軟體授權費,卻增加服務的成本

呂長松分析:「委外的專案可從軟體授權及維護兩方面分析成本。」在專案初期,開放源碼的確節省軟體授權的費用,但是省下的錢多數會移轉成為服務的成本,不過後續的確可省下歷年的商用軟體授權費用。

陳寶元則認為:「檯面上,標案型式的專案,企業未必因為應用開放源碼省到多少錢,反而是軟體開發商節省開發成本。」但是檯面下,呂長松補充:「專案搭配開放源碼,企業當然會相對要求合理的價格囉!」

如果企業非經由標案,而是自行尋求信譽良好的軟體開發商開發專案。例如艾群科技就遇到客戶對系統的設計很滿意,但因價格太高而無法接受,正所謂「殺頭的生意有人做,賠錢的生意沒人做」,陳寶元就會嚐試找尋開放源碼以求降低成本,謀求買賣雙方都可以接受的價格。服務才是開放源碼的重點

何錦潭表示:「已經有人大膽預言,未來10到15年,所有的軟體公司都會轉變成服務業。」Forrester分析師Julie Giera也道出企業導入開放源碼的重點:「開放源碼的主角不會是軟體,而是服務。」若開放源碼省錢卻不能省事,甚至影響到正常營運,就無法見容於企業。企業的IT人員,未必具備開放源碼專長,而且有離職異動的可能,廠商的專業服務才能保證系統永續維護的可能。

服務包括前期的諮詢、與安裝後的後續技術支援,以及內部人員的培訓等。呂長松認為如果暢言開放源碼的廠商,可以清楚明訂SLA(Service Level Agreement;服務等級協定),不讓企業倍嚐求救無門的痛苦,就考慮採用開放源碼。開放源碼的問題

無論商用軟體或開放源碼,沒有任何解決方案是絕對的王道,企業在採用開放源碼之前,必須一併考量所有可能的問題:

沒有標準就難確保相容性

開放源碼享有修改的自由,因此,今天的標準明天可能被遺棄。同一個元件或技術的不同版本,向下相容就可能有問題,因此軟體開發商在追隨新版時,將被迫修正過去的設計。

李日貴直言:「Java是開放源碼,但昇陽不允許架構開放社群任意修改,就是不希望相容性被破壞!」之前,IBM的Eclipse推出SWT與Java的Swing對抗,SWT的執行效率優越,但是不同的平臺需要不同的編譯器,就破壞了Java「Write Once,Run Everywhere」的精神。

還好,開放源碼會自行形成開放標準,為避免投資在未來可能過時的技術,最保險的方法就是選擇主流的開放源碼。

開放源碼的相容性,主要受影響的對象是軟體開發商,企業無需過度擔心,因為軟體開發商包裝好的成品,只要邏輯無異常,系統可以正確及穩定的運行,企業不必也不會在意技術面如何實作。反倒是軟體開發商應慎選開放源碼標的,以簡化後續技術更新的成本。

維護性是一體兩面的問題

事實上,維護性應該屬於開放源碼的優勢,因為程式碼是公開的,相對提高掌握度,企業可以彈性修改。即使商用軟體提供網站資源、成立社群,並有大量的參考書籍,表面上佔優勢,但畢竟是用戶無法了解的黑盒子。

使用開放源碼,多數的問題可以在網路上找到解答,如果是新的需求,可以透過開放源碼的The Mail Archive,在Bugizilla留下臭蟲回報或需求給專案的開發者。不過,它的缺點是可能遙遙無期,只要開發者回應「不予回覆」,企業就只好自己看著辦。因此,李日貴坦言:「企業如果沒有技術優勢,維護就有困難。」解決之道還是回到服務的重要性。

企業疑慮

軟體開發商在專案中搭配開放源碼的套件,一定必須事先告知。在系統分析之後,如果認為可以搭配開放源碼,就會與客戶討論開放源碼的概念及可行性,說明哪些模組使用開放源碼,並提供相關網站讓客戶可以深入了解。

如果企業不甚了解開放源碼,心態上難免排斥軟體開發商拿開放源碼來「湊數」,另一個層面也不了解授權方式,並擔心品質與安全性。

授權的認知

首先,直接必須面對的是授權問題,大家對開放源碼的第一印象就是免費,但後續連帶的問題是需不需要公開自己的程式碼?與其公開程式碼,企業寧願花錢購買商業授權。最著名的GNU GPL(GNU General Public License)用意即在保護原創,雖然免費,但只要系統有一個模組用到GNU GPL的元件,整個專案就必須全部公開。李日貴舉例:「好像病毒一樣具傳染性,只要沾上就得完全開放。」

雖然開放源碼沒有罰則,不公開也不會有什麼影響,不過客戶擔心系統商業邏輯被公開,陳寶元表示:「通常企業會要求避免使用GNU GPL的開放源碼。」現在開放源碼已發展出Dual License(雙許可認證)模式,像MySQL雖然是GNU GPL模式,但可以選擇購買商業授權,不公開程式碼。

其實開放源碼的授權還包括LGPL、Apache_Like、BSD等,太多的授權模式,企業未必了解,因此,軟體開發商有責任說明其所應用的開放源碼的授權模式及注意事項。

安全性

相對於Windows,Linux無庸置疑是更安全的系統。雖然目前市面上針對Linux設計的防毒軟體不多,但朱凌峰認為:「根本沒有迫切需要。」雖然Linux系統有被「木馬屠城」的可能,但只要搭配防火牆及弱點掃描程式就可以杜絕。另一方面目前的病毒,以攻擊微軟的系統為主,Linux平臺的病毒比較少。

李日貴強調:「開放源碼的程式是公開的,如果有人在程式中暗藏後門,絕對難逃世界各地無數高手的法眼。」馬上就會有人提出修正程式,相較於封閉專屬的商用軟體,開放源碼反而是更安全的選擇。

從專案的角度出發,陳寶元不否認網路上可能有「怪客」在開放源碼開「後門」的可能性,因此強調:「專案中使用開放源碼,一定要每一行程式都看過。」徹底了解傳進去的參數,及丟出來的值,避免程式中暗藏危險動作。艾群科技甚至提供客戶詳細的系統流程圖,解釋所有模組的機制。最後由客戶執行單元測試,不只是測試系統,還要拆解到針對元件測試,一定要讓客戶完全放心。

友善性

針對套裝軟體,李日貴不否認:「微軟產品的User Friendly,其他軟體廠商均難以望其項背。」即使Linux系統已推出極為類似Windows操作習慣的圖形使用者介面,對於沒有技術背景的終端使用者,絲毫的不適應都會產生排斥感。

不過在專案的經驗中,陳寶元強調:「搭配開放源碼,勢必經過軟體開發商的封裝與潤飾,所以不會有不友善的情形。」在艾群科技及松凌科技提供的案例中,終端使用者都不會感覺到開放源碼的存在,這也才是軟體開發商的價值所在。

應用開放源碼的現況

用戶端的應用,企業在商言商仍傾向花錢買心安,何錦潭建議從工作單純的使用者開始評估,李日貴也認為可以從單一部門開始嚐試,一次全面汰換的風險太高。

專案應用開放源碼,則對企業及軟體開發商雙方都有好處。陳寶元說:「網路上幾乎每天都有開放源碼的新技術出現,根本是取之不盡、用之不竭。」現在諸如Apache之類的組織,有愈來愈豐富的開放源碼專案,甚至針對特定領域或產業寫專案。所以只要願意花時間挖寶,有很多好的設計是值得善用的。

其實開放源碼也有分主流與非主流,主流的開放源碼文件之多,比想像中還完整。李日貴分析:「Struts不是最好的MVC框架,但卻是最多人使用的一種。」論壇討論的人多,文件與書籍也就比較充分。因此,無論何種模式的開放源碼應用,最好選擇主流的應用,避免求救無門的窘境。

何錦潭則表示:「開放源碼在伺服器端及資料庫的應用已經相當成熟。」IT部門具專業背景,對開放源碼的接受度較高,心態上也樂於學習新技術。不過,陳寶元不會主動建議客戶以MySQL取代Oracle或SQL Server,因為:「資料庫的價值在於資料庫的架構。」Oracle的動態智慧型配發存取空間演算法有其獨道之處。況且,許多關鍵性任務系統是針對特定資料庫設計,何錦潭反問:「上千萬的ERP都買了,何必計較Oracle的成本。」

不過,朱凌峰透露:「目前有兩大電子商務網站使用是MySQL,作為交易資料庫。」所以,MySQL的效能及穩定性未必不及商用資料庫。

但朱凌峰承認雖然MySQL具簡單、易學及免費的優勢,但開放源碼技術的演進確實較為緩慢,交易(Transaction)及多層次子查詢句(SubQuery)都是最近才推出的機制。所以企業在選擇時,應該針對不同的應用考量適用性。

開放源碼人才現況

李日貴表示:「開放源碼人才全世界都少。」遠少於授權軟體的族群。探究開放源碼學習的難易度,李日貴認為:「文件的多寡影響學習曲線。」在論壇中討論的內容及文件愈多,學習的成本愈低。

李日貴與陳寶元承認目前開放源碼的人才難找,目前的教育與專案對開放源碼的關注仍顯不足,陳寶元甚至點出臺灣的薪資階層中,缺乏技術架構師(Architect)的角色,優秀的人才卓升到經理、協理的頭銜,就必須涉足管理性工作,逐漸與技術脫節,剝奪了技術發展的深度與廣度。

因此,艾群找尋的開放源碼專家並非利用人力銀行,而是透過獵人頭公司或口碑介紹而來,陳寶元傾向選擇具專案開發經驗的人才,不考慮產品開發經驗的人,因為產品的演進緩慢,未必能解決大問題,而且專案開發必須貼近使用者需求,因此必須要具備與客戶互動的能力。

薪資方面,企業IT人員其實不會因為是否了解開放源碼而有太大的差異。陳寶元則認為並沒有定數,曾經有技術人員開價9.5萬,而企業主也願意買單,可見只要一技在身,不用擔心老闆不識貨。文⊙李延華

熱門新聞

Advertisement