亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付技術(shù)的研究與實(shí)現(xiàn)

        2021-04-28 22:28:52李正陽
        關(guān)鍵詞:容器

        李正陽

        【摘? 要】系統(tǒng)研發(fā),是IT公司根據(jù)自身的業(yè)務(wù)情況以及用戶的相關(guān)需求,對業(yè)務(wù)不斷實(shí)現(xiàn)和迭代的過程。在這個(gè)過程中,代碼集成與交付方式影響了整個(gè)團(tuán)隊(duì)的工作進(jìn)度和效率,優(yōu)秀的持續(xù)集成與持續(xù)交付的相關(guān)技術(shù)可以使開發(fā)人員實(shí)現(xiàn)自動化管理,將精力集中到功能實(shí)現(xiàn)上,更快響應(yīng)市場變化。論文通過調(diào)研持續(xù)集成與持續(xù)交付的相關(guān)技術(shù),結(jié)合時(shí)下流行的DevOps概念及容器技術(shù),提出一種典型的實(shí)現(xiàn)方案,為系統(tǒng)研發(fā)效率的提升提供借鑒和參考。

        【Abstract】System research and development is a process in which IT companies constantly realize and iterate the business according to their own business situation and the relevant needs of users. In this process, the way of code integration and delivery affects the work schedule and efficiency of the entire team. Excellent technologies related to continuous integration and continuous delivery enable developers to automate management, focus on functional realization, and respond to market changes more quickly. By investigating the technology related to continuous integration and continuous delivery, combining the current popular DevOps concept and container technology, the paper proposes a typical realization scheme to provide a reference for the improvement of system research and development efficiency.

        【關(guān)鍵詞】系統(tǒng)研發(fā);持續(xù)集成;持續(xù)交付;DevOps;容器

        【Keywords】system research and development; continuous integration; continuous delivery; DevOps; container

        【中圖分類號】TP311.5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號】1673-1069(2021)03-0177-04

        1 引言

        近年來,互聯(lián)網(wǎng)、IT行業(yè)蓬勃發(fā)展,極大地改變了中國人民的生活方式。中國的互聯(lián)網(wǎng),經(jīng)歷了三個(gè)時(shí)代,包括門戶時(shí)代、搜索社交時(shí)代,以及目前的大互聯(lián)網(wǎng)時(shí)代,可以說,每一個(gè)時(shí)代的產(chǎn)生或發(fā)展都對中國互聯(lián)網(wǎng)的歷史留下了深深的足跡,推動了中國互聯(lián)網(wǎng)不斷實(shí)現(xiàn)創(chuàng)新與發(fā)展。

        在目前的大互聯(lián)網(wǎng)時(shí)代,IT公司如雨后春筍般不斷涌入各行各業(yè),對人們衣、食、住、行的傳統(tǒng)模式不斷進(jìn)行創(chuàng)新和發(fā)展,而細(xì)分到每一個(gè)領(lǐng)域、每一個(gè)產(chǎn)品、每一個(gè)軟件、每一個(gè)功能,背后都是一個(gè)個(gè)IT團(tuán)隊(duì)進(jìn)行的系統(tǒng)研發(fā)、功能研發(fā),為用戶造就的基于互聯(lián)網(wǎng)模式的技術(shù)革新和功能革新。對于IT團(tuán)隊(duì)來說,一個(gè)產(chǎn)品從無到有的過程中,在各個(gè)方面、各個(gè)環(huán)節(jié)都需要不斷精進(jìn),從而不斷發(fā)展,不斷增加效益。

        對于系統(tǒng)研發(fā)來說,項(xiàng)目集成和部署作為系統(tǒng)研發(fā)周期中重要的組成部分,得到了業(yè)界的廣泛關(guān)注。業(yè)界領(lǐng)導(dǎo)者認(rèn)為,持續(xù)集成與持續(xù)交付對于提升系統(tǒng)研發(fā)的效率尤為重要,因?yàn)槠髽I(yè)渴望縮短產(chǎn)品上市時(shí)間。持續(xù)集成和持續(xù)交付對于產(chǎn)品的質(zhì)量有著改善和提升的作用,同時(shí),也可以在一定程度上降低項(xiàng)目的時(shí)間成本以及空間成本,對于企業(yè)來講,可以使得企業(yè)在日益激烈的市場競爭中得到優(yōu)勢,在為用戶不斷提供優(yōu)質(zhì)服務(wù)的同時(shí)得到快速發(fā)展。

        因此,本文基于系統(tǒng)研發(fā)環(huán)節(jié)中的痛點(diǎn)之一,即項(xiàng)目集成、部署與交付,對持續(xù)集成與持續(xù)交付相關(guān)內(nèi)容進(jìn)行介紹,并結(jié)合時(shí)下流行的DevOps概念及容器技術(shù),探索目前行業(yè)內(nèi)相關(guān)的技術(shù),并給出一種典型的實(shí)現(xiàn)方案,為系統(tǒng)研發(fā)效率的提升提供借鑒和參考。

        2 DevOps與持續(xù)集成持續(xù)交付

        2.1 DevOps

        在介紹系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付之前,需要先引入DevOps的概念,以便理解持續(xù)集成與持續(xù)交付在系統(tǒng)研發(fā)中所處的位置。DevOps,即開發(fā)(Development)和運(yùn)維(Operations)的組合,指兩個(gè)工種之間的協(xié)同工作(見圖1)。在傳統(tǒng)的系統(tǒng)研發(fā)流程中,開發(fā)人員進(jìn)行軟件開發(fā)、功能構(gòu)建、項(xiàng)目迭代,而運(yùn)維人員負(fù)責(zé)硬件搭建、軟件環(huán)境部署以及服務(wù)發(fā)布。原本流程各自獨(dú)立,但由于缺乏溝通導(dǎo)致產(chǎn)品和服務(wù)交付效率較低,于是DevOps應(yīng)運(yùn)而生,其旨在促進(jìn)軟件開發(fā)工程師和基礎(chǔ)設(shè)施運(yùn)維工程師之間加強(qiáng)合作與溝通,共同組建基于自動化工具的持續(xù)集成、持續(xù)交付流程,最終達(dá)到項(xiàng)目構(gòu)建、代碼測試、軟件發(fā)布的全流程的自動化,從而使整個(gè)系統(tǒng)研發(fā)流程能夠更加及時(shí)、可靠以及穩(wěn)定。

        通過對DevOps概念的解讀不難發(fā)現(xiàn),系統(tǒng)從實(shí)現(xiàn)功能到上線交付,需要團(tuán)隊(duì)中開發(fā)人員與運(yùn)維人員的緊密配合,通過不斷的溝通合作,讓軟件發(fā)布更加高效,而系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付,需要引入DevOps,通過開發(fā)與運(yùn)維的協(xié)同合作,促進(jìn)提升系統(tǒng)研發(fā)整體流程的可靠性與穩(wěn)定性。

        DevOps的實(shí)施,可以使開發(fā)工程師和運(yùn)維工程師加強(qiáng)交流與溝通,互相熟悉對方的工作流程、工作模式,進(jìn)而反思自己工作中的問題和可以改進(jìn)的內(nèi)容,反饋到工作中,改善系統(tǒng)研發(fā)流程中存在的各種問題,并通過自動化思維的引入、自動化工具的實(shí)現(xiàn),提高系統(tǒng)研發(fā)全流程的工作效率。近年來的研究數(shù)據(jù)表明,已經(jīng)率先引進(jìn)并發(fā)展DevOps概念的企業(yè),開發(fā)工程師與運(yùn)維工程師在提升協(xié)作效能、實(shí)現(xiàn)自動化流程后,可以將產(chǎn)品開發(fā)的效率提升20%。

        要想實(shí)現(xiàn)DevOps的核心理念,就需要實(shí)現(xiàn)系統(tǒng)研發(fā)的持續(xù)集成和持續(xù)交付。有別于傳統(tǒng)的開發(fā)模式,DevOps將開發(fā)、測試、部署作為一個(gè)單元的持續(xù)性的集成和交付,可以說持續(xù)集成和持續(xù)交付,就是DevOps的核心理念。DevOps與傳統(tǒng)開發(fā)模式的對比如圖2所示。

        2.2 持續(xù)集成與持續(xù)交付

        首先,對于持續(xù)集成與持續(xù)交付這兩個(gè)內(nèi)容的相關(guān)概念進(jìn)行介紹。

        持續(xù)集成,英文縮寫為CI(Continuous Integration),在系統(tǒng)研發(fā)中,集成可以理解為對代碼進(jìn)行階段性的提交,進(jìn)行功能的整合和實(shí)現(xiàn),這個(gè)過程會伴隨著一些未知的問題和錯(cuò)誤。而持續(xù)集成是一種系統(tǒng)研發(fā)的迭代,團(tuán)隊(duì)中的開發(fā)人員通過一次又一次地將代碼上傳到代碼倉庫,進(jìn)行集成測試和功能驗(yàn)證,從而實(shí)現(xiàn)項(xiàng)目與產(chǎn)品的迭代,實(shí)現(xiàn)代碼零庫存積壓,不斷地改善和解決問題,且每次提交都能通過自動化測試進(jìn)行驗(yàn)證,從而使問題盡早暴露和解決。

        持續(xù)交付,英文縮寫為CD(Continuous Delivery),持續(xù)交付對于持續(xù)集成的概念來說是一種補(bǔ)充以及擴(kuò)展,主要思想就是在自動化測試通過后,將軟件及服務(wù)部署更新到產(chǎn)品環(huán)境,即持續(xù)交付的本質(zhì),就是為用戶及時(shí)地提供每個(gè)構(gòu)建成功的軟件、應(yīng)用及服務(wù)。

        其次,綜合上述內(nèi)容可以看出,DevOps與CI/CD緊密相關(guān),我們可以認(rèn)為DevOps是理論,CI/CD是實(shí)踐,對于DevOps的概念來講,要實(shí)現(xiàn)開發(fā)與運(yùn)維全流程的一體化,是需要實(shí)現(xiàn)CI/CD,通過自動化工具來驅(qū)動整個(gè)流程,最終實(shí)現(xiàn)流程自動化(見圖3)。

        通過持續(xù)集成和持續(xù)交付技術(shù)的實(shí)現(xiàn),可以真正實(shí)現(xiàn)代碼的零庫存管理,代碼越早推到線上,用戶就能越早用到,就可以提供更大的商業(yè)價(jià)值。反之,如果代碼不斷積壓,那么,項(xiàng)目及服務(wù)就會更少地得到市場的檢驗(yàn),同時(shí),代碼積壓會導(dǎo)致一個(gè)很嚴(yán)重的問題,即代碼間交叉感染,隨之而來的是管理成本會越來越高??梢哉f持續(xù)集成和持續(xù)交付技術(shù)對于如今競爭壓力越來越大的IT企業(yè)至關(guān)重要。

        3 開源容器引擎Docker

        在介紹CI/CD的具體實(shí)現(xiàn)流程之前,需要介紹虛擬化家族的一個(gè)重要工具——Docker,其作為實(shí)現(xiàn)DevOps最合適的工具之一,也是近年來非常流行的技術(shù)概念

        3.1 Docker技術(shù)概念

        Docker作為一個(gè)近年來大家早已耳熟能詳?shù)募夹g(shù)概念,因此,無須過多解釋其技術(shù)內(nèi)容,對于DevOps以及系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付來說,Docker可以作為所有服務(wù)的載體,在資源利用、服務(wù)隔離、啟動效率等方面提供強(qiáng)有力的技術(shù)支撐。

        Docker作為一個(gè)虛擬環(huán)境的容器,可以將開發(fā)人員的代碼、運(yùn)行環(huán)境、配置文件共同打包并發(fā)布,無縫銜接持續(xù)集成持續(xù)交付的思路,其多平臺可移植性、沙箱機(jī)制對于開發(fā)工程師及運(yùn)維人員來講可以說非常友好。

        3.2 Docker主要優(yōu)勢

        通過相關(guān)技術(shù)概念,可以總結(jié)出Docker具有以下幾個(gè)方面的優(yōu)勢:

        資源利用:Docker與VMware等傳統(tǒng)虛擬化軟件不同,其運(yùn)行于操作系統(tǒng)層之上,對資源的彈性利用,內(nèi)存使用及存儲使用的優(yōu)化,使得其在資源利用方面具有得天獨(dú)厚的優(yōu)勢。

        啟動快速:Docker容器,其優(yōu)點(diǎn)之一,即直接在宿主內(nèi)核層運(yùn)行,所以不需要啟動整個(gè)操作系統(tǒng),所以可以達(dá)到秒級,甚至毫秒級的容器啟動能力,可以很好地減少開發(fā)、測試、部署的時(shí)間,提高團(tuán)隊(duì)的工作效率。

        持續(xù)集成:上文提到其沙箱機(jī)制、容器打包機(jī)制與持續(xù)集成持續(xù)交付非常契合。

        3.3 Docker與持續(xù)集成持續(xù)交付

        上文介紹了Docker的一些基礎(chǔ)概念和優(yōu)勢,下文對Docker在系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付中的作用和地位進(jìn)行介紹。

        如圖4所示,除去下文介紹的Git、Jenkins等內(nèi)容,Docker在整個(gè)持續(xù)集成與持續(xù)交付中處于OS層和應(yīng)用層之間,向下兼容操作系統(tǒng)獲取系統(tǒng)資源,向上為系統(tǒng)研發(fā)的前中后臺提供各項(xiàng)服務(wù),其中,Docker Engine負(fù)責(zé)服務(wù)的承載和發(fā)布,Docker Registry負(fù)責(zé)本地鏡像的管理與復(fù)用。整個(gè)Docker位于系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付的底層,提供靈活快速、伸縮性強(qiáng)、可移植性強(qiáng)的服務(wù)支撐。

        4 基于容器的持續(xù)集成與持續(xù)交付技術(shù)的實(shí)現(xiàn)

        下文主要介紹系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付中一種基于Docker+GitLab+Jenkins全流程的實(shí)現(xiàn)路徑,體現(xiàn)CI/CD的實(shí)現(xiàn)思路。

        4.1 CI/CD全流程模型

        結(jié)合具體的工作實(shí)踐,下文介紹了一個(gè)典型的基于Docker等開源工具實(shí)現(xiàn)的系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付的流程模型。

        如圖5所示,流程從左上開始,開發(fā)人員每次在本地對項(xiàng)目進(jìn)行優(yōu)化更新后,將代碼傳至遠(yuǎn)程的代碼倉庫,通過事先部署完成的監(jiān)控系統(tǒng)監(jiān)聽代碼倉庫的變化,得到變化通知后,首先通知源碼獲取系統(tǒng)獲取最新的程序源碼,然后程序打包系統(tǒng)對最新的源碼進(jìn)行打包形成可執(zhí)行文件,最后通過部署系統(tǒng)部署到遠(yuǎn)程服務(wù)器上進(jìn)行實(shí)現(xiàn)。

        部署成功后,通過微信接口實(shí)現(xiàn)的小程序,用微信推送給開發(fā)人員,流程返回左上,實(shí)現(xiàn)業(yè)務(wù)閉環(huán)。全程從開發(fā)人員一鍵提交代碼開始到業(yè)務(wù)部署完成并收到通知,實(shí)現(xiàn)脫離人工的完全的自動化。

        4.2 CI/CD工具

        4.2.1 GitLab

        上文介紹的代碼倉庫,可以通過基于Git實(shí)現(xiàn)的用于倉庫管理系統(tǒng)的開源項(xiàng)目GitLab實(shí)現(xiàn)。GitLab是一種代碼管理的服務(wù),使用Git作為其核心技術(shù),具有Web服務(wù)的前端界面,并通過管理界面為程序員及管理者提供代碼倉庫的創(chuàng)建、訪問、上傳、更新服務(wù)。與GitHub相比,GitLab是本地的私有代碼倉庫,比起GitHub在CI/CD的網(wǎng)絡(luò)流程中更加快速,同時(shí),同樣具有瀏覽代碼、注釋等功能,所以在CI/CD中更受歡迎。

        4.2.2 Jenkins

        上文介紹的集監(jiān)控系統(tǒng)、源碼獲取系統(tǒng)、程序打包系統(tǒng)、部署系統(tǒng),通過Jenkins這個(gè)系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付的核心組件可以集成實(shí)現(xiàn)。Jenkins是一個(gè)非常流行的且功能異常強(qiáng)大的用于持續(xù)集成持續(xù)交付的可視化Web工具,可以說是構(gòu)建CI/CD思路的最核心功能的工具,其開發(fā)語言兼容性、代碼管理工具的兼容性都非常好,具有豐富的插件和開放的接口開發(fā)機(jī)制。

        總體來說,Jenkins就是CI/CD流程中的“心臟”,可以接收開發(fā)者提供的任何輸入,并為運(yùn)維人員提供方便可用的輸出,從而支撐項(xiàng)目組及開發(fā)團(tuán)隊(duì)在系統(tǒng)研發(fā)中的持續(xù)部署、持續(xù)交付流程。

        4.3 CI/CD實(shí)際工作流程

        CI/CD的實(shí)際工作流程如下:

        IT程序員進(jìn)行代碼的版本更新,通過綁定Git的開發(fā)工具,將代碼更新提交到遠(yuǎn)程GitLab倉庫中。通過Git的賬號與密碼的認(rèn)證,以及對應(yīng)的代碼倉庫權(quán)限的判斷,同時(shí),滿足條件之后可以將更新后的代碼上傳到指定項(xiàng)目的指定分支。

        代碼倉庫接收到代碼的更新,會出現(xiàn)update時(shí)間的變化,以及在history中對應(yīng)小版本tag標(biāo)簽,在GitLab中也可以進(jìn)行分支的控制,如合并、回滾等操作。代碼更新后,等待Jenkins的SCM,即Source Code Management輪詢到代碼變化并拉取代碼。

        通過Source Code Management設(shè)定輪詢時(shí)間,包括定時(shí)輪詢和循環(huán)輪詢。Jenkins的SCM輪詢到代碼倉庫的變化,開始拉取遠(yuǎn)程代碼,并進(jìn)行構(gòu)建。

        Jenkins也是系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付流程的絕對核心,負(fù)責(zé)兼顧代碼變更的監(jiān)控、代碼的打包、代碼的傳輸?shù)裙δ堋?/p>

        代碼構(gòu)建結(jié)束后,由Jenkins推送至服務(wù)器進(jìn)行上線,服務(wù)可以通過Docker進(jìn)行構(gòu)建,從而使得各個(gè)服務(wù)彼此獨(dú)立、互不影響。此外,還可以在Jenkins上通過綁定微信、郵件等手段對構(gòu)建結(jié)果進(jìn)行實(shí)時(shí)推送。

        全流程從程序員提交代碼更新開始,歷經(jīng)GitLab、Jenkins、Docker三大開源工具,最終成功部署,代碼更新迭代,并將通知推送到微信或郵箱,完成系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付,實(shí)現(xiàn)了DevOps的基本思想。

        5 結(jié)語

        本文通過介紹DevOps、持續(xù)集成與持續(xù)交付、容器等概念與技術(shù),闡明了系統(tǒng)研發(fā)中持續(xù)集成與持續(xù)交付的重要意義,并在文中介紹了一種典型的基于容器的系統(tǒng)研發(fā)的持續(xù)集成與持續(xù)交付的實(shí)現(xiàn)方法。

        【參考文獻(xiàn)】

        【1】王玉梅.持續(xù)集成理論在軟件開發(fā)中的應(yīng)用[J].數(shù)字通信世界,2020,1(1):222.

        【2】王冶青.DevOps在企業(yè)信息化戰(zhàn)略中的應(yīng)用分析[J].信息系統(tǒng)工程,2020,10(1):113-114.

        【3】劉晶晶,朱寅非.基于Docker引擎虛擬化技術(shù)的應(yīng)用研究[J].軟件,2020,10(1):1-4.

        猜你喜歡
        容器
        容器倒置后壓力壓強(qiáng)如何變
        Different Containers不同的容器
        容器倒置后壓力壓強(qiáng)如何變
        人心像一個(gè)容器
        難以置信的事情
        怎樣量出4升水
        液體對容器底及容器對桌面的壓力和壓強(qiáng)
        考試周刊(2016年82期)2016-11-01 11:43:44
        直干藍(lán)桉容器育苗基質(zhì)的選擇
        取米
        什么不見了
        孩子(2015年10期)2015-09-10 07:22:44
        无码av一区二区大桥久未| 日本免费一区二区在线| 在线观看精品国产福利片100| 中文字幕久久精品波多野结百度| 亚洲一区二区三在线播放| 一本到亚洲av日韩av在线天堂| 日韩午夜理论免费tv影院| 国产精品无码专区av在线播放| 亚洲伊人久久成人综合网| 午夜婷婷国产麻豆精品| 尤物yw午夜国产精品视频| 国产午夜精品一区二区三区软件 | 97人妻精品一区二区三区免费| 狠狠色噜噜狠狠狠777米奇| 国产精品麻豆欧美日韩ww| 97久久精品人人妻人人| 国产精品欧美视频另类专区| 久久国产精品免费久久久| 亚洲精品宾馆在线精品酒店 | 国产精品无需播放器| 国产精品无码不卡在线播放| 亚洲乱码av一区二区蜜桃av| 少妇性俱乐部纵欲狂欢电影| 真人男女做爰无遮挡免费视频| 亚洲av毛片成人精品| 熟女中文字幕一区二区三区 | 亚洲AV无码一区二区水蜜桃| 青青视频在线播放免费的| 免费在线观看av不卡网站| 国产国拍亚洲精品mv在线观看| 亚洲AV无码一区二区三区日日强 | 国产精品女同学| 久草福利国产精品资源| 私人vps一夜爽毛片免费| 无码人妻一区二区三区免费n鬼沢 人禽无码视频在线观看 | 少妇人妻偷人精品免费视频| 久久婷婷国产精品香蕉| 精品乱色一区二区中文字幕 | 亚洲av成人一区二区三区在线观看| 国产成人综合久久三区北岛玲| 极品av一区二区三区|