国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

CentOS系統(tǒng)變化看開源演進

2023-03-11 17:40 作者:劉遄老師  | 我要投稿

CentOS社區(qū)還存不存在?CentOS項目還存不存在?眾多CentOS用戶將何去何從?伴隨CentOS停更,大家可能會有這樣那樣的疑問,今天針對以上問題,我來進行一一解答。

CentOS實際上有兩個變種,一個叫做CentOS?Linux,另外一個叫CentOS Stream。

CentOS Linux出現(xiàn)比較早,大家所知道的CentOS都是CentOS Linux。而CentOS Stream是兩年前紅帽對外推出的,推出CentOS Stream之后就相當于把CentOS Linux逐漸做了升級換代。

這就好比是,你過去用的是iphone4,現(xiàn)在是iphone5,相當于是一個升級換代,換代之后主打的名字也發(fā)生了一些變化——從CentOS Linux到CentOS Stream,后面我會講到,這個變化本身是跟開源開發(fā)模式的演進,以及市場需求的變化有關(guān)系的。

接下來我相信大家還會有其他的一些疑慮,比如CentOS Linux到CentOS Stream是不是穩(wěn)定的?我先簡單一句話回答,它是穩(wěn)定的。具體怎么穩(wěn)定,聽我一點點給大家引出來后面的一些細節(jié)。

Linux發(fā)行版開發(fā)模式的演進

咱們先來看看Linux發(fā)行版開發(fā)模式的演進,這可能也是好多開源的開發(fā)方式的演進。Linux已經(jīng)走過了31年,早期完全憑愛好做Linux,那時候的Linux也正像Linus Torvalds本人講的,就是為了好玩、有趣才做的Linux。

逐漸的Linux這種開源的開發(fā)方式被更多的人所接受,隨著Linux逐漸走向企業(yè)級,Linux逐漸不是一個玩具了。

Linux發(fā)行版有社區(qū)版、企業(yè)版,我們主要講有了企業(yè)需求之后,Linux發(fā)展的幾大階段。

Fedora時代

第一個階段是所謂的v1.0階段,就是Fedora的時代。其實很多人也用過Fedora,F(xiàn)edora的桌面還是很炫酷的。

為什么當時會出現(xiàn)Fedora Linux呢?主要是取決于兩方面原因,而且這兩個原因還是有些對立的。一個是說如果要做企業(yè)級的Linux,系統(tǒng)需要足夠穩(wěn)定,這就意味著你的更新也許不能太頻繁,即使更新了,你的兼容性也要保證得特別好。

但是對于創(chuàng)新來講,如果過多考慮穩(wěn)定、兼容,創(chuàng)新的包袱就會比較重。如何平衡創(chuàng)新和穩(wěn)定兩者之間的關(guān)系?紅帽把自己原來統(tǒng)一的Redhat Linux,分成了Fedora和Redhat Enterprise Linux。

不光是紅帽,其他主流的廠商,像SuSE也是這樣的方式。這樣兩者區(qū)分之后,對于不同的用戶,如何去選用呢?如果說我們是企業(yè)用戶,我們就當然選擇穩(wěn)定版,對于社區(qū)用戶,你就用Fedora。但那時候做Linux開發(fā)的時候,不同階段各有側(cè)重點,那個時候更側(cè)重Linux操作系統(tǒng)本身的東西,特別是圖形化桌面的一些功能。

其實盡管紅帽已經(jīng)不做桌面了,但是在Gnome里面的貢獻依舊很大。在那個時候,F(xiàn)edora這種模式是很好的,它把最新的一些軟件包給到你。那時候的桌面其實已經(jīng)很成熟了,但是可能主要是因為兼容性、穩(wěn)定性的原因,Linux的桌面畢竟用的人少,所以并沒有完全發(fā)展起來。

CentOS Linux時代

再往后發(fā)展,因為逐漸走向移動互聯(lián)網(wǎng),類似于安卓這樣的東西就出現(xiàn)了,本身桌面的份額也越來越小,在這方面有Windows、有蘋果,所以對于Linux桌面來講,后來逐漸的各大發(fā)行版廠商都放棄了在桌面上的投入,比如紅帽,再比如SuSE。

在服務(wù)器端我們逐漸走向了云、虛擬化。這個方向成為關(guān)注焦點后,如果延續(xù)之前我們講的云上創(chuàng)新,那么虛擬化、云、容器或者容器里面的創(chuàng)新我們都基于Fedora去做可不可以?企業(yè)級的用RHEL。后來發(fā)現(xiàn)這種方式其實不是很好,為什么呢?因為我們希望有穩(wěn)定的內(nèi)核,我們認為操作系統(tǒng)是一個最底層軟件,我們不希望最底層軟件出毛病。

