日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

适合小白了解学习的DevOps实践

發(fā)布時(shí)間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 适合小白了解学习的DevOps实践 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是DevOps

隨著微服務(wù)及容器化技術(shù)的普及至大眾視線后DevOps常被提及,關(guān)于DevOps似乎并沒(méi)有一個(gè)標(biāo)準(zhǔn)的定義,如果說(shuō)從基于目標(biāo)導(dǎo)向去給它做一個(gè)定義,DevOps是一套實(shí)踐方法,即在保證高質(zhì)量的前提下,縮短系統(tǒng)由變更、提交、部署更新到生產(chǎn)環(huán)境的時(shí)間,DevOps的核心由此可見(jiàn)體現(xiàn)在“保證高質(zhì)量”, “縮短時(shí)間”,“部署”。


如上圖,傳統(tǒng)開(kāi)發(fā)和運(yùn)維之間存在一堵墻,開(kāi)發(fā)人員想改變而運(yùn)維人員想要穩(wěn)定。另外,傳統(tǒng)開(kāi)發(fā)工具與運(yùn)維工具也存在一堵墻,并沒(méi)有打通成為一條工具鏈。

從字面上來(lái)理解DevOps ,Dev(開(kāi)發(fā)人員)+Ops(運(yùn)維人員),DevOps 強(qiáng)調(diào)的是高效組織團(tuán)隊(duì)之間如何通過(guò)自動(dòng)化的工具協(xié)作和溝通來(lái)完成軟件的生命周期管理,從而更快、更頻繁地交付更穩(wěn)定的軟件。

軟件開(kāi)發(fā)演變:

緩慢而繁瑣的瀑布模型演變成敏捷,開(kāi)發(fā)團(tuán)隊(duì)在短時(shí)間內(nèi)完成軟件開(kāi)發(fā),持續(xù)時(shí)間甚至不超過(guò)兩周。如此短的發(fā)布周期幫助開(kāi)發(fā)團(tuán)隊(duì)處理客戶(hù)反饋,并將其與bug修復(fù)一起合并到下一個(gè)版本中。

雖然這種敏捷的SCRUM(迭代式增量軟件開(kāi)發(fā))方法為開(kāi)發(fā)帶來(lái)了敏捷性,但它在運(yùn)維方面卻失去了敏捷實(shí)踐的速度。開(kāi)發(fā)人員和運(yùn)維工程師之間缺乏協(xié)作仍然會(huì)減慢開(kāi)發(fā)過(guò)程和發(fā)布。DevOps就是基于對(duì)更好的協(xié)作和更快的交付的需求而產(chǎn)生的。

為什么DevOps沒(méi)有迅速走紅?

從2009年提出DevOps的概念,時(shí)至今日已經(jīng)有十余個(gè)年頭,在此之前DevOps為什么沒(méi)有迅速走紅,總結(jié)主要原因?yàn)橐韵聨c(diǎn):

● 之前的云計(jì)算還屬于小眾產(chǎn)品,虛擬化、虛擬機(jī)還是重量級(jí)的IT基礎(chǔ)設(shè)施。

● 容器相關(guān)技術(shù)(Docker為代表)沒(méi)有橫空出世,導(dǎo)致DevOps無(wú)法迅速走紅。

● Micro Service即微服務(wù)尚未廣泛的推廣使用。

DevOps開(kāi)始深入人心,和云計(jì)算、容器/Docker、微服務(wù)、敏捷等相關(guān)概念和實(shí)施的發(fā)展離不開(kāi),互聯(lián)網(wǎng)迅猛的發(fā)展,需要更快的業(yè)務(wù)試錯(cuò)與業(yè)務(wù)創(chuàng)新,讓軟件的生產(chǎn)、交付、獲取、升級(jí)變得自動(dòng),DevOps在傳統(tǒng)企業(yè)也開(kāi)始備受關(guān)注開(kāi)始走紅。

關(guān)于DevOps的一些誤區(qū)

對(duì)DevOps的狹義理解:

簡(jiǎn)單說(shuō)DevOps是提倡開(kāi)發(fā)和IT運(yùn)維之間的高度協(xié)同,在完成高頻率部署的同時(shí),提高生產(chǎn)環(huán)境的可靠性、穩(wěn)定性、彈性和安全性。

