999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

系統研發的持續集成與持續交付技術的研究與實現

2021-04-28 22:28:52李正陽

李正陽

【摘? 要】系統研發,是IT公司根據自身的業務情況以及用戶的相關需求,對業務不斷實現和迭代的過程。在這個過程中,代碼集成與交付方式影響了整個團隊的工作進度和效率,優秀的持續集成與持續交付的相關技術可以使開發人員實現自動化管理,將精力集中到功能實現上,更快響應市場變化。論文通過調研持續集成與持續交付的相關技術,結合時下流行的DevOps概念及容器技術,提出一種典型的實現方案,為系統研發效率的提升提供借鑒和參考。

【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.

【關鍵詞】系統研發;持續集成;持續交付;DevOps;容器

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

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

1 引言

近年來,互聯網、IT行業蓬勃發展,極大地改變了中國人民的生活方式。中國的互聯網,經歷了三個時代,包括門戶時代、搜索社交時代,以及目前的大互聯網時代,可以說,每一個時代的產生或發展都對中國互聯網的歷史留下了深深的足跡,推動了中國互聯網不斷實現創新與發展。

在目前的大互聯網時代,IT公司如雨后春筍般不斷涌入各行各業,對人們衣、食、住、行的傳統模式不斷進行創新和發展,而細分到每一個領域、每一個產品、每一個軟件、每一個功能,背后都是一個個IT團隊進行的系統研發、功能研發,為用戶造就的基于互聯網模式的技術革新和功能革新。對于IT團隊來說,一個產品從無到有的過程中,在各個方面、各個環節都需要不斷精進,從而不斷發展,不斷增加效益。

對于系統研發來說,項目集成和部署作為系統研發周期中重要的組成部分,得到了業界的廣泛關注。業界領導者認為,持續集成與持續交付對于提升系統研發的效率尤為重要,因為企業渴望縮短產品上市時間。持續集成和持續交付對于產品的質量有著改善和提升的作用,同時,也可以在一定程度上降低項目的時間成本以及空間成本,對于企業來講,可以使得企業在日益激烈的市場競爭中得到優勢,在為用戶不斷提供優質服務的同時得到快速發展。

因此,本文基于系統研發環節中的痛點之一,即項目集成、部署與交付,對持續集成與持續交付相關內容進行介紹,并結合時下流行的DevOps概念及容器技術,探索目前行業內相關的技術,并給出一種典型的實現方案,為系統研發效率的提升提供借鑒和參考。

2 DevOps與持續集成持續交付

2.1 DevOps

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

通過對DevOps概念的解讀不難發現,系統從實現功能到上線交付,需要團隊中開發人員與運維人員的緊密配合,通過不斷的溝通合作,讓軟件發布更加高效,而系統研發的持續集成與持續交付,需要引入DevOps,通過開發與運維的協同合作,促進提升系統研發整體流程的可靠性與穩定性。

DevOps的實施,可以使開發工程師和運維工程師加強交流與溝通,互相熟悉對方的工作流程、工作模式,進而反思自己工作中的問題和可以改進的內容,反饋到工作中,改善系統研發流程中存在的各種問題,并通過自動化思維的引入、自動化工具的實現,提高系統研發全流程的工作效率。近年來的研究數據表明,已經率先引進并發展DevOps概念的企業,開發工程師與運維工程師在提升協作效能、實現自動化流程后,可以將產品開發的效率提升20%。

要想實現DevOps的核心理念,就需要實現系統研發的持續集成和持續交付。有別于傳統的開發模式,DevOps將開發、測試、部署作為一個單元的持續性的集成和交付,可以說持續集成和持續交付,就是DevOps的核心理念。DevOps與傳統開發模式的對比如圖2所示。

2.2 持續集成與持續交付

首先,對于持續集成與持續交付這兩個內容的相關概念進行介紹。

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

持續交付,英文縮寫為CD(Continuous Delivery),持續交付對于持續集成的概念來說是一種補充以及擴展,主要思想就是在自動化測試通過后,將軟件及服務部署更新到產品環境,即持續交付的本質,就是為用戶及時地提供每個構建成功的軟件、應用及服務。

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

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

3 開源容器引擎Docker

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

3.1 Docker技術概念

Docker作為一個近年來大家早已耳熟能詳的技術概念,因此,無須過多解釋其技術內容,對于DevOps以及系統研發的持續集成與持續交付來說,Docker可以作為所有服務的載體,在資源利用、服務隔離、啟動效率等方面提供強有力的技術支撐。

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

3.2 Docker主要優勢

通過相關技術概念,可以總結出Docker具有以下幾個方面的優勢:

資源利用:Docker與VMware等傳統虛擬化軟件不同,其運行于操作系統層之上,對資源的彈性利用,內存使用及存儲使用的優化,使得其在資源利用方面具有得天獨厚的優勢。

啟動快速:Docker容器,其優點之一,即直接在宿主內核層運行,所以不需要啟動整個操作系統,所以可以達到秒級,甚至毫秒級的容器啟動能力,可以很好地減少開發、測試、部署的時間,提高團隊的工作效率。

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

3.3 Docker與持續集成持續交付

上文介紹了Docker的一些基礎概念和優勢,下文對Docker在系統研發的持續集成與持續交付中的作用和地位進行介紹。

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

4 基于容器的持續集成與持續交付技術的實現

