日本一区二区三区99_无码精品动漫在线观看免费_欧美高潮无遮挡猛烈动态图_日本好湿好紧好爽在线观看_幻女毛片aa特级_免费观看又色又刺激的视频_无遮挡粉嫩小泬女视频_A欧美亚洲日韩高清电影_五月天激情婷婷丁香刺激网_亚洲免费操比视频

聽睿云智合CTO徐年剛暢談金融行業(yè)基于容器技術(shù)的DevOps

深圳睿云智合科技有限公司 > 睿云新聞  > 聽睿云智合CTO徐年剛暢談金融行業(yè)基于容器技術(shù)的DevOps

聽睿云智合CTO徐年剛暢談金融行業(yè)基于容器技術(shù)的DevOps

深圳金融IT界容器技術(shù)專題研討會(huì)

9月6日,由深圳金融信息服務(wù)協(xié)會(huì)主辦,我公司(深圳睿云智合科技有限公司)與Rancher Labs聯(lián)合協(xié)辦的,深圳金融IT界容器技術(shù)專題研討會(huì)隆重召開并勝利閉幕!會(huì)議匯聚了國內(nèi)外知名的云計(jì)算技術(shù)大咖,以及招商銀行、平安科技、富德生命人壽、廣發(fā)證券等國內(nèi)金融科技引領(lǐng)企業(yè)的容器技術(shù)實(shí)踐團(tuán)隊(duì)的經(jīng)驗(yàn)分享,為150多人的在場(chǎng)嘉賓奉上了一場(chǎng)堪稱金融行業(yè)與最前沿容器技術(shù)的巔峰碰撞!除了深圳本地的金融行業(yè)技術(shù)人員,更有來自北京、上海、東北的多家金融機(jī)構(gòu)信息技術(shù)團(tuán)隊(duì)積極參與,大家紛紛表示會(huì)議干貨多多,收獲頗豐。以下就是小編為大家整理的嘉賓分享內(nèi)容系列速遞,按照演講順序,今天為大家推出的是來自前Eucalyptus 架構(gòu)師&中國區(qū)技術(shù)總監(jiān),現(xiàn)睿云智合CTO,國內(nèi)云計(jì)算資深專家徐年剛(Nathan)的分享:《金融行業(yè)基于容器技術(shù)的DevOps》

睿云智合CTO,國內(nèi)云計(jì)算資深專家徐年剛(Nathan)的分享:《金融行業(yè)基于容器技術(shù)的DevOps》

究竟DevOps是什么?DevOps是如何促進(jìn)開發(fā)、測(cè)試、運(yùn)維一體化?在企業(yè)有哪些實(shí)踐?以及DevOps和容器技術(shù)有什么關(guān)系?CI/CD有哪些常見的解決方案?相信Nathan接下來的分享都會(huì)給大家一些重要的啟發(fā)。

 

DevOps 介紹和實(shí)踐

 

 

 

 

首先,Nathan簡(jiǎn)單的介紹了軟件產(chǎn)品交付變革。在之前的軟件交付中,軟件的設(shè)計(jì)規(guī)劃,占用的時(shí)間都比較長(zhǎng),導(dǎo)致交付到客戶手中的時(shí)間就較長(zhǎng)。隨著互聯(lián)網(wǎng)的飛速發(fā)展,現(xiàn)在的交付理念是:小步快跑的方式交付產(chǎn)品,收集用戶反饋,持續(xù)對(duì)產(chǎn)品進(jìn)行改進(jìn)。之前我們更多是在講敏捷開發(fā)、而現(xiàn)在更多是DevOps開發(fā)運(yùn)維協(xié)作一體化,在企業(yè)中已經(jīng)得到了許多實(shí)踐應(yīng)用。

 

什么是DevOps?

 

 

A DevOps是英文Development和Operations的組合

B DevOps是一組過程、方法與系統(tǒng)的統(tǒng)稱:用于促進(jìn)開發(fā)(應(yīng)用程序/軟件?工程)、技術(shù)運(yùn)營和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合,這才是DevOps的宗旨。