這時候,大家需要一個跟RHEL品質(zhì)幾乎相同的東西作為它的底層去做上面的一些開發(fā),這時候CentOS就應(yīng)運而生了。但CentOS是社區(qū)里出現(xiàn)的,并不是紅帽給它做出的一個CentOS。CentOS出現(xiàn)之后,它的理念實際上很契合當時Linux上開發(fā)的趨勢,所以紅帽就把CentOS收購過來,收購過來之后,CentOS Linux繼續(xù)按照原有的技術(shù)方向去發(fā)展。

這時候也有一個平衡的問題,一方面CentOS Linux是我們要在這上面做一些基于虛擬化、云之上的創(chuàng)新;另外一方面,它的基礎(chǔ)要足夠穩(wěn)定。

所以我剛才講的這一段歷史,就是上邊這幅圖里所展現(xiàn)的。但是我相信可能我們有好多朋友了解CentOS,可能只知道左邊這一部分——我們知道RHEL紅帽企業(yè)級Linux是來自于Fedora的,可以說Fedora是RHEL的試驗場。CentOS是基于RHEL出現(xiàn)的一個下游復刻版本,跟RHEL近乎是一樣的,所以它的穩(wěn)定性是毫不懷疑的。

但是右邊這一部分很多人不了解——實際上當云、虛擬化這些成為一個主要的應(yīng)用負載的時候,我們會發(fā)現(xiàn)其實CentOS里面的東西已經(jīng)不僅僅是RHEL里面的東西了,它里面還有大量來自于RDO的東西,RDO是紅帽的OpenStack社區(qū)版。

有很多像比如虛擬化,像Libvirt、oVirt,類似于這樣的東西也加到了CentOS里面。所以坦白講,CentOS里面并不光是紅帽企業(yè)級的Linux包,它還包括很多其他的包。坦白講,其他的包在CentOS里面,它的品質(zhì)就應(yīng)該不如RHEL了,因為RHEL是經(jīng)過嚴格測試的,對于像社區(qū)版里的RDO里面的東西并不是嚴格測試的。但是RDO這個東西,社區(qū)版的OpenStack經(jīng)過嚴格測試之后,生成紅帽企業(yè)版的OpenStack,這是嚴格測試的。

所以在CentOS里面我們看這個箭頭的指向,它一方面有RHEL里穩(wěn)定的操作系統(tǒng)的包,同時也有關(guān)于云方面的、從測試各方面看沒有那么穩(wěn)定的包在CentOS Linux里面,實際上這是CentOS Linux那個時代的模式。

CentOS Stream時代

接下來可能就談到最關(guān)鍵的CentOS Stream階段了。CentOS Stream階段我們發(fā)現(xiàn)過去的開發(fā)方式已經(jīng)不能滿足現(xiàn)在的要求了,這點可能很好理解:現(xiàn)在講數(shù)字化轉(zhuǎn)型也好,數(shù)字孿生也好,以前很多東西并沒有被數(shù)字化,而現(xiàn)在已經(jīng)被數(shù)字化了。這個世界本身就是頻繁變化的,所以就要求反映它的東西也要頻繁變化。

這個趨勢映射在我們的軟件里,25年前Linux發(fā)布一個版本的時候,沒有幾個人去做貢獻,所以我們用什么樣的開發(fā)模式、開發(fā)流程可能都沒有太大所謂。但是現(xiàn)在一個版本里有一千多人去做貢獻,貢獻量是極大的,所以它的變化是非??斓?。在這種變化非??斓纳鐓^(qū)版本里面,如果紅帽還想做一個企業(yè)級的非常穩(wěn)定的版本給大家用,那你的研發(fā)流程必然要做這樣的一個改進。

這樣的改進就是所謂的Stream模式,Stream的模式區(qū)別于傳統(tǒng)的所謂瀑布式開發(fā),不是把集成、測試、驗證這樣一些步驟放在最后一步,而是隨做開發(fā)就隨做測試,可以保證每一個發(fā)布的版本都是穩(wěn)定版。這是因為我們這種快節(jié)奏要求Stream模式,而不是說我們出了一個Stream模式。所以簡單的總結(jié),CentOS Stream是一個穩(wěn)定的、可靠的RHEL的持續(xù)交付版本。

關(guān)于CentOS Stream的幾個熱門問題

CentOS blog上有一篇文章,是2020年12月發(fā)布的,里面有幾個特別重要的熱點問題,我給大家重點再強調(diào)一下。

CentOS的未來是怎么樣的?在CentOS官方網(wǎng)站上給出的一個FAQ,我不想給它做任何由于翻譯的曲解。如果你是一個CentOS Linux的User,你不要著急,未來會有一個CentOS Distribution等著你。CentOS Distribution是什么呢?實際上就是我們現(xiàn)在的這個Stream。

