如何在企業(yè)環(huán)境下?lián)肀ч_(kāi)源工具?
譯文未來(lái)的商業(yè)模式將以社交、移動(dòng)、云以及大數(shù)據(jù)等技術(shù)為基礎(chǔ),而IT部門(mén)也開(kāi)始意識(shí)到要想在今后贏得成功,必須擁有理想的流程、工具以及文化加以配合與支持。而在這方面,開(kāi)源機(jī)制擁有著極為顯著的優(yōu)勢(shì)地位。
一旦大家決定將開(kāi)源機(jī)制作為企業(yè)IT基礎(chǔ)設(shè)施當(dāng)中的關(guān)鍵性組成部分,則需要采取以下幾個(gè)重要步驟:
1.明確關(guān)鍵性依賴關(guān)系
非常重要的一點(diǎn)在于了解開(kāi)源部署流程當(dāng)中的哪些組成部分之間存在著重要的依賴關(guān)系。具體而言,大家需要確切掌握這些組件的社區(qū)規(guī)模、穩(wěn)定性乃至建議性功能等等。當(dāng)某些組成部分表現(xiàn)出相互間的依賴關(guān)系之后,我們必須保證不會(huì)把兩種協(xié)作效果不理想、甚至有所沖突的組件結(jié)合在一起。
具體作法:調(diào)查自己的開(kāi)源技術(shù)使用方式,弄清到底在使用哪些項(xiàng)目/產(chǎn)品。將這些項(xiàng)目/產(chǎn)品按照實(shí)用性、重要性以及關(guān)鍵性等不同級(jí)別加以劃分。確保我們擁有內(nèi)部員工或者商業(yè)支持來(lái)打理這些作用于核心業(yè)務(wù)或者面向客戶領(lǐng)域的關(guān)鍵性或者任何重要項(xiàng)目。大家也可以使用Black Duck這類商業(yè)產(chǎn)品來(lái)幫助自身了解當(dāng)前正在使用哪些開(kāi)源產(chǎn)品/項(xiàng)目。
2.建立開(kāi)源技能儲(chǔ)備
與專有供應(yīng)商推出的產(chǎn)品不同,開(kāi)源項(xiàng)目并不具備幫助服務(wù)臺(tái)。因此自我依賴、自我解決就成了一種必然,這意味著企業(yè)IT需要充分參考到開(kāi)源工作當(dāng)中,并具備學(xué)習(xí)并推進(jìn)開(kāi)源技能擴(kuò)展的主觀意愿。
具體作法:在上一步所提到的開(kāi)源項(xiàng)目/產(chǎn)品調(diào)查完成之后,我們接下來(lái)需要明確保障關(guān)鍵性及重要項(xiàng)目獲得成功的前提性技能,并制定專門(mén)的規(guī)劃來(lái)提升此類技能。在目前的招聘工作中,我們應(yīng)當(dāng)將開(kāi)源技能需求列入其中,并作為對(duì)求職者個(gè)人能力的考核標(biāo)準(zhǔn)之一。而對(duì)于現(xiàn)有內(nèi)部人員,請(qǐng)調(diào)查他們的技能儲(chǔ)備并籌備用于提升員工能力的培訓(xùn)方案。另外,制定未來(lái)招聘規(guī)劃以確保企業(yè)能夠招攬到其它潛在技能的新型人才。
3.決定哪些成果可以發(fā)布,而哪里必須保留在企業(yè)內(nèi)部
對(duì)于任何已經(jīng)編寫(xiě)完成的代碼,我們需要決定將其安置在何處。請(qǐng)記住,如果大家將其貢獻(xiàn)到產(chǎn)品當(dāng)中,那么這部分代碼就會(huì)成為該產(chǎn)品的一部分,并永遠(yuǎn)存在于未來(lái)的各個(gè)版本當(dāng)中。
具體作法:確定所有編寫(xiě)完成的代碼都被擴(kuò)展或者集成至各開(kāi)源產(chǎn)品/項(xiàng)目當(dāng)中。對(duì)于所有擴(kuò)展代碼(即那些駐留在項(xiàng)目/產(chǎn)品當(dāng)中,并用于實(shí)現(xiàn)額外功能的代碼),我們需要在默認(rèn)情況下認(rèn)定其應(yīng)該被貢獻(xiàn)至上游代碼庫(kù)當(dāng)中。而對(duì)于集成代碼,首先評(píng)估其中有多大一部分能夠被發(fā)布至某項(xiàng)目/產(chǎn)品的上游代碼庫(kù)當(dāng)中。對(duì)于任何必須被保留在企業(yè)內(nèi)部的集成代碼,我們需要確保為其制定一套長(zhǎng)期維護(hù)方案并劃撥相應(yīng)的支持預(yù)算。如果大家目前尚未制定出用于支持代碼發(fā)布的開(kāi)源管理政策及執(zhí)行流程,請(qǐng)立即著手進(jìn)行開(kāi)發(fā)。
4.明確意識(shí)到,開(kāi)源并非能夠解決一切問(wèn)題的萬(wàn)靈藥
雖然開(kāi)源部署會(huì)帶來(lái)一系列優(yōu)勢(shì),但這并不意味著我們應(yīng)當(dāng)為每一款應(yīng)用都采用同樣的處理方式。相當(dāng)一部分實(shí)例證明,專有產(chǎn)品在某些場(chǎng)景下仍然擁有無(wú)可比擬的實(shí)際收效。最重要的是,大家必須意識(shí)并了解到,項(xiàng)目當(dāng)中的哪些部分更適合以開(kāi)源方式處理,而哪些部分并不太適合。
具體作法:確保對(duì)各軟件組件的每一項(xiàng)評(píng)估都著眼于專有與開(kāi)源兩類選項(xiàng)。制定出一套結(jié)構(gòu)化評(píng)估流程與標(biāo)準(zhǔn),以確保各組件在評(píng)估過(guò)程中遵循同樣的方法并擁有公正的決策。當(dāng)然,也必須為開(kāi)源項(xiàng)目/產(chǎn)品的推進(jìn)工作提供必要的投資,從而確保整個(gè)比較能夠以完全對(duì)等的方式展開(kāi)。
5.以積極方式參與社區(qū)
開(kāi)源之所以能夠獲得成功,在很大程度上是因?yàn)槿藗儠?huì)不斷對(duì)相關(guān)軟件加以改進(jìn)。讓用戶以積極態(tài)度參與到代碼調(diào)整工作中當(dāng)然非常重要,同樣的,與開(kāi)源項(xiàng)目的各位領(lǐng)導(dǎo)者并肩協(xié)作自然更值得稱道。分享成功的發(fā)展戰(zhàn)略亦有助于強(qiáng)化整個(gè)社區(qū)體系——畢竟成功的開(kāi)源實(shí)施工作需要以最佳實(shí)踐以及他人的經(jīng)驗(yàn)作為依托與基礎(chǔ)。
具體作法:參加區(qū)域乃至國(guó)際開(kāi)源技術(shù)活動(dòng)及會(huì)議。確保員工參與到重要乃至關(guān)鍵性開(kāi)源項(xiàng)目/產(chǎn)品的相關(guān)工作當(dāng)中,同時(shí)對(duì)其加以鼓勵(lì)。將經(jīng)濟(jì)資助視為開(kāi)源項(xiàng)目/產(chǎn)品當(dāng)中至關(guān)重要的實(shí)現(xiàn)環(huán)節(jié)。
6.最后但同樣重要的是,留心我們所謂的“新型遺產(chǎn)”
很多IT機(jī)構(gòu)都會(huì)利用開(kāi)源組件來(lái)構(gòu)建自己的新型應(yīng)用程序,但他們往往忽略了一項(xiàng)事實(shí)——這些應(yīng)用程序也會(huì)因此成為一種工程技術(shù)層面的賭博。IT機(jī)構(gòu)將開(kāi)源組件納入自主開(kāi)發(fā)的DevOps工具鏈的作法非常常見(jiàn),但由此帶來(lái)的問(wèn)題是,隨著時(shí)間不斷推移、最初的工程技術(shù)人員將逐漸離職,而他們留下的缺乏說(shuō)明文檔的系統(tǒng)將成為一團(tuán)解不開(kāi)的亂麻。在此之后,IT機(jī)構(gòu)將意識(shí)到開(kāi)源也同時(shí)成了導(dǎo)致遺留問(wèn)題的根源。
享受自由與靈活的優(yōu)勢(shì)并不足以推動(dòng)大家不顧一切地選擇以開(kāi)源機(jī)制為基礎(chǔ)構(gòu)建應(yīng)用業(yè)務(wù)。我們所編寫(xiě)的每一行代碼都應(yīng)該成為自身職責(zé)范圍內(nèi)的一部分,而非任由他人指揮的不確定因素。
企業(yè)IT的本質(zhì)在于迅速發(fā)展,而在在一系列變化的推動(dòng)下,開(kāi)源亦逐步在每家企業(yè)的IT環(huán)境當(dāng)中占據(jù)愈發(fā)高企的比重。隨著越來(lái)越多機(jī)構(gòu)投向開(kāi)源這股浪潮的懷抱,必要技能也將成為決定最終結(jié)果的先決條件之一——這不僅是為了更為明智地運(yùn)用開(kāi)源資源,同時(shí)也是為了確保企業(yè)自身能夠在第三方平臺(tái)橫行的世界當(dāng)中繼續(xù)保持必要的獨(dú)特競(jìng)爭(zhēng)力。
原文標(biāo)題:How to embrace open source tools in the enterprise