DevOps

 

DevOps企業(yè)實(shí)踐

 

 

DevOps在企業(yè)中的實(shí)踐主要從四個(gè)方面來實(shí)施:

 

  • 持續(xù)部署(CI/CD)
  • 度量和反饋(持續(xù)運(yùn)營)
  • 組織協(xié)作(建立全功能團(tuán)隊(duì))
  • 架構(gòu)解耦(系統(tǒng)解耦,技術(shù)解耦)

 

 

由于此次研討嘉賓實(shí)在大咖,而時(shí)間卻有限,所以Nathan這一次先給我們介紹CI/CD。怎么開始CI/CD實(shí)踐呢?主要是從以下5個(gè)方面。

持續(xù)集成/部署流水線

這個(gè)環(huán)節(jié)是怎么樣實(shí)現(xiàn)的呢?開發(fā)者提交代碼觸發(fā)代碼更新,然后自動(dòng)CI構(gòu)建,在等待構(gòu)建成功之后,開始部署和執(zhí)行自動(dòng)化功能測(cè)試。自動(dòng)化部署成功之后,觸發(fā)手動(dòng)部署UAT或者生產(chǎn)環(huán)境上以及非功能性測(cè)試。說這么多,流水線內(nèi)部是怎么樣的呢?如下圖:

 

基本CI構(gòu)建

圖1:基本CI構(gòu)建

 

自動(dòng)化功能、契約測(cè)試

圖2:?自動(dòng)化功能、契約測(cè)試

 

部署手動(dòng)測(cè)試

圖3:部署手動(dòng)測(cè)試

 

 

那怎樣CI/CD流水線設(shè)計(jì)才算是好的呢?

CI/CD流水線設(shè)計(jì)

  • 可視化:流水線的運(yùn)行和停止,成功與失敗對(duì)所有人直觀可見;通過大顯示器投放給整個(gè)團(tuán)隊(duì)

 

  • 反饋:流水線通過顯示器,短信,郵件等多種手段及時(shí)將失敗信息傳達(dá)到相關(guān)團(tuán)隊(duì)成員

 

  • 可控制:從構(gòu)建到生產(chǎn)發(fā)布總有一些環(huán)節(jié)是需要人手動(dòng)驗(yàn)證的,比如UAT,發(fā)布前的批準(zhǔn)等;端到端的流水線需要某些環(huán)節(jié)可以暫停,等待手動(dòng)繼續(xù)

 

  • 門禁:流水線中任何一個(gè)環(huán)節(jié)失敗應(yīng)該讓流水線停下來,并通知團(tuán)隊(duì),比如自動(dòng)化測(cè)試不通過,Schema升級(jí)失敗等

 

  • 關(guān)注度:當(dāng)流水線發(fā)生失敗時(shí)團(tuán)隊(duì)必須立刻有人關(guān)注并解決它,否則流水線的反饋對(duì)團(tuán)隊(duì)的作用就會(huì)大打折扣。Time in “Red”是對(duì)流水線關(guān)注度的一個(gè)重要度量指標(biāo)

內(nèi)建質(zhì)量

內(nèi)建質(zhì)量即在軟件產(chǎn)生的各個(gè)環(huán)節(jié)中建立固化的、自動(dòng)化的質(zhì)量保障體系。

我們來看下一個(gè)比較經(jīng)典的質(zhì)量控制體系案例:

內(nèi)建質(zhì)量

  • 靜態(tài)程序分析

利用代碼分析工具,不執(zhí)行代碼的情況下對(duì)其質(zhì)量進(jìn)行檢查,包括重復(fù)代碼,安全漏洞,及各種代碼壞味道;

 

  • 單元測(cè)試

直接調(diào)用應(yīng)用代碼,對(duì)程序的輸入與輸出,以及執(zhí)行過程是否符合預(yù)期進(jìn)行測(cè)試;單元測(cè)試不能僅強(qiáng)調(diào)覆蓋率,而要進(jìn)行評(píng)審,保證有效性和場(chǎng)景覆蓋的完整性;

 

  • 自動(dòng)化契約測(cè)試