大家關(guān)心的是Stream穩(wěn)定不穩(wěn)定、安全不安全,有沒有CVE漏洞的更新、補丁。我們做這個新版,一定要保證它原有的品質(zhì)。

第二點也比較重要,如果你還想要一個老版的CentOS Linux一模一樣的東西,可以自己去做。那你自己去做的話,肯定要有一個RHEL的代碼,代碼是從哪兒來呢?git.centos.org。之前RHEL代碼是在這里,之后RHEL的代碼也是在這里,沒有任何區(qū)別,這一點實際上是完全公開的。

當然如果你是紅帽的客戶、訂閱用戶的話,你在訂閱的賬號里就可以很方便的下載你的代碼。上面提到的這個代碼下載的git地址是說你跟紅帽沒有任何關(guān)系,我就想看看你的代碼,這是可以的。這實際上也完全遵循GPL協(xié)議,大家共同遵守、共同繁榮好這個社區(qū)。既然我們是基于GPL的代碼,盡管我們做了很多改動,這些改動也都會完完整整的公開。

還有大家比較關(guān)注的一個問題,CentOS Stream是不如RHEL的beta測試版嗎?我們明確講CentOS Stream不是一個測試版,后面我會簡單解釋一下為什么它不是一個測試版。

還有一個比較關(guān)鍵的問題,因為CentOS Linux8現(xiàn)在已經(jīng)轉(zhuǎn)成CentOS Stream8了,那我怎么去轉(zhuǎn)?你說沒有停服,那我怎么能繼續(xù)拿到補???那你就在你的這臺機器上敲這兩行命令:

[root@centos ~]# dnf swap centos-linux-repos centos-stream-repos [root@centos ~]# dnf distro-sync

敲完之后,把它的源重新一更新,從CentOS Linux的源更新到CentOS Stream的源,然后把所有的包下載下來安裝,然后替換,接下來你的系統(tǒng)就照樣去使用了。

即使你是比較資深的用戶,如果我在你的電腦上敲了這兩條命令,接下來去使用,其實你是毫無感知的。就是它的穩(wěn)定性、使用、功能都跟之前沒有差別。

接下來我們講一下Stream為什么跟RHEL一樣是穩(wěn)定的。對于Fedora來講,我們可以認為它是滾動更新,因為每半年我們就會出一個新版本。這里面所謂滾動更新,是說我滾動更新出來一個新東西,跟老的東西的兼容性并不是特別好。比如在29里面我們有一個功能,在30里面可能給它廢棄了,這是完全有可能的。

但是對于CentOS Stream和RHEL來講就不會,因為這兩個東西是基于Fedora某一個特定版本,比如基于Fedora28,我要做一個穩(wěn)定的企業(yè)版,我拉一個分支出來。但這個穩(wěn)定版有些新的功能會加入進來,這個加入進來叫Backport,Backport是說我需要一些新的特性、Bug fix,而不是說一股腦的把所有東西都加過來。

CentOS如何構(gòu)建CI

接下來我們講到CentOS如何構(gòu)建CI。CentOS Stream跟RHEL,同一份代碼,進到兩個編譯和測試的系統(tǒng)里面去,編譯、測試的過程用到的工具都是一樣的,無非一個是社區(qū)版本,一個是企業(yè)版本,就是名字不一樣,但是它的內(nèi)容是一樣的。這里面測試用例有可能不一樣,但是最后通不通過測試用例的標準是一樣的。比如Stream里面有300個測試用例,RHEL里面有500個測試用例,中間重合了200個測試用例,實際上不重復的一共有600個測試用例。這600個測試用例無論你是CentOS Stream的code走到這兒,還是RHEL的code走到這兒,這600個都必須完全通過之后,才可以往下走。有一個沒通過,大家都等一等,這個代碼質(zhì)量不合格,回去重新做。

Gating這一步主要是自動化的一些測試手段,Verification這一步主要是手動的一些測試手段。我們已經(jīng)盡量的把所有可以自動化的都做自動化了,但是不能說所有東西完全自動化,有一些針對于特定環(huán)境的一些可能需要手動的。但這一步Verification也是兩邊都要滿足Verification的這個成功標準之后,才可以往下走,所以它的質(zhì)量保證是一樣的。

說了這么多質(zhì)量保證,相信很多做測試的朋友可能會講,你每出一個小的改動,都走完整的測試流程,走得過來嗎?你是用什么樣的架構(gòu)去支撐的?所以也是基于這種事件觸發(fā)的機制,用空間去換時間,CI的系統(tǒng)就完全并發(fā)的會起很多個不同的測試環(huán)境

所以,整個CI的過程是完全滿足DevOps CI/CD流水線的,可以快速的做大規(guī)模測試,以保證當有更多并發(fā),有很多人去提交patch補丁的時候,我能夠快速的去做Stream的方式。

