您現在的位置是:首頁 > 人文

DevOps是什麼?是軟體嗎?

由 希裡安Cillian 發表于 人文2022-02-10
簡介映象倉庫:Harbor容器:Docker、containerd編排:K8S映象掃描:Clairctl配置:Nacos服務註冊與發現:etcd服務治理:Consul指令碼語言:Python日誌管理:ELK顯示面板:Grafana系統監控:Pr

參差不一是什麼意思

DevOps是什麼?是軟體嗎?

百度詞條是這麼解釋的:

“ DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用於促進開發(

應用程式

/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。

它是一種重視

“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟體交付”和“架構變更”的流程,來使得構建、測試、釋出軟體能夠更加地快捷、頻繁和可靠。

它的出現是由於

軟體

行業日益清晰地認識到:為了按時交付軟體產品和服務,開發和運維工作必須緊密合作。”

優勢:基於持續部署於持續交付,是部門之間協作的一組流程和方法,提升效率,提高員工參與感。

《全球 DevSecOps 現狀報告》在 4300 份樣本中,開發人員佔比 41。67%,SRE/DevOps 佔比為 10。25%

《中國 DevOps 報告》在 1862 份樣本中,開發人員佔比 35。18%,SRE/DevOps 佔比為 6。87%

個人理解來說,

Devops

就是一種便捷,適合於公司的一套體系,這套體系包括開發到測試再到運維的一個流程,總之有了這個體系就能更加快速的實現客戶的需求。這東西就是為了更好的服務客戶!

DevOps是什麼?是軟體嗎?

上圖意思就是程式碼需求設計到開發到提交構建到測試再到部署到運維到監控的流程。

DevOps是什麼?是軟體嗎?

上圖來自網路比較形象表示應用實現的演變過程。

發展到現在的

DevOps

,之前有哪些流程在被使用,第一種就是傳統的單架構,集中部署式,這個怎麼理解,就是一臺機器,一個應用。想做個應用,找個伺服器,上傳打包好的

demo-jar

包,開啟服務,監控就是看一下日誌,沒問題就

OK

。基本就是:設計

-

開發

-

測試

-

部署

第二種就是多個機器多個應用所謂的敏捷開發。這時候一個人就不夠了,公司大了,機器多了,開發一個人管不過來了,就得找點專門管理機器,管部署的運維人員了。開發也多了,水平也是參差不一,全都要是能直接連機器,這上面領導估計都睡不好覺。然後運維就搞點指令碼,減少重複的操作,然後還不太願意開發變動太多。開發本能又不得不變動,導致開發運維還是有點矛盾的,開發想部署還得統一聽指揮,這裡開發運維其實還不是那麼緊密。

打個數學圖形比喻,本來需求分析要個六邊形,到設計變成長方形,到研發變現菱形,實際交付變成三角形。

DevOps是什麼?是軟體嗎?

再到第三種微服務架構的

devops

。到這裡,公司體量變大了,框架也有了,應用很多東西就比較複雜了,再想改動就比較麻煩了,再推倒重來那不大可能了,只能小模組,小功能一點點實現了。所以得拆解,拆成一個個小小的服務來單獨部署,各個直接也可以互相呼叫,這樣的話,就不用每次改動個東西還得找運維求著他同意才能釋出,運維還煩你呢。

乾脆找一些機器,專門放這些小服務的程式碼,再利用前面說的

Gitlab

之類的進行

cicd

流水線式操作,我改動一點,自己去釋出部署。再搞一個日誌監控的模組,開發自己看日誌,這樣開發也可以分擔運維的一點工作,自己開發的東西日誌還是自己最清楚,這樣還能快速定位到應用的問題。這樣確實是要好多了,能夠快速部署快速實現某些功能。

我們知道,一個軟體從零開始到最終交付,大概包括以下幾個階段:產品規劃、開發編碼、構建、

QA測試、釋出、部署和維護。

最初大家說到

DEVOPS,都是指的‘開發運維一體化’,如下圖:

DevOps是什麼?是軟體嗎?

DevOps是什麼?是軟體嗎?

看了上面這個圖,就知道了,

devops就是不斷開發測試部署重複這過程,就實現了快速開發快速部署快速實現,反正就是快速實現客戶的需求,客戶是上帝,這樣快速開發,客戶也能快速看到結果,省得像以前開發半天,開發出來客戶說我去你這是啥,我是要這麼個東西?

現在好了,客戶想看就看,不滿意快速改動實現,客戶想要啥就給開發啥,到時候客戶滿意了咱也能賺錢不是。

再說說構建

devops平臺需要哪些工具,工具元件啥的其實很多,但關鍵在於適合自己的公司和團隊才是最關鍵的。我下面列舉一下。

專案管理(

PM):jira。運營可以上去提問題,可以看到各個問題的完整的工作流,待解決未解決等;

程式碼管理:

gitlab。jenkins或者K8S都可以整合gitlab,進行程式碼管理,上線,回滾等;

持續整合

CI(Continuous Integration):gitlab ci。開發人員提交了新程式碼之後,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新程式碼和原有程式碼能否正確地整合在一起。

持續交付

CD(Continuous Delivery):gitlab cd。完成單元測試後,可以把程式碼部署到連線資料庫的 Staging 環境中更多的測試。如果程式碼沒有問題,可以繼續手動部署到生產環境中。

映象倉庫:

Harbor

容器:

Docker

containerd

編排:

K8S

映象掃描:

Clairctl

配置:

Nacos

服務註冊與發現:

etcd

服務治理:

Consul

指令碼語言:

Python

日誌管理:ELK

顯示面板:

Grafana

系統監控:

Prometheus

zabbix

負載均衡:

Nginx

閘道器:

Kong,zuul

鏈路追蹤:

Zipkin

公司內部文件:

Confluence

nextcloud

Web

伺服器:

Nginx

、Tomcat

資料庫:

Oracle

Mysql

redis

報警:各種機器人

api推送到工作群

這個圖來自網路,可以看到這過程中有哪些元件應用參與其中

DevOps是什麼?是軟體嗎?

個人理解,想實現

DevOPs就得形成一套標準的持續整合部署流水線,沒有一套好的流水線,實現DevOps是空中樓閣,至於典型的CICD流水線過程,我還得專門寫一篇文章講解下,各位朋友敬請期待!

DevOps是什麼?是軟體嗎?

推薦文章

  • 備孕多久懷孕,才正常?若想快點懷上,備孕夫妻不妨試試這些訣竅

    若想快點懷上,備孕夫妻不妨試試這些訣竅一,在排卵期同房夫妻兩人身體健康,備孕很長一段時間一直還不上的話,那麼很有可能是沒有安排好同房的最佳時機,也就是說沒有找準排卵期,因為女人只有在排卵期的時候同房才能夠增加懷孕的機會,並且在排卵日,當天同...

  • 寒露節氣水雲雨溪寶寶起名創意

    今天與大家分享的主題是《二十四節氣與寶寶起名》,這一節為大家分享的是《寒露節氣水雲雨溪起名創意》掬水月在手,弄花香滿衣寒露人言晚節佳,鴻雁來賓時不差...

  • 炎炎夏日,這樣吃冷飲才更健康

    經濟日報-中國經濟網資料圖 付雲鵬/攝孕婦儘量不要吃妊娠期的準媽媽們,如過食冷飲,可能會損傷脾胃陽氣,使寒氣內生,發生腹痛、腹瀉等症狀...