DevOps不僅需要打通開(kāi)發(fā)和運(yùn)維之間的隔閡墻,更需要從應(yīng)用的全生命周期考慮,實(shí)現(xiàn)全生命周期的工具全鏈路打通與自動(dòng)化、跨團(tuán)隊(duì)的線上協(xié)作能力。

縱向集成,打通應(yīng)用全生命周期(需求、設(shè)計(jì)、開(kāi)發(fā)、編譯、構(gòu)建、測(cè)試、打包、發(fā)布、配置、監(jiān)控等)的工具集成,最終實(shí)現(xiàn)自助化。

例如:項(xiàng)目組的開(kāi)發(fā)人員可以通過(guò)DevOps的平臺(tái)上,自主申請(qǐng)開(kāi)通需要的各種服務(wù),比如開(kāi)通開(kāi)發(fā)環(huán)境、代碼庫(kù)等。

橫向集成,打通架構(gòu)、開(kāi)發(fā)、管理、運(yùn)維等部門(mén)墻。橫向集成中DevOps強(qiáng)調(diào)的重點(diǎn)是跨團(tuán)隊(duì)的線上協(xié)作。

例如:傳統(tǒng)的系統(tǒng)上線部署方式,通過(guò)一個(gè)發(fā)布手順文檔,上百頁(yè)都有可能,但在DevOps的平臺(tái)下,應(yīng)該是通過(guò)標(biāo)準(zhǔn)運(yùn)行環(huán)境的選擇、環(huán)境配置的設(shè)置、部署流程的編排,實(shí)現(xiàn)數(shù)字化的部署手冊(cè),這樣的手冊(cè),人機(jī)都能夠執(zhí)行,并且過(guò)程可以被追蹤和審計(jì)。

我們使用DevOps時(shí),大致有這幾種誤區(qū)認(rèn)知:

● 企業(yè)沒(méi)有使用云相關(guān)產(chǎn)品(IaaS、PaaS),無(wú)法開(kāi)展DevOps;

● 微服務(wù)架構(gòu)開(kāi)發(fā)的應(yīng)用適合DevOps,傳統(tǒng)SOA應(yīng)用不適合;DevOps的實(shí)施和應(yīng)用架構(gòu)無(wú)關(guān),無(wú)論是微服務(wù)架構(gòu),還是SOA類(lèi)型應(yīng)用,都可以開(kāi)展DevOps工作;

● 自動(dòng)化工具的運(yùn)用等同于DevOps的成功;采用自動(dòng)化工具本身不是DevOps,只有將這些工具與持續(xù)集成、持續(xù)交付、持續(xù)的反饋與優(yōu)化進(jìn)行端到端的整合時(shí),這些工具才成為DevOps的一部分;

● DevOps不僅僅是自動(dòng)化。自動(dòng)化是DevOps非常重要的一部分,但不是唯一的部分,實(shí)施DevOps需要從敏捷、持續(xù)、協(xié)作、系統(tǒng)性、自動(dòng)化多個(gè)維度進(jìn)行建設(shè)與改進(jìn)。

DevOps架構(gòu)支撐

邏輯架構(gòu)整個(gè)DevOps平臺(tái)分為三層:

設(shè)施層:包括IaaS,CaaS,一般是基于OpenStack和Kubernetes、Docker;

服務(wù)層:服務(wù)管理與調(diào)度的基礎(chǔ)能力,如注冊(cè)中心,編排,以及企業(yè)級(jí)或互聯(lián)網(wǎng)式的云服務(wù);

DevOps層:更多的是工作流程需求、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、發(fā)布等,看板等;

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

實(shí)施DevOps的核心目標(biāo)是加速企業(yè)IT精益運(yùn)行,提升IT的生產(chǎn)效率,加速部門(mén)、企業(yè)的業(yè)務(wù)創(chuàng)新能力。實(shí)施DevOps需要從組織、技術(shù)、流程三個(gè)維度進(jìn)行。

可以梳理出目前團(tuán)隊(duì)中欠缺但又容易改進(jìn)的點(diǎn),逐步將更多的實(shí)踐活動(dòng)納入團(tuán)隊(duì)當(dāng)中。團(tuán)隊(duì)實(shí)施DevOps的目的在于,將重復(fù)、價(jià)值低的事情交由DevOps平臺(tái)實(shí)現(xiàn)。在傳統(tǒng)企業(yè)中,技術(shù)方面的實(shí)踐最容易在團(tuán)隊(duì)中實(shí)現(xiàn)、流程次之、組織的優(yōu)化與變革最為艱難。