系統(tǒng)提供的每一個(gè)接口(Web服務(wù),MQ或其他)都是與其消費(fèi)者所達(dá)成的契約,都必須要有對(duì)應(yīng)的自動(dòng)化測(cè)試;

 

  • 自動(dòng)化部署驗(yàn)證

在生產(chǎn)環(huán)境部署完成后,通過自動(dòng)化方法對(duì)其部署是否成功,應(yīng)用和服務(wù)的運(yùn)行狀態(tài)進(jìn)行驗(yàn)證,以判斷該部署的新版本是否能夠向用戶開放;

 

  • 自動(dòng)化界面測(cè)試

通過模擬真實(shí)人在界面上與系統(tǒng)的交互,對(duì)系統(tǒng)的完整業(yè)務(wù)流程進(jìn)行驗(yàn)證;這種測(cè)試方法更貼近真實(shí),但執(zhí)行效率也較低;

 

  • 自動(dòng)化非功能測(cè)試

非功能測(cè)試包括性能測(cè)試,壓力測(cè)試,安全性測(cè)試等,也應(yīng)當(dāng)集成到端到端的部署流水線中;不過并非每一個(gè)故事或特性都需要非功能測(cè)試

 

基礎(chǔ)設(shè)施即代碼

基礎(chǔ)設(shè)施即代碼,怎么做呢?腳本化一切可以腳本化的、用版本控制庫管理所有腳本和代碼、禁止人工操作。

版本控制庫管理

  • 構(gòu)建

利用Shell腳本文件(.sh)或自動(dòng)構(gòu)建工具來進(jìn)行應(yīng)用和服務(wù)的依賴管理,編譯,執(zhí)行測(cè)試,和生成安裝包、部署包。

不同的語言有不同的構(gòu)建工具,如Java的Maven,Gradle;C/C++/Objective C的gcc, CMake, Ruby的Rake等。

 

  • 環(huán)境配置

利用自動(dòng)化環(huán)境管理工具來進(jìn)行服務(wù)器上的軟件安裝,升級(jí),配置,服務(wù)的啟動(dòng)和停止,權(quán)限設(shè)置,文件操作等各種任務(wù)。

目前成熟常用的IT自動(dòng)化管理工具包括Puppet,Chef,Ansible等。

 

  • 數(shù)據(jù)庫變更

利用數(shù)據(jù)庫自動(dòng)化管理工具進(jìn)行數(shù)據(jù)庫Schema的創(chuàng)建,更新,數(shù)據(jù)初始化,數(shù)據(jù)遷移等任務(wù)。

 

自動(dòng)化部署

自動(dòng)化部署主張:一次打包,隨處部署。環(huán)境配置信息必須從代碼中剝離,剝離的環(huán)境配置文件不放進(jìn)應(yīng)用軟件包,以文件或獨(dú)立jar包的形式單獨(dú)部署(WebSphere,Tomcat都支持共享classpath)。且可采用配置模板文件,打包時(shí)自動(dòng)替換環(huán)境參數(shù)。

自動(dòng)化部署

  • 服務(wù)器應(yīng)用部署
  1. 基本步驟是Server shutdown,Package upload and copy,Server startup。
  2. 可以采用Chef,Ansible等自動(dòng)化工具進(jìn)行自動(dòng)部署。
  3. 采用其他商業(yè)化的部署工具。

 

  • 客戶端或移動(dòng)應(yīng)用
  1. 將應(yīng)用包上傳到特定的位置供用戶下載;如果是企業(yè)應(yīng)用發(fā)布平臺(tái),建議由平臺(tái)提供部署服務(wù);或者提供權(quán)限進(jìn)行包文件上傳。
  2. 如果是部署到外部應(yīng)用商店,如Google Play,由于頻率不高通常手動(dòng)進(jìn)行,也可以采用自動(dòng)化Web測(cè)試的方法進(jìn)行自動(dòng)form提交部署。

 

  • 數(shù)據(jù)庫變更