講到這里,我不知道大家有沒有這樣一個疑問,這種方式是不是跟微服務(wù)有點像?實際上是有點像。我們做微服務(wù)的話,把一個大的分成若干小的模塊,也是為了更新方便。我們在內(nèi)核里邊為什么不能做微服務(wù)呢?我覺得很關(guān)鍵的一點,因為內(nèi)核,特別是Linux是一個宏內(nèi)核,所有東西都在內(nèi)核里面,而且內(nèi)核整體上它的代碼實際上還是一大坨一個整體。一個小的驅(qū)動,實際上它可能就把整個內(nèi)核都搞崩,這一點在微服務(wù)里實際上是不存在的。

正因為這樣,內(nèi)核里面每做一個小的改動,都要對所有的做測試。這樣的話測試量很大,所以如果你沒有一個先進一點的架構(gòu),是無法支撐這種Linux發(fā)行版開發(fā)的。也就是說你從CentOS Linux到CentOS Stream必須做這樣一步轉(zhuǎn)變,因為如果不做這樣的轉(zhuǎn)變,那你的開發(fā)節(jié)奏就跟不上,拿不出一個又穩(wěn)定同時又比較新的版本。

開源軟件供應(yīng)鏈安全

因為今年的log4j漏洞,可能有些人會覺得log4j就是洪水猛獸。其實大家選擇log4j是沒有問題的,問題是說當出現(xiàn)安全漏洞,我們發(fā)現(xiàn)安全漏洞的時候,我們?nèi)绾稳?yīng)對。

這個過程我們會發(fā)現(xiàn)跟現(xiàn)在的DevSecOps的理念很像,我們不能保證你進來的時候一定沒有漏洞,我們的目的是打造一個對開源軟件供應(yīng)鏈安全提供保障的閉環(huán)。

第一步,我們在UpStream階段肯定有一個甄選和識別,是不是存在一些惡意的代碼成分呢?甄別出后,是不是有一個規(guī)范的流程可以幫助我們?nèi)ミx;選完之后,我們打包對它進行測試;到最后你的傳播過程中,是不是有一些很好的校驗手段;特別是最關(guān)鍵的,到最后一步我們已經(jīng)把這個東西給到用戶,但我們出現(xiàn)問題的時候,是不是能夠有效的去解決。

所以我們認為開源軟件的供應(yīng)鏈安全,實際上主要是技術(shù)問題。

AlmaLinux:一個替代方案

AlmaLinux是什么?現(xiàn)在好多做CentOS Linux一樣的東西,完全基于RHEL代碼去做復刻。整個過程用到了哪些組建,所有的AlmaLinux里面的東西都是開源的。如果大家感興趣的話,可以看一下這個流程,就看CentOS.org上面代碼的變化。針對于這里面的任何些變化,就可以觸動它的打包構(gòu)建的流程,最終出品它的AlmaLinux。

從這點也以看出來,CentOS肯定是沒有停服的,如果停了之后,所有這些下游的版本,像AlmaLinux、RockLinux和其他很多的Linux,它的來源從哪兒來呢?因為紅帽這個RHEL就是基于CentOS Stream來做的,除非紅帽不做RHEL了,否則CentOS Stream就會一直都在。

CentOS Linux不是紅帽企業(yè)級Linux

最后說一下CentOS Linux,它跟紅帽企業(yè)級的Linux還是有很大差別的。對于企業(yè)級Linux要求的安全認證、軟硬件認證,在企業(yè)級保障中,更多的不是功能而是保障,這樣的一些保障在企業(yè)級Linux里面是有的。在CentOS里面坦白講確實很穩(wěn)定,如果一旦出問題,一旦有安全漏洞,就去找補丁,總有一天我可以找到補丁。但實際上你拿到補丁的速度,肯定沒有企業(yè)級Linux快。

如果是延續(xù)這樣的使用方式,你切到Stream上,可不可以呢?是完全可以的。當然了,其實對于企業(yè)級Linux,如果說有明確的規(guī)定,比如說有一些行業(yè)標準,建議還是選用紅帽的企業(yè)級Linux。


CentOS系統(tǒng)變化看開源演進的評論 (共 條)

分享到微博請遵守國家法律
攀枝花市| 班戈县| 吉林省| 娄烦县| 南平市| 苍南县| 淳安县| 富顺县| 东至县| 蒙山县| 平泉县| 阿拉善右旗| 察隅县| 呈贡县| 和田市| 特克斯县| 白城市| 略阳县| 荣昌县| 江源县| 南华县| 泾源县| 眉山市| 寻甸| 安西县| 同江市| 遵化市| 益阳市| 金华市| 西吉县| 衢州市| 元阳县| 东兴市| 德昌县| 正宁县| 五台县| 和田市| 栾川县| 濉溪县| 台安县| 宽城|