1、技術(shù)方面

● 集成工具鏈:

打通應(yīng)用開(kāi)發(fā)工具鏈:需求、項(xiàng)目、代碼、構(gòu)建、測(cè)試、打包、發(fā)布、配置、監(jiān)控;

● 基礎(chǔ)設(shè)施即編碼:

將基礎(chǔ)環(huán)境服務(wù)化、可編程化,基礎(chǔ)設(shè)施讓項(xiàng)目團(tuán)隊(duì)可以自助獲取;讓基礎(chǔ)設(shè)施從物理機(jī)、虛擬機(jī)、走向容器;

● 一鍵編譯、測(cè)試、部署:

開(kāi)發(fā)人員可以從代碼開(kāi)始,一鍵獲得可訪問(wèn)的環(huán)境,根據(jù)需要可以推送開(kāi)發(fā)、測(cè)試、預(yù)發(fā)、生產(chǎn)環(huán)境;

● ChatOps:

項(xiàng)目團(tuán)隊(duì)成員將溝通、工具和過(guò)程整合在一起。將工具植入對(duì)話中,保障團(tuán)隊(duì)能夠自動(dòng)執(zhí)行任務(wù)與協(xié)作。推薦最近比較流行的hubot。

2、 流程方面

● 看板:

在DevOps中看板不僅是任務(wù)協(xié)調(diào)溝通的機(jī)制;也可作為管制平臺(tái),量化組織生產(chǎn)能力的工具。

● MVP:

采用MVP(Minimum Viable Product最小可行產(chǎn)品)原則,最短時(shí)間內(nèi)快速交付產(chǎn)品原型,然后通過(guò)測(cè)試并收集用戶(hù)的反饋,快速迭代,不斷修正產(chǎn)品,適應(yīng)客戶(hù)的需求。

● 發(fā)布:

建立持續(xù)發(fā)布機(jī)制,形成自動(dòng)化、自助化,支持常見(jiàn)的灰度發(fā)布、金絲雀、藍(lán)綠、回滾、A/B測(cè)試等;

● 軟件度量:

通過(guò)軟件度量(包括過(guò)程度量、質(zhì)量度量、用戶(hù)度量、成本度量),推算出組織的各種有效指標(biāo);可以掌控組織的生產(chǎn)力水平,也可通過(guò)度量數(shù)據(jù),反向優(yōu)化組織瓶頸點(diǎn);

● 一切皆代碼:

文檔(用戶(hù)場(chǎng)景、功能特性等)、配置(應(yīng)用配置、環(huán)境配置、腳本等)、環(huán)境(基礎(chǔ)設(shè)施、中間件環(huán)境等)、發(fā)布包需要統(tǒng)一看待成代碼,納入版本管理,提供全視角的鏈路追蹤。

例如:每個(gè)發(fā)布的版本,可以追溯其對(duì)應(yīng)的配置,代碼、文檔,發(fā)布的功能點(diǎn)。

組織、技術(shù)、流程三個(gè)維度中,技術(shù)、流程可以通過(guò)平臺(tái)或者工具進(jìn)行最佳實(shí)踐的固化。

平臺(tái)建設(shè)第一步,梳理出DevOps的整體模型。從角色、規(guī)劃設(shè)計(jì)、開(kāi)發(fā)交付、運(yùn)營(yíng)反饋四個(gè)維度進(jìn)行梳理。以產(chǎn)品為核心,將代碼、配置、環(huán)境進(jìn)行嚴(yán)格分離,同時(shí)覆蓋產(chǎn)品全生命周期。

另外企業(yè)在落地DevOps也存在如下困境:

1)涉及的部門(mén)多(開(kāi)發(fā)中心、質(zhì)量控制部門(mén)、生產(chǎn)運(yùn)行部門(mén));

2) 流程改造復(fù)雜;

3) 責(zé)任邊界需要重新劃分;

4) 自動(dòng)化是核心問(wèn)題。

實(shí)施DevOps工具選擇

關(guān)于DevOps工具選擇,按照階段進(jìn)行拆分,將其分解到各階段分別是:規(guī)劃、構(gòu)建、持續(xù)集成、部署、運(yùn)營(yíng)以及持續(xù)反饋。