1.可以采用Flyway進(jìn)行數(shù)據(jù)庫自動(dòng)部署,前提是數(shù)據(jù)庫基線和所有變更都已腳本形式在版本控制庫中。

2.數(shù)據(jù)庫變更前自動(dòng)備份。

3.采用NoSQL數(shù)據(jù)庫,如MongoDB等,免去Schema變更的需要。

 

運(yùn)維監(jiān)控

? 系統(tǒng)監(jiān)控:通過監(jiān)控工具對(duì)包括服務(wù)器運(yùn)行狀態(tài),比如CPU,網(wǎng)絡(luò)流量,磁盤,內(nèi)存等,進(jìn)行實(shí)時(shí)監(jiān)控,并及時(shí)告警

? 應(yīng)用和服務(wù)監(jiān)控:對(duì)運(yùn)行中的應(yīng)用和服務(wù)的健康度進(jìn)行監(jiān)控,包括Web是否可訪問,服務(wù)是否可用,訪問并發(fā)數(shù),響應(yīng)速度等;定期進(jìn)行檢測(cè)以便在用戶報(bào)告問題之前及早發(fā)現(xiàn)風(fēng)險(xiǎn)

? 特性監(jiān)控:對(duì)某些關(guān)鍵特性的(業(yè)務(wù))正確性進(jìn)行持續(xù)的驗(yàn)證,監(jiān)控其數(shù)據(jù)一致性等。這一類監(jiān)控完成的,而是個(gè)持續(xù)的過程,每發(fā)布一個(gè)新特性,可能就需要增加一些監(jiān)控手段

 

DevOps 和容器技術(shù)

 

既然容器技術(shù)現(xiàn)在正在以指數(shù)的增長(zhǎng)趨勢(shì)發(fā)展,那先來看看大家都是怎么使用容器的吧!

容器技術(shù)

容器技術(shù)

那容器將如何促進(jìn)DevOps在企業(yè)中落地呢?

 

用容器打包應(yīng)用

 

  • 應(yīng)用交付件標(biāo)準(zhǔn)化:使用鏡像,實(shí)現(xiàn)應(yīng)用的標(biāo)準(zhǔn)化交付。
  • 將應(yīng)用和依賴環(huán)境封裝在一起, 解決環(huán)境依賴問題。
  • Build, Ship, Run

容器打包應(yīng)用

用容器來實(shí)現(xiàn)自動(dòng)化部署

 

 

利用容器,將應(yīng)用和環(huán)境封裝,解決環(huán)境部署一致性問題,方便實(shí)現(xiàn)應(yīng)用的自動(dòng)化部署。

  • 取代過去傳統(tǒng)的用腳本進(jìn)行配置環(huán)境、應(yīng)用部署的方法。
  • 在部署平臺(tái)上實(shí)現(xiàn)一整個(gè)開發(fā)/測(cè)試環(huán)境的一鍵部署。
  • 在實(shí)現(xiàn)自動(dòng)部署的同時(shí),在平臺(tái)提供各種高級(jí)部署功能。
  • 滾動(dòng)更新,藍(lán)綠發(fā)布。

開發(fā)/測(cè)試環(huán)境的一鍵部署

用容器來優(yōu)化流水線任務(wù)

 

  • 將每個(gè)流水線任務(wù)所依賴的運(yùn)行環(huán)境制作成的容器鏡像
  • 流水線上的任務(wù)非常適合在容器中執(zhí)行,快速啟動(dòng),執(zhí)行完后銷毀,適合大規(guī)模,并發(fā)的流水線任務(wù)
  • 靈活的流水線設(shè)計(jì),只需要在執(zhí)行任務(wù)的時(shí)候選擇不同的基礎(chǔ)鏡像,就可以使用不同的技術(shù)堆棧來完成流水響任務(wù)
  • 解決流水線任務(wù)的環(huán)境沖突,比如可以在同一個(gè)構(gòu)建系統(tǒng)里面同時(shí)用JDK8 或者JDK5 來編譯應(yīng)用