下文主要介紹系統研發的持續集成與持續交付中一種基于Docker+GitLab+Jenkins全流程的實現路徑,體現CI/CD的實現思路。

4.1 CI/CD全流程模型

結合具體的工作實踐,下文介紹了一個典型的基于Docker等開源工具實現的系統研發的持續集成與持續交付的流程模型。

如圖5所示,流程從左上開始,開發人員每次在本地對項目進行優化更新后,將代碼傳至遠程的代碼倉庫,通過事先部署完成的監控系統監聽代碼倉庫的變化,得到變化通知后,首先通知源碼獲取系統獲取最新的程序源碼,然后程序打包系統對最新的源碼進行打包形成可執行文件,最后通過部署系統部署到遠程服務器上進行實現。

部署成功后,通過微信接口實現的小程序,用微信推送給開發人員,流程返回左上,實現業務閉環。全程從開發人員一鍵提交代碼開始到業務部署完成并收到通知,實現脫離人工的完全的自動化。

4.2 CI/CD工具

4.2.1 GitLab

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

4.2.2 Jenkins

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

總體來說,Jenkins就是CI/CD流程中的“心臟”,可以接收開發者提供的任何輸入,并為運維人員提供方便可用的輸出,從而支撐項目組及開發團隊在系統研發中的持續部署、持續交付流程。

4.3 CI/CD實際工作流程

CI/CD的實際工作流程如下:

IT程序員進行代碼的版本更新,通過綁定Git的開發工具,將代碼更新提交到遠程GitLab倉庫中。通過Git的賬號與密碼的認證,以及對應的代碼倉庫權限的判斷,同時,滿足條件之后可以將更新后的代碼上傳到指定項目的指定分支。

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

通過Source Code Management設定輪詢時間,包括定時輪詢和循環輪詢。Jenkins的SCM輪詢到代碼倉庫的變化,開始拉取遠程代碼,并進行構建。

Jenkins也是系統研發的持續集成與持續交付流程的絕對核心,負責兼顧代碼變更的監控、代碼的打包、代碼的傳輸等功能。

代碼構建結束后,由Jenkins推送至服務器進行上線,服務可以通過Docker進行構建,從而使得各個服務彼此獨立、互不影響。此外,還可以在Jenkins上通過綁定微信、郵件等手段對構建結果進行實時推送。

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

5 結語

本文通過介紹DevOps、持續集成與持續交付、容器等概念與技術,闡明了系統研發中持續集成與持續交付的重要意義,并在文中介紹了一種典型的基于容器的系統研發的持續集成與持續交付的實現方法。

【參考文獻】

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

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

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

主站蜘蛛池模板: 久爱午夜精品免费视频| 国产精品视频系列专区| 国产精品久久精品| 亚洲69视频| 亚洲AV无码精品无码久久蜜桃| 国产精品黄色片| jijzzizz老师出水喷水喷出| 国产99精品视频| 欧美在线精品一区二区三区| 91麻豆精品国产91久久久久| 91在线无码精品秘九色APP| 中文字幕日韩视频欧美一区| 91在线精品免费免费播放| 久久99国产视频| 久久综合五月| 在线播放91| 色哟哟国产精品一区二区| 欧美无专区| 国产哺乳奶水91在线播放| 99久久亚洲精品影院| 国产一区二区丝袜高跟鞋| 亚洲丝袜中文字幕| 伊人五月丁香综合AⅤ| 无码中文AⅤ在线观看| 国产高清免费午夜在线视频| 国产一级裸网站| 国产女同自拍视频| 日本尹人综合香蕉在线观看| 国产一区二区三区免费观看| 中文字幕在线欧美| 國產尤物AV尤物在線觀看| 99热6这里只有精品| 日本成人精品视频| 91在线播放免费不卡无毒| 亚洲国产成人在线| 亚洲综合婷婷激情| 国产女人在线观看| 爱做久久久久久| 日韩欧美视频第一区在线观看 | 欧美亚洲国产日韩电影在线| 在线视频一区二区三区不卡| 日本AⅤ精品一区二区三区日| 亚洲视频影院| 日本爱爱精品一区二区| 成人精品视频一区二区在线| 亚洲国产中文精品va在线播放 | 中文无码日韩精品| 国产第一页亚洲| 国产女同自拍视频| 国产精品久久久久久久伊一| 久久综合丝袜长腿丝袜| 免费看av在线网站网址| 中文字幕日韩久久综合影院| 国产农村精品一级毛片视频| 中文字幕乱码二三区免费| 91精品情国产情侣高潮对白蜜| 九九香蕉视频| 亚洲成人77777| 国产丝袜一区二区三区视频免下载| 国产精品蜜芽在线观看| 欧美a级完整在线观看| 四虎永久在线精品国产免费| 国产毛片高清一级国语 | 91在线国内在线播放老师| 伊人久久大线影院首页| 亚洲精选无码久久久| 91久久偷偷做嫩草影院免费看| 精品福利国产| 国产日韩精品欧美一区喷| 婷婷亚洲天堂| 老汉色老汉首页a亚洲| 国产欧美日本在线观看| 伊人久久福利中文字幕| 亚洲人成色77777在线观看| 亚洲综合香蕉| 国产成人综合网| 十八禁美女裸体网站| 国产主播一区二区三区| 又黄又湿又爽的视频| 网友自拍视频精品区| 色一情一乱一伦一区二区三区小说| 久久永久免费人妻精品|