1) 規(guī)劃

視覺(jué)與設(shè)計(jì)方面達(dá)成協(xié)作,推薦使用的工具:Confluence, HipChat,JIRA Software。

2) 構(gòu)建

開(kāi)發(fā)階段環(huán)境構(gòu)建,推薦使用的工具:Docker。

基礎(chǔ)設(shè)施自動(dòng)化,推薦使用的工具:Bamboo, Bitbucket, Chef,Docker, Puppet。

3) 持續(xù)集成

它是支撐新功能的代碼與當(dāng)下代碼集成的環(huán)節(jié)。軟件在持續(xù)性開(kāi)發(fā),升級(jí)后的代碼必須持續(xù)性集成,并快速地與系統(tǒng)集成,實(shí)現(xiàn)用戶(hù)的各種需求變更。變更后的代碼,還應(yīng)當(dāng)保證執(zhí)行時(shí)環(huán)境中沒(méi)有異常。推薦使用的工具:Bamboo, HipChat。

自動(dòng)化測(cè)試,對(duì)于準(zhǔn)備和支持開(kāi)發(fā)構(gòu)建工作,自動(dòng)化測(cè)試的操作過(guò)程透明化以及徹底性是非常重要的。推薦使用的工具:Bamboo, Bitbucket,Capture for JIRA。

4) 部署

發(fā)布儀表盤(pán),在一個(gè)地方對(duì)于你想尋找的關(guān)于分支,構(gòu)建,拉請(qǐng)求和部署警告等信息提供高可視化。推薦使用的工具:JIRA Software。

自動(dòng)化部署,推薦使用的工具:AWS, Bamboo, HipChat,Puppet。

5) 運(yùn)營(yíng)

監(jiān)控,實(shí)施自動(dòng)化監(jiān)控針對(duì)服務(wù)器監(jiān)控和應(yīng)用程序性能監(jiān)控,推薦使用的工具:BigPanda,HipChat,HostedGraphite,Nagios,NewRelic,PagerDuty,Pingdom,Splunk。

溝通與集群,跨團(tuán)隊(duì)溝通是實(shí)現(xiàn)文化轉(zhuǎn)變的第一步,聊天工具可促進(jìn)它的實(shí)時(shí)性。推薦使用的工具:BigPanda,DataDog, HipChat,NewRelic, PagerDuty,StatusPage。

事件、變更和問(wèn)題跟蹤,推薦使用的工具:JIRA Service Desk,JIRA Software

6) 持續(xù)反饋

通過(guò)用戶(hù)反饋創(chuàng)造更好的產(chǎn)品,推薦使用的工具:GetFeedback,HipChat,JIRA Service Desk,Pendo,Surveymonkey,HootSuite。

實(shí)施DevOps成熟度評(píng)判指標(biāo)

在實(shí)踐DevOps時(shí),可以從運(yùn)營(yíng)效率、IT服務(wù)水平、組織效能、客戶(hù)價(jià)值、經(jīng)營(yíng)業(yè)績(jī)五個(gè)維度進(jìn)行評(píng)判,持續(xù)優(yōu)化與改進(jìn)。

企業(yè)實(shí)施DevOps價(jià)值

1、從原先線下協(xié)作、溝通,統(tǒng)一到DevOps平臺(tái)上協(xié)作、溝通;可以隨時(shí)了解項(xiàng)目進(jìn)展全貌,利用平臺(tái)可以做到各種過(guò)程數(shù)據(jù)的實(shí)時(shí)收集;

2、 資源管理由原來(lái)專(zhuān)職人員,過(guò)渡到開(kāi)發(fā)人員實(shí)現(xiàn)自助化服務(wù),可按需實(shí)現(xiàn)各類(lèi)環(huán)境申請(qǐng)與開(kāi)通,基礎(chǔ)設(shè)施即服務(wù)提供來(lái)技術(shù)的支撐;

3、由郵件文化到DevOps平臺(tái)統(tǒng)一溝通,同時(shí)DevOps打通多個(gè)工具鏈路端,任務(wù)分發(fā)、溝通、提醒可以實(shí)時(shí)推送。

總結(jié)

以上是生活随笔為你收集整理的适合小白了解学习的DevOps实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。