2022年DevOps的發(fā)展路線圖
Lummo公司首席軟件工程師Anjul Sahu分享了其指導課程中的一些筆記,這些筆記可以幫助DevOps工程師了解DevOps在2022年的發(fā)展路線圖。
Sahu表示,他在輔導課程中遇到了一些DevOps新手或者處在職業(yè)生涯中期的開發(fā)人員,他們希望知道在2022年需要學習什么。DevOps技能需求量很大,并且需要不斷學習讓自己的技能與市場需求保持同步。
這篇文章根據(jù)Sahu的經(jīng)驗和理解來提供一些指導。
2022年DevOps的發(fā)展路線圖
(1)在網(wǎng)絡(luò)技術(shù)方面具有根本優(yōu)勢
了解HTTP/2、QUIC或HTTP3、第4層和第7層協(xié)議、mTL、代理、DNS、BGP等概念,負載均衡的工作原理、IP表、互聯(lián)網(wǎng)的工作原理、IP地址和方案,最后是網(wǎng)絡(luò)設(shè)計。
(2)掌握操作系統(tǒng)基礎(chǔ)知識,尤其是Linux
由于大多數(shù)系統(tǒng)(虛擬機和容器等)都運行Linux,因此從上到下了解這一點很重要。學習調(diào)度、systemd接口、init系統(tǒng)、cgroup和命名空間、性能調(diào)優(yōu),并掌握命令行實用程序——awk、sed、jq、yq、curl、ssh、OpenSSL等,從Brendan的博客中學習性能故障排除。
(3)持續(xù)集成(CI)/持續(xù)交付(CD)
世界已經(jīng)轉(zhuǎn)向云原生管道。從概念上講,這個領(lǐng)域沒有太大變化,但可以看看Github操作、Tekton等。如何更好地發(fā)布?了解各種部署策略,例如藍綠測試和金絲雀測試。
(4)容器化和虛擬化
了解流行的Docker如何運行,嘗試采用Containerd、Podman,了解如何容器化應(yīng)用程序、如何實現(xiàn)容器的安全性、如何在Kubernetes中運行和編排虛擬機。
(5)容器編排
Kubernetes現(xiàn)在是運行容器的事實上的標準。網(wǎng)上有很多學習Kubernetes的內(nèi)容。專注于配置最佳實踐、應(yīng)用程序設(shè)計、安全性和調(diào)度。設(shè)置集群現(xiàn)在變得簡單,但面臨操作性問題,例如設(shè)置、監(jiān)控、日志記錄、CI/CD、如何擴展集群、成本優(yōu)化和安全性,這些可能是期望解決的一些問題。
(6)大規(guī)模可觀察性
大多數(shù)工程師都知道Prometheus Grafana堆?;蝾愃贫褩!_@一趨勢表明,從性能和成本的角度來看,許多企業(yè)正在整合他們的Kubernetes集群和可觀察性,這很有幫助。了解Prometheus的高級配置和架構(gòu),以及如何擴展它們。
研究Thanos、Cortex、VictoriaMetrics、Datadog和Loki等技術(shù)。連續(xù)分析工具,例如Parca、periscope、超跟蹤和具有開放遙測的分布式跟蹤。Istio等服務(wù)網(wǎng)格是云原生領(lǐng)域中的流行成分。
(7)平臺團隊作為產(chǎn)品團隊
平臺團隊的作用越來越像一個集中的產(chǎn)品團隊,專注于他們內(nèi)部平臺的客戶提供服務(wù),例如開發(fā)人員和測試人員。其目標是改善工作方式,并為團隊帶來一些秩序。嘗試解決開發(fā)人員和質(zhì)量保證(QA)團隊面臨的問題。
開發(fā)人員是其他團隊的推動者,指導開發(fā)團隊承擔典型的DevOps職責,而不是在一個中心團隊中承擔所有工作,這樣就可以擴大規(guī)模。
(8)安全性
在許多小型企業(yè)中,安全性并沒有處在首要地位。產(chǎn)品功能被賦予了更多的優(yōu)先權(quán)。但是,由于越來越復雜的網(wǎng)絡(luò)攻擊和各種嚴格的合規(guī)要求,企業(yè)正在適應(yīng)左移安全策略。端到端加密、強大的RBAC、IAM策略、治理和審計、NIST、CIS、ISO27001等基準的實施很常見。容器安全、策略即代碼、云治理和供應(yīng)鏈安全是熱門話題。
(9)編程
DevOps或站點可靠性工程(SRE)現(xiàn)在的角色是處理開發(fā)人員的跨領(lǐng)域問題,并創(chuàng)建工具,在執(zhí)行標準的同時幫助提高他們的生產(chǎn)力。制作高質(zhì)量的平臺組件需要良好的軟件工程實踐和技能。
優(yōu)秀的企業(yè)正在尋找具有良好編程經(jīng)驗的平臺工程師。這在站點可靠性工程中也很重要,開發(fā)人員需要精通編程,能夠閱讀、理解和調(diào)試他人編寫的代碼,并在必要時對其進行修復。
Python和Golang是最流行的。Golang具有強大的并發(fā)性、嚴格的類型檢查、在各種組織中采用、工具鏈以及許多主要項目都是使用Golang構(gòu)建的特性,因此通過Python學習是有意義的。
用戶可以嘗試一些簡單的事情:
- 用編程語言編寫CLI。
- 學習編寫RESTAPI并與數(shù)據(jù)庫交互。
- 并行性和并發(fā)性。
(10)基礎(chǔ)設(shè)施即代碼
Terraform是項目中的標準。一旦理解了這個概念,就很容易適應(yīng)任何其他工具,因為它們中的大多數(shù)都是基于DSL的。
(11)云計算
大多數(shù)云計算以相同的方式工作。因此,如果熟悉一種云平臺,企業(yè)可以輕松地與其他云計算提供商合作。專注于如何以高度可用、彈性、安全且經(jīng)濟高效的方式使用云原生組件設(shè)計應(yīng)用程序。
(12)技術(shù)寫作
人們可能想知道為什么在討論DevOps時要談?wù)摷夹g(shù)寫作。很多人對此并沒有給予足夠的重視,但這對于企業(yè)如何與其他團隊進行溝通和合作非常重要。工作的未來發(fā)展是遠程的,因此電子郵件、聊天是與他人交談和傳達想法的主要渠道。
開發(fā)團隊需要定期創(chuàng)建諸如運行手冊、事后分析、RFC、架構(gòu)決策記錄和軟件設(shè)計文檔等文檔。而一個清晰、易于理解的文檔會創(chuàng)造奇跡。它可以幫助企業(yè)節(jié)省其讀者的時間,并提高整體生產(chǎn)力。
(13)現(xiàn)場可靠性工程師
DevOps和現(xiàn)場可靠性工程師之間的界限越來越模糊。在某些企業(yè)中,同一個人可能同時擔任這兩個角色。了解SLI、SLO和錯誤預算以及SRE實踐背后的概念。每個企業(yè)的做法都不一樣,所以不建議將其他人的文化復制粘貼到團隊中。
結(jié)論
以下并不是一個確定的列表,因為它會隨著時間而變化。
- Service Mesh——Istio、Cilium Sidecarless網(wǎng)格、Tetrate和Solo的Gloo網(wǎng)格產(chǎn)品。
- 如何提高開發(fā)人員的生產(chǎn)力?它是文化、自動化和工具的混合體。
- SRE平臺——honeycomb,Last9。
- DevPortals——再次與提高生產(chǎn)力和彌合知識差距的動機相關(guān)聯(lián)。
- 可觀察性——諸如開放遙測、hypertrace、Thanos、VictoriaMetrics、Vector等技術(shù)。
- 安全——供應(yīng)鏈安全、代碼簽名、加強云安全。
- Golang——提高當前技能。
- 無服務(wù)器計算和事件驅(qū)動架構(gòu)。
- Web3——了解與DevOps和基礎(chǔ)架構(gòu)相關(guān)的環(huán)境。