作者丨David Linthicum
編譯丨諾亞
開源是IT領域中一個經常兩極分化的話題,在我職業生涯的大部分時間裡都是如此。使用開源比任何其他技術都存在更多的情緒。隨著AIGC的興起,情況可能會變得更糟。
使用開源軟體進行基於雲的開發,因其成本、靈活性和積極的社區參與而變得越來越流行。但是,必須了解使用開源具有哪些潛在的危險。
我直說吧,企業往往最終得到的是嚴重未優化的系統,這些系統的成本遠遠超出其應該運行的成本。一切通常隱藏在過度膨脹的預算中,從首席信息官到董事會,沒有人知道這一點。
你會花1000萬美元來建造一個本應花費300萬美元的系統嗎?更糟糕的是,其中許多系統的運營成本增加了50%,這主要是由於糟糕的架構選擇,例如在其他解決方案可以為業務帶來更多價值的情況下,卻只推送特定的雲提供商或推送開源。
這樣的日子可能即將結束。隨著雲計算支出受到自上而下的批評和分析,企業在如何更有效地構建和運行雲計算解決方案方面變得更加精明。
我絕不是說開源不是正確的解決方案。在許多情況下,由於錯誤的原因,它被推送到解決方案堆棧上。所以,在正文開始前,請記住這一點。
1、開放的心態
與開源軟體相關的一個重要問題是,與傳統軟體解決方案甚至許多雲服務提供的支持相比,開源軟體需要更專業或專門的支持。
記住,雲提供商僅僅是在「提供」開源軟體。除此之外,他們一般不支持它。要了解更多,你需要在內部或其他地方查看。
開源用戶,無論是否在雲中,通常都必須依賴社區資源,通過論壇或留言板提供,這需要時間。這可能會耽誤雲開發進度,尤其對於時間緊迫的方案或複雜問題,處理就比較麻煩。一位開發人員曾經告訴我,她需要參加一個開源社區的會議,然後才能解決一個特定的問題——這個會議需要等五周。那顯然行不通。
從安全角度來看,開源軟體可能會帶來特定的挑戰。儘管開發人員社區定期審查此類軟體,但它仍然可能存在未檢測到的漏洞,主要是因為它的代碼是可公開訪問的。
例如,幾年前出現了一些開源供應鏈問題。如果沒有嚴格的安全措施和頻繁的更新,這些漏洞可能會成為嚴重的安全威脅。這些問題並非無法解決;它們必須得到解決。在大多數情況下,你需要依靠自己而不是某些專有軟體提供商。
2、集成
開源軟體也可能缺乏特定專有軟體所提供的功能或集成。社區主導的更新或改進可能不會優先考慮可能對用戶或企業有利的功能。這可能會影響可擴展性和軟體在雲開發中的整體效用。
當然,有些人認為開源系統是開放的。你可以在那裡添加和修復需要的功能。我們這些這樣做過的人,包括我,都明白這需要多少技能、時間和專業知識。這樣的時間成本不會被那些只想完成和部署項目的項目經理所接受。
另一個需要考慮的關鍵因素是智慧財產權。雖然可以免費使用,但開源軟體仍然有許可證,必須遵守版權法。如果處理不當,可能會導致法律糾紛或損害企業聲譽。作為CTO,我吃過好幾次虧,因為有些事情沒有向我披露,這在出售公司和智慧財產權的過程中成為一個問題。在其中一個案例中,它停止了銷售。
最後,使用開源軟體進行基於雲的開發需要更多的技術熟練度。鑒於其DIY性質,那些可以利用該軟體的人總是給我留下深刻的印象。它提供了更大的定製,但對於沒有技術知識的用戶來說,這種靈活性可能是一把雙刃劍。試著自己實現其中的一些;如果沒有開源公司的支持,它充其量只是一個工程項目。
3、權衡取捨
當然,一些開源軟體提供商在協助用戶安裝和支持方面做得很好。如今,無論如何,我只會考慮在他們的參與下使用開源。有太多可能出錯的地方,從某種意義上說,你正在獲得專有解決方案的價值,包括支持等,儘管需要額外的成本,這可以使許多專有替代方案同樣引人注目。
最好對開源保持開放的心態。把情緒釋放出去,接受包括開源比其他技術更兩極分化的事實。我要麼聽到,「我們是一家開源優先的公司」,要麼「這裡沒有開源」。這實際上意味著,「我們不喜歡思考我們正在做什麼,當利用雲平台不是正確的解決方案時,我們選擇部分優化不足。
這一切都歸結於任何技術的實際商業價值,無論是否開源,是否雲計算。所有事情都必須考慮到回報給企業的價值,無論是硬體還是軟體。
參考連結:https://www.infoworld.com/article/3708293/when-open-source-cloud-development-doesnt-play-nice.html