12月9日,深信服容器云產(chǎn)品研發(fā)部研發(fā)負(fù)責(zé)人Jacky在信服云《云集技術(shù)學(xué)社》系列直播課上進(jìn)行了《DevOps技術(shù)原理與實(shí)踐》的分享,詳細(xì)介紹了DevOps技術(shù)的發(fā)展、開發(fā)中的關(guān)鍵技術(shù)、相關(guān)問題和注意點(diǎn)。以下是他的分享內(nèi)容摘要,想要了解更多可以關(guān)注“深信服科技”公眾號(hào)觀看直播回放。
看點(diǎn)一:DevOps全景
在軟件工程的發(fā)展中,開發(fā)模式從最開始瀑布模式、敏捷模式到現(xiàn)在把敏捷中的運(yùn)維和開發(fā)串起來形成的DevOps模式。軟件技術(shù)架構(gòu)從最開始的單體架構(gòu)、到分層架構(gòu)再到現(xiàn)在的微服務(wù)架構(gòu)。交付方式也從原來上線一個(gè)業(yè)務(wù)部署在物理機(jī)上,到部署在虛擬機(jī)上,然后到當(dāng)前可能更多的部署在容器里面。基礎(chǔ)設(shè)施也從原來建立機(jī)房的數(shù)據(jù)中心,到只關(guān)注一個(gè)云主機(jī),到現(xiàn)在用戶更關(guān)注的是東西怎么發(fā)布到云上。
開發(fā)模式、軟件架構(gòu)、交付方式和基礎(chǔ)設(shè)施的發(fā)展雖然是獨(dú)立的,但是在特定時(shí)期又相互交織。例如,在DevOps環(huán)境下,常用的部署方式是容器的方式,應(yīng)用架構(gòu)是微服務(wù)的架構(gòu),基礎(chǔ)設(shè)施是云。
不同企業(yè)的DevOps模式是不同的。DevOps一般是從組織、技術(shù)、流程三個(gè)方面發(fā)揮作用,大致上都會(huì)有開發(fā)人員、版本控制系統(tǒng)、構(gòu)建服務(wù)器、工件庫(kù)、代碼倉(cāng)庫(kù)、包管理器、自動(dòng)化案例庫(kù)、測(cè)試環(huán)境、預(yù)發(fā)布環(huán)境、生產(chǎn)環(huán)境、監(jiān)控系統(tǒng)、流水線等部分。組織是保證,技術(shù)是推動(dòng)DevOps前進(jìn)的核心生產(chǎn)力,流程是準(zhǔn)則。最終實(shí)現(xiàn)文化升級(jí),實(shí)現(xiàn)學(xué)習(xí)型和使命型的文化。
看點(diǎn)二:Devops時(shí)代軟件開發(fā)關(guān)鍵技術(shù)
DevOps時(shí)代下,有著6項(xiàng)軟件開發(fā)的關(guān)鍵技術(shù)。
流水線:流水線將各個(gè)分散的人物流串起來,形成一個(gè)自動(dòng)化的工作流。流水線是DevOps的核心。常用的流水線實(shí)現(xiàn)有:Jenkins、Travis CI、CruiseControl、Buildbot、Apache Gump、Cabie、gitlab。目前業(yè)界比較常用的流水線是Jenkins。深信服云原生流水線的實(shí)現(xiàn)則主要是基于k8s架構(gòu)在云原生平臺(tái)上去構(gòu)建流水線的管理工具。
云原生平臺(tái):作為DevOps的載體,云原生平臺(tái)是DevOps的必要條件,它管理著多云環(huán)境下的K8s集群和云平臺(tái)。以容器技術(shù)為核心的云原生平臺(tái)為DevOps插上了翅膀,通過構(gòu)建完善的PaaS能力或中臺(tái),能大大提升DevOps的效率。
微服務(wù):當(dāng)應(yīng)用系統(tǒng)龐大到需要十幾個(gè)獨(dú)立業(yè)務(wù)才能完成,在這種情況下必須把業(yè)務(wù)拆成足夠小的細(xì)顆粒才行,微服務(wù)通過自動(dòng)化的方式讓每一個(gè)模塊都可以獨(dú)立運(yùn)行、獨(dú)立維護(hù)、獨(dú)立治理。管理、度量、管控三位一體的微服務(wù)治理,讓DevOps在業(yè)務(wù)側(cè)流轉(zhuǎn)起來。
監(jiān)控:它是DevOps的晴雨表。沒有監(jiān)控,用戶就無法了解系統(tǒng)在線上的運(yùn)行情況。監(jiān)控和告警是DevOps真正自動(dòng)起來的保障。
測(cè)試和自動(dòng)化:測(cè)試和自動(dòng)化是從代碼分支管理時(shí)就已經(jīng)運(yùn)行。在構(gòu)建環(huán)境時(shí)會(huì)進(jìn)行靜態(tài)代碼掃描、編譯告警分析等操作。而到了測(cè)試環(huán)境,則針對(duì)功能、回歸、API、UI等多方面進(jìn)行測(cè)試保證集成功能可以發(fā)布。預(yù)發(fā)布時(shí),還要進(jìn)行極個(gè)別的動(dòng)工測(cè)試、持續(xù)壓力測(cè)試、回歸測(cè)試、灰度/金絲雀和演練。最終發(fā)布到生產(chǎn)環(huán)境時(shí)會(huì)進(jìn)行流量治理和運(yùn)用混沌工程注入故障檢測(cè)系統(tǒng)穩(wěn)定性。測(cè)試和自動(dòng)化是DevOps成功與否的指標(biāo)。
開源社區(qū):DevOps之所以屬于敏捷的一個(gè)延伸,是因?yàn)樗〔娇炫艿乃悸犯艚萜鋵?shí)是一致的,只是DevOps把線上和線下這塊拉通了。DevOps目的是形成一個(gè)很小的作戰(zhàn)單元,更快地去反映和解決問題。實(shí)現(xiàn)這個(gè)目的的唯一路徑是使用更加先進(jìn)的工具,開源社區(qū)正好就給它提供了這些工具。
看點(diǎn)三:DevOps的問題和注意點(diǎn)
關(guān)于DevOps,Jacky在直播課上介紹了三點(diǎn)注意事項(xiàng):
安全問題:近幾年,安全左移成為了業(yè)界共識(shí),即從開發(fā)階段就要開發(fā)安全系統(tǒng)。DevSecOps要求從一開始就要考慮應(yīng)用和基礎(chǔ)架構(gòu)的安全性。
混沌工程:通過在生產(chǎn)分布式系統(tǒng)上進(jìn)行實(shí)驗(yàn),主動(dòng)找出脆弱環(huán)節(jié),從而使得系統(tǒng)真正可靠起來。混沌工程與常用的微服務(wù)治理結(jié)束相結(jié)合,實(shí)現(xiàn)運(yùn)行狀態(tài)的真正高度可用。
團(tuán)隊(duì)建設(shè):DevOps轉(zhuǎn)型到最后是文化的轉(zhuǎn)型??低碚摫砻鬈浖O(shè)計(jì)的架構(gòu)反應(yīng)了團(tuán)隊(duì)的組織和溝通架構(gòu)。DevOps實(shí)際上是一場(chǎng)自上而下的組織變革,必須有組織保障,因此團(tuán)隊(duì)建設(shè)至關(guān)重要。
還想學(xué)習(xí)云計(jì)算的更多干貨嗎?敬請(qǐng)鎖定下期直播,云集技術(shù)學(xué)社還將邀請(qǐng)更多的專家,分享他們對(duì)云計(jì)算技術(shù)的理解和實(shí)踐經(jīng)驗(yàn)。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )