構(gòu)建開源堆棧時(shí)要考慮的5個(gè)要素

雨果
根據(jù)Gartner Research的調(diào)查,其中超過95%的人正在部署開源軟件,盡管它帶來了很多好處,但從選擇正確的開源堆棧開始,它也帶來了一系列全新的挑戰(zhàn)。存在多種風(fēng)險(xiǎn),包括令人失望的軟件性能,無法與他人良好連接的工具,令人驚訝的額外成本,缺乏控制和安全性問題。

從一開始就花時(shí)間選擇正確的開源堆棧組件將有助于使將來的策劃變得更加容易,并且優(yōu)勢也更加明顯,也能給將來節(jié)省很多麻煩。

很多社區(qū)和工具的日趨成熟推動(dòng)了開源軟件成為主流,這些工具與與組織一起尋求更快,更便宜地部署軟件的組織一起工作。

根據(jù)Gartner Research的調(diào)查,其中超過95%的人正在部署開源軟件,盡管它帶來了很多好處,但從選擇正確的開源堆棧開始,它也帶來了一系列全新的挑戰(zhàn)。存在多種風(fēng)險(xiǎn),包括令人失望的軟件性能,無法與他人良好連接的工具,令人驚訝的額外成本,缺乏控制和安全性問題。

選擇正確的開源堆棧并不容易。許多組織缺乏內(nèi)部專業(yè)知識(shí),無法知道要尋找什么或沒有時(shí)間充分研究開源軟件。不能指望軟件工程師會(huì)在一夜之間成為開源市場專家。

幾年前,我與一個(gè)團(tuán)隊(duì)合作,該團(tuán)隊(duì)認(rèn)證了可用于生產(chǎn)的開源解決方案。我們創(chuàng)建了42個(gè)要考慮的必要資格的列表,這是答案(至少是其中的一部分):首先,在選擇開源軟件時(shí)知道要問什么問題。

選擇開源軟件時(shí),需要考慮以下五個(gè)方面:

1.時(shí)間:雖然下載開源程序并使其快速運(yùn)行的能力可能很吸引人,但最好進(jìn)行盡職調(diào)查或考慮與可以進(jìn)行研究的外部專家合作?;〞r(shí)間為您的用例構(gòu)建正確的解決方案。重要的是要注意,開源通常是出于目標(biāo)驅(qū)動(dòng)并且選擇執(zhí)行特定任務(wù)。您可能需要將幾個(gè)不同的項(xiàng)目結(jié)合在一起,以獲得完整的解決方案。

2.支持者:盡管志愿者在成功的開源中扮演著重要角色,但事實(shí)是,大多數(shù)最知名的工具都有贊助。擁有堅(jiān)定的支持者和良好的業(yè)績記錄對(duì)于延長使用壽命和軟件質(zhì)量都是一個(gè)好兆頭。我經(jīng)常引用的示例是Cloud Native Computing Foundation,它位于Kubernetes,Linux和Prometheus的背后。

3.社區(qū):社區(qū)的承諾和響應(yīng)能力至關(guān)重要。要問的基本問題包括:

(1)社區(qū)對(duì)查詢或錯(cuò)誤的響應(yīng)速度有多快?

(2)其成員記錄和共享集體知識(shí)的程度如何?

(3)社區(qū)有多活躍,龐大和穩(wěn)定?它可能足夠長以支持選擇該軟件所需的用例,或者社區(qū)和該軟件是否有可能被其他東西推到一邊?

4.不同的類型:即使是一些知識(shí)淵博的CTO也無法正確理解開放源代碼的不同類型,尤其是Copyleft許可和寬松許可之間的區(qū)別。每個(gè)對(duì)組織都有不同的含義。第一個(gè)要求貢獻(xiàn)者與相關(guān)軟件社區(qū)共享其更改,而第二個(gè)則不承擔(dān)此義務(wù)。企業(yè)擔(dān)心必須共享部分專有源代碼以及可能的IP,盡管這僅在企業(yè)修改代碼時(shí)適用。

不可預(yù)見的成本隱含在以下所有類別中:

(1)時(shí)間:如果解決方案最終與用例不匹配,則可能浪費(fèi)而不是保存時(shí)間。

(2)解決方案更新:沒有“支持者”的項(xiàng)目可能會(huì)死掉而無法再接收任何更新,從而迫使企業(yè)花費(fèi)精力選擇新的解決方案。社區(qū)也是如此。

(3)法律后果:如果企業(yè)修改和分發(fā)copyleft源代碼而不共享給他們,它們將面臨昂貴的法律訴訟。

(4)可用性和支持:組織將得到第三方,社區(qū)和其自身團(tuán)隊(duì)的支持嗎?考慮所有選項(xiàng)的潛在成本。

(5)軟件質(zhì)量和集成:重要的是要查看編碼實(shí)踐(它們是否符合組織自身的標(biāo)準(zhǔn)?),可用性和對(duì)分布式資源的支持。最重要的是,仔細(xì)檢查集成,因?yàn)闃?gòu)建開源堆棧時(shí)面臨的最大風(fēng)險(xiǎn)之一就是最終出現(xiàn)了一堆無法一起使用或未完全符合用例的工具。

5.檢查整個(gè)堆棧中的集成:平臺(tái),數(shù)據(jù)庫,中間件,應(yīng)用程序運(yùn)行時(shí)和監(jiān)視工具。尋找具有很多支持并且已知可以與許多其他解決方案(例如Kubernetes)良好互操作的解決方案。專注于諸如OpenJDK之類的公認(rèn)的語言發(fā)行版,它可以在頂部運(yùn)行大量其他企業(yè)級(jí)開放源代碼。

這可能很困難,但是為開源堆棧選擇正確的組件將有助于使將來的策劃變得更加容易,并且優(yōu)勢也更加明顯。從一開始就花時(shí)間進(jìn)行研究并提出正確的問題可能會(huì)在將來節(jié)省很多麻煩。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無評(píng)論