日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

云原生時代,企業(yè)如何選取、落地研發(fā)模式

【云原生時代,企業(yè)如何選取、落地研發(fā)模式】

云原生時代,企業(yè)如何選取、落地研發(fā)模式



云原生是近幾年IT圈最火熱的詞匯之一,幾乎每一個云計算產品都會或多或少跟云原生發(fā)生關聯(lián) 。那到底什么是云原生?它對企業(yè)的項目研發(fā)又有什么樣的影響跟要求?云原生這個大的時代背景下,企業(yè)又應如何落地相應研發(fā)模式來提高研發(fā)效率,提升企業(yè)競爭力呢 。
  • 容器是云原生變革的根本,其他的東西都是基于這個基礎所引申和集成起來的 。
  • 云原生時代的軟件研發(fā)要求:快、穩(wěn)和省 。
  • 研發(fā)模式選擇取決于是持續(xù)發(fā)布的方式還是版本制發(fā)布的方式 。
  • 通過分支模式和工具平臺,可以從繁瑣的手工工作中解放出來,讓我們研發(fā)協(xié)同的效率更高 。
云原生變革的根本什么是云原生?2019年Pivotal官網給的定義,云原生關注4點,包括:DevOps,持續(xù)交付,容器以及微服務,這里我們只把容器凸顯出來 。因為其他三個并不是云原生所特有的,我們本來就在做這樣的一些事,這里唯一的區(qū)別就是容器 。容器就像集裝箱,它成了一個標準,成了這幾年云原生研發(fā)的一個底座,基于這個底座,再集成持續(xù)交付、微服務和DevOps等實踐,就組成了我們通常所說的云原生 。云原生時代軟件開發(fā)的特點隨著云計算的發(fā)展,越來越多的企業(yè)開始上云,企業(yè)上云的第一個前提條件就是能夠基于云上的這些服務提供更好的業(yè)務需求的響應能力,需要更快 。其次,因為現在企業(yè)很多基礎設施也在云上,比如說一些金融類的服務也慢慢上云了,這要求服務要非常的穩(wěn),不能出現問題,不管是安全問題,還是穩(wěn)定性問題 。第三,有這兩個基本條件之后,企業(yè)希望投入的成本能足夠的低,成本可能包括兩方面,一方面是物理上的,硬件上的設施投入,比如ECS等,另外一個是我的人力成本,不管開發(fā)也好,運維也好,在這上面投入的人力成本要盡可能的低,所以總結下來就是三個字,快、穩(wěn)和省 。接下來,我們看一個企業(yè)的實際場景問題,為什么團隊變大了,發(fā)布卻變得更困難了 。這是個很典型的問題,尤其當一個團隊,從十幾個人快速發(fā)展到一百多個人的時候,是非常明顯的 。原來一周可以發(fā)個一兩次,但是到了100多人的時候,可能一個月才能發(fā)一次,這背后的原因,就是協(xié)作變復雜了 。有一個研究報告提到,有效的研發(fā)時間,在整個項目周期中可能是不到20%的,大量的時間都是在做各種協(xié)同的事情,本次分享我們主要去講怎么去解決這類問題 。協(xié)同問題,嚴重影響研發(fā)效率,如何為研發(fā)團隊設計合適的研發(fā)模式持續(xù)發(fā)布or版本制發(fā)布我們從大家的發(fā)布形態(tài)去看怎么去設計合適的研發(fā)模式 。比如我給銀行做項目半年或者三個月給他一個版本,那個版本是明確的,發(fā)布什么東西很明確,這個時候認為它是版本制發(fā)布的方式,如果是另外一種,比如只是一個在線的服務,這個服務我不關心歷史版本,只要最新的服務ok就行了,我們認為它是一個持續(xù)發(fā)布的方式 。持續(xù)發(fā)布的研發(fā)模式:只分支合并一次持續(xù)發(fā)布的特點是分支只合并一次,即從feature分支合并到master,它以一個特性或者需求為單位,開發(fā)完、驗證完就可以發(fā)布,所以這個時候發(fā)布的粒度是一個feature 。當代碼在feature分支上做提交后,會自動的做一些單元測試和掃描,然后做構建,然后部署到測試環(huán)境,在上面做一些自動化測試,之后可能會做一些人工的驗證,然后部署到UAT環(huán)境,做一些驗收和審核 。如果審核通過了,就合并到主干,然后部署到生產環(huán)境,整個過程非常清晰順暢 。版本制發(fā)布研發(fā)模式版本制發(fā)布方式特點是分支合并兩次 。這里面有一個feature branch,一個master,一個release branch 。master就是主干,主干是長期的分支,存放最新的發(fā)布過的、可用的代碼;feature branch是特性開發(fā)的分支,每做一個特性開發(fā)的時候,會拉一個feature branch,在上面進行開發(fā)和自測 。要做發(fā)布的時候,會拉一個release branch,release branch也是臨時的分支,之后,所有符合條件的feature branch就會合并到release branch,在release branch上做集成驗證和測試,驗證通過了,并且通過驗收之后,會合并到主干,然后部署到生產環(huán)境,這個就是版本制的方式 。這里有兩次代碼合并的過程,第一次合并是從feature branch合并到release branch,第二次是從release branch合并到master 。云效流水線落地研發(fā)模式研發(fā)模式怎么在云效上落地?首先,我們會在云效上建立兩條流水線,一條dev流水線,即開發(fā)流水線,一條release流水線,即發(fā)布流水線 。開發(fā)流水線的話,它的觸發(fā)源就是feature分支一次git push,之后自動的去做一些代碼掃描、單元測試、構建或者是測試環(huán)境部署,也可以到上面去做自動化測試,云效流水線都是支持的 。開發(fā)流水線運行通過后,我們可以根據需要,將feature分支合入到release分支,此時就會觸發(fā)我們的第二條流水線也就是release流水線運行 。release流水線的會在上面同樣去做前面的那些動作,但是會額外有一些管理員的卡點,包括一些UI測試,SIT測試等等 。驗收通過后,會發(fā)布到UAT環(huán)境,并且做PO驗收和運維審核,最后合并master,然后生成一個版本,并且部署到正式的環(huán)境中 。這就是版本制發(fā)布的一個研發(fā)模式,它的特點跟剛剛比會多一次分支合并操作 。

推薦閱讀