柚子快報激活碼778899分享:運維 DevOps該怎么做?
年初在家待了一段時間看了兩本書收獲還是挺多的. 這些年一直忙于項目, 經(jīng)歷了軟件項目的每個階段, 多多少少知道每個階段是個什么, 會做哪些事情浮于表面, 沒有深入去思考每個階段背后的理論基礎(chǔ), 最佳實踐和落地工具. 某天leader說你書看完了, 只有筆記沒有總結(jié), 你就寫個總結(jié)講講吧.
1 軟件系統(tǒng)研發(fā)現(xiàn)狀
軟件研發(fā)主要有設(shè)計、研發(fā)、上線運維這幾個過程, 有想過這些問題:
1) 需求該怎么收集?
2) 產(chǎn)品規(guī)劃該怎么規(guī)劃?
3) 迭代開發(fā)怎么管理? 計劃怎么執(zhí)行?
4) 怎么上線?怎么運維?
5) 每個階段該怎么協(xié)作?
2? 要解決哪些問題
?從以上問題中, 大概可以梳理出研發(fā)過程中需要解決的問題,
1) 研發(fā)生命周期管理
2) 研發(fā)過程中的產(chǎn)出物
3) 業(yè)務(wù)領(lǐng)域知識
4) 如何提升效率
5) 如何讓研發(fā)過程可視化
3 評估
3.1 DevOps 評估三原則
3.1.1 流動原則
?????? 建立從開發(fā)到運維之間快速的、平滑的、能向客戶交付價值的工作流,要為這個全局目標(biāo)進(jìn)行優(yōu)化,而非圍繞一系列局部目標(biāo),如功能開發(fā)的完成度、測試中問題的發(fā)現(xiàn)率和修正率、運維維護(hù)的可用性等。通過持續(xù)加強工作內(nèi)容的可視化,減小每批次大小和等待間隔,內(nèi)建質(zhì)量以防止缺陷向下游傳遞,從而增強流動性。通過加快流動,縮短前置時間,進(jìn)一步提高質(zhì)量。
3.1.2??反饋原則
??????? 反饋原則使得在從右向左的每個階段中能夠快速、持續(xù)地獲得工作反饋,目標(biāo)是建立安全和可靠的工作系統(tǒng)。通過在整個價值流和組織中建立快速、頻繁、高質(zhì)量的信息流,包括反饋和前饋回路,可以讓系統(tǒng)更安全。這樣就可以在規(guī)模較小、修復(fù)成本較低的情況下發(fā)布并修復(fù)問題,在災(zāi)難發(fā)生前消除問題,并創(chuàng)造出組織性學(xué)習(xí)氛圍。
3.1.3?持續(xù)學(xué)習(xí)與實驗原則
????? 技術(shù)價值流的核心是建立高度信任的文化,強調(diào)每個人都是持續(xù)學(xué)習(xí)者,必須在日常工作中承擔(dān)風(fēng)險,通過科學(xué)的方式改進(jìn)流程和開發(fā)產(chǎn)品,從成功和失敗中積累經(jīng)驗教訓(xùn),從而識別有價值的想法,擯棄無用的想法,所有局部的經(jīng)驗都會快速轉(zhuǎn)化為全局性的改進(jìn),從而幫助整個組織嘗試和實踐新技術(shù)。通過建立持續(xù)、動態(tài)的學(xué)習(xí)機制,幫助團(tuán)隊快速并自動地適應(yīng)不斷變化地環(huán)境,進(jìn)而幫助企業(yè)在市場競爭中脫穎而出。
?3.2 評估項
? ? ? 從devops的三個原則出發(fā), 構(gòu)建如下簡要評估項, 僅供參考:
業(yè)務(wù)響應(yīng)性端到端價值流頻繁小批上線依據(jù)帶寬限制需求量全功能團(tuán)隊團(tuán)隊協(xié)作各角色協(xié)作過程透明工程效能需求變更構(gòu)建架構(gòu)自動測試部署
4 設(shè)計
基于項目現(xiàn)狀畫出價值流圖,? 仔細(xì)思考每個階段需要做什么, 有哪些流程, 上下有之間的關(guān)系咋樣, 現(xiàn)階段有么有瓶頸, 怎么改進(jìn), 如果要改進(jìn)需要哪些資源, 需要誰的支持才能做成這件事.
?
5 實施
5.1 選型
選擇合適的工具實現(xiàn)項目價值流的運轉(zhuǎn), 可以選擇使用華為、阿里、騰訊等廠商的一體化平臺, 也可選擇工具軟件自己搭建.
5.1.1 Jira
Jira Software 是位居榜首的敏捷項目管理工具,團(tuán)隊可使用該工具放心地規(guī)劃、跟蹤、發(fā)布和支持出色的軟件。它是您整個開發(fā)生命周期的單一數(shù)據(jù)源,為自主團(tuán)隊提供情景信息,助力團(tuán)隊在與更大的業(yè)務(wù)目標(biāo)保持關(guān)聯(lián)的同時快速采取行動。無論是用于管理簡單的項目,還是用于支持 DevOps 實踐,Jira Software 都能讓團(tuán)隊輕松推進(jìn)工作、保持一致并在情境中進(jìn)行溝通。
官網(wǎng)地址: Collaboration software for software, IT and business teams
5.1.2 Jenkins
jenkins 號稱“萬物皆可自動化”, 它是一款開源的自動化服務(wù)器, 是持續(xù)集成/持續(xù)交付的事實標(biāo)準(zhǔn), 其中有數(shù)千款插件連接您所知的各種平臺,支持自動化構(gòu)建、部署、交付和任何類型的項目。
官網(wǎng)地址:Jenkins中國
5.1.3 Git
Git是一個免費開源的分布式版本控制系統(tǒng),旨在快速高效地處理從小型到大型項目的所有內(nèi)容。Git易于學(xué)習(xí),占地面積小,性能閃電般快。它以廉價的本地分支、方便的暫存區(qū)和多個工作流等功能勝過了Subversion、CVS、Perforce和ClearCase等SCM工具。
官網(wǎng)地址:Git
?
5.1.4 Nexus
Nexus 是一個強大的 Maven 倉庫管理器,它極大地簡化了自己內(nèi)部倉庫的維護(hù)和外部倉庫的訪問。利用 Nexus 你可以只在一個地方就能夠完全控制訪問 和部署在你所維護(hù)倉庫中的每個 Artifact。Nexus 是一套 “開箱即用” 的系統(tǒng)不需要數(shù)據(jù)庫,它使用文件系統(tǒng)加 Lucene 來組織數(shù)據(jù)。Nexus 使用 ExtJS 來開發(fā)界面,利用 Restlet 來提供完整的 REST APIs,通過 m2eclipse 與 Eclipse 集成使用。Nexus 支持 WebDAV 與 LDAP 安全身份認(rèn)證。
5.1.5 Prometheus
Prometheus是一個開源的系統(tǒng)監(jiān)控和報警系統(tǒng),現(xiàn)在已經(jīng)加入到CNCF基金會,成為繼k8s之后第二個在CNCF托管的項目,在kubernetes容器管理系統(tǒng)中,通常會搭配prometheus進(jìn)行監(jiān)控,同時也支持多種exporter采集數(shù)據(jù),還支持pushgateway進(jìn)行數(shù)據(jù)上報,Prometheus性能足夠支撐上萬臺規(guī)模的集群。
Prometheus 提供了通用的數(shù)據(jù)模型和快捷數(shù)據(jù)采集、存儲和查詢接口。它的核心組件Prometheus server會定期從靜態(tài)配置的監(jiān)控目標(biāo)或者基于服務(wù)發(fā)現(xiàn)自動配置的自標(biāo)中進(jìn)行拉取數(shù)據(jù),當(dāng)新拉取到的數(shù)據(jù)大于配置的內(nèi)存緩存區(qū)時,數(shù)據(jù)就會持久化到存儲設(shè)備當(dāng)中。
1.每個被監(jiān)控的主機都可以通過專用的exporter 程序提供輸出監(jiān)控數(shù)據(jù)的接口,它會在目標(biāo)處收集監(jiān)控數(shù)據(jù),并暴露出一個HTTP接口供Prometheus server查詢,Prometheus通過基于HTTP的pull的方式來周期性的采集數(shù)據(jù)。 2.任何被監(jiān)控的目標(biāo)都需要事先納入到監(jiān)控系統(tǒng)中才能進(jìn)行時序數(shù)據(jù)采集、存儲、告警和展示,監(jiān)控目標(biāo)可以通過配置信息以靜態(tài)形式指定,也可以讓Prometheus通過服務(wù)發(fā)現(xiàn)的機制進(jìn)行動態(tài)管理。 3.Prometheus 能夠直接把API Server作為服務(wù)發(fā)現(xiàn)系統(tǒng)使用,進(jìn)而動態(tài)發(fā)現(xiàn)和監(jiān)控集群中的所有可被監(jiān)控的對象。
5.2 搭建
工具搭建完成后,? 按照設(shè)計改進(jìn)的價值流運行,? 對項目的整個研發(fā)價值流需要持續(xù)測試、持續(xù)監(jiān)控、持續(xù)改進(jìn).
柚子快報激活碼778899分享:運維 DevOps該怎么做?
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。