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