nginx版本策略
近期Nginx發(fā)布了1.17.0主線版本與1.16.0穩(wěn)定版本,并且發(fā)布了一篇文章< Introducing NGINX 1.16 and 1.17 >說明Nginx的版本更新策略、推薦分支、1.16.x新增的主要特性、1.17.x的路線規(guī)劃。
【版本策略】
分支說明
與Linux內(nèi)核版本號類似,nginx的版本號也使用奇數(shù)偶數(shù)區(qū)分開發(fā)版本(主線版本)與穩(wěn)定版本。例如1.13.x、1.15.x、1.17.x系列就是開發(fā)版本,1.12.x、1.14.x、1.16.x就是穩(wěn)定版本。
關(guān)于主線版本與穩(wěn)定版本的定義,按官方的說法如下:
- 主線版本就是開發(fā)版本,會持續(xù)的加入特性與修補(bǔ)bug。
- 穩(wěn)定版本,只修復(fù)有高安全風(fēng)險(xiǎn)的bug。
特別注意,穩(wěn)定版本與開發(fā)版本并不是軟件質(zhì)量上的區(qū)別,只是特性更新頻率的區(qū)別。
版本演進(jìn)
關(guān)于版本之間如何演進(jìn),請參考以下這張圖片:
在每年4月前后nginx的開發(fā)會進(jìn)行一次版本號的推進(jìn),發(fā)布新的主線版本與穩(wěn)定版本,例如近期的1.17.0與1.16.0。在這有幾點(diǎn)值得注意:
- 版本號推進(jìn)后,舊的穩(wěn)定版本將不繼續(xù)更新,也不繼續(xù)合入bug修復(fù)。
- 主線版本號推進(jìn)并沒有大的特性更新,例如從1.15.12到1.17.0,也是常規(guī)特性新增與bug修復(fù),并不會加入大量特性。
- 穩(wěn)定版本號推進(jìn)將加入大量主線版本特性,例如從1.14.2到1.16.0,將加入所有1.15.x主線版本開發(fā)的所有特性修改。(1.16.0與1.15.12內(nèi)容相同)
- 主線版本的更新周期,大約是4~6周一次,可以通過訂閱http://nginx.org/en/CHANGES,獲取更新內(nèi)容。
【如何選擇分支】
通過以上版本策略描述,主線版本與穩(wěn)定版本只存在特性上的不同,對于軟件質(zhì)量要求都是一致的。所以官方的推薦是盡量使用主線版本。
同時(shí)Nginx的商業(yè)版本(NGINX Plus)也總是基于最近的主線版本,并加入閉源的部分代碼,形成商業(yè)版本提供服務(wù)。
但是由于主線版本的更新周期較快,如果緊跟主線版本有困難,可以選擇跟進(jìn)穩(wěn)定版本,每年做一次大的更新。
在我個(gè)人的工作中,我們團(tuán)隊(duì)交付的組件是基于nginx進(jìn)行大量的二次開發(fā)。每月同步主線版本將帶來很多工作量。(我們對nginx代碼進(jìn)行了大量調(diào)整)所以我們采取了2個(gè)活動,保障組件與官方代碼的同步,更好地利用開源軟件優(yōu)勢。
- 訂閱NGINX主線版本更新,關(guān)注是否有與我們密切相關(guān)的特性修改,選擇性同步。
- 每年同步一次穩(wěn)定版本,防止過大的差異導(dǎo)致失去開源支持。
【參考資料】
- < Introducing NGINX 1.16 and 1.17 > https://www.nginx.com/blog/nginx-1-16-1-17-released/
- < NGINX CHANGE> http://nginx.org/en/CHANGES
- < NGINX-1.16 CHANGE> http://nginx.org/en/CHANGES-1.16
轉(zhuǎn)載于:https://www.cnblogs.com/atskyline/p/10960022.html
總結(jié)
- 上一篇: ubuntu安装远程桌面连接工具
- 下一篇: 团队作业3