用容器來優(yōu)化流水線任務(wù)

CI/CD解決方案

 

利用開源Jenkins ?配套工具鏈

 

以Jenkins 核心,結(jié)合其他工具鏈來實(shí)現(xiàn)持續(xù)集成和部署, 包括集成:

  • 代碼管理
  • 質(zhì)量控制框架
  • 自動(dòng)化部署工具或者平臺(tái)

 

涌現(xiàn)的其他開源/商業(yè)方案

 

除了Jenkins, 目前也涌現(xiàn)非常多的以持續(xù)集成的方案

  • Drone
  • Go-CD
  • TeamCity
  • Travel-CI
  • PAAS 平臺(tái)

 

Jenkins 為核心研發(fā)

 

Jenkins 的集成能力非常強(qiáng),但功能太多,以Jenkins 為核心,簡(jiǎn)化和工具鏈的集成,整合容器技術(shù)。

我們將以睿云智合的實(shí)踐來說明。

 

  1. 開箱即用,簡(jiǎn)化和正確地打造企業(yè)CI/CD 流水線。

 

  • 基于容器的CI/CD集成方案,開箱即用。
  • WiseBuild 簡(jiǎn)化CI/CD各種技術(shù)棧的集成和實(shí)施,以pipeline為核心,整合各種持續(xù)部署/集成流水線相關(guān)的構(gòu)建,測(cè)試,部署技術(shù)。
  • WiseBuild用于開發(fā),測(cè)試和運(yùn)維團(tuán)隊(duì)的提供靈活的CI/CD流失線設(shè)計(jì)平臺(tái),應(yīng)到開發(fā),測(cè)試和運(yùn)維團(tuán)隊(duì)正確的設(shè)計(jì)企業(yè)持續(xù)集成,持續(xù)部署流水線。
  • Rancher是成熟的容器管理平臺(tái),為應(yīng)用的自動(dòng)化部署提供成熟的功能支持

 

  1. 集成平臺(tái)持續(xù)集成&持續(xù)部署

持續(xù)集成&持續(xù)部署

  1. 以流水線為中心,持續(xù)集成

 

  • Pipeline as code!靈活的流水線設(shè)計(jì),可以為每個(gè)開發(fā)應(yīng)用定義多條流水線,分別用于持續(xù)集成和部署,流水線可以包含多個(gè)stage。每個(gè)stage 用來實(shí)現(xiàn)代碼編譯,單元測(cè)試,集成測(cè)試等。

 

  • 集成各種質(zhì)量框架,包括代碼檢查,自動(dòng)化測(cè)試框架支持自動(dòng)生成容器鏡像支持從構(gòu)建物自動(dòng)生成面向開發(fā)人員的開發(fā)測(cè)試環(huán)境。

 

  • 為開發(fā)者的單元測(cè)試,集成測(cè)試提供服務(wù)集成,例如數(shù)據(jù)庫集成服務(wù)支持自動(dòng)化部署各種驗(yàn)收測(cè)試環(huán)境對(duì)接持續(xù)集成流水線和驗(yàn)收測(cè)試環(huán)境的對(duì)接,實(shí)現(xiàn)驗(yàn)收測(cè)試環(huán)境的自動(dòng)更新和升級(jí)。

 

4.自動(dòng)部署?&持續(xù)部署

 

 

  • 支持從容器管理平臺(tái)導(dǎo)入各種運(yùn)行環(huán)境,設(shè)計(jì)支持CaaS平臺(tái)和PaaS平臺(tái)目前支持Rancher 平臺(tái),支持Rancher的cattle, swarm, kubernets環(huán)境。

 

  • 支持和部署相關(guān)的流水線,可以代碼部署分支拉取代碼,編譯,部署和做自動(dòng)驗(yàn)證測(cè)試。

 

  • 支持在Rancher 環(huán)境自動(dòng)化部署應(yīng)用,對(duì)接應(yīng)用和部署流水線。
No Comments

Post a Comment

Comment
Name
Email
Website