平臺運維團隊面臨的主要挑戰(zhàn)是什么?
隨著軟件開發(fā)對各種技術(shù)日益依賴,無論是軟件還是硬件都需要跟上技術(shù)發(fā)展,以實現(xiàn)相互配合,并提供可靠和安全的服務(wù)。然而,這種需求也會導(dǎo)致解決方案變得越來越復(fù)雜。因此,放眼全球,保障基礎(chǔ)設(shè)施可靠性已成為交付解決方案的首要任務(wù)。
基于這些現(xiàn)狀,平臺運維團隊需要直面不同的挑戰(zhàn),在不影響軟件開發(fā)生命周期或最終用戶的情況下對基礎(chǔ)架構(gòu)提供支持和運維保障。
平臺運維團隊是什么?
正如Dev團隊負責開發(fā),質(zhì)量保證團隊負責測試,平臺運維團隊也負責對公司的基礎(chǔ)設(shè)施進行管理。這些基礎(chǔ)設(shè)施包含內(nèi)部SDLC資源,例如CI/CD管道、模擬/測試環(huán)境、生產(chǎn)資源,大多數(shù)情況下還包含軟件部署資源。平臺運維團隊負責與SDLC有關(guān)的絕大部分操作并管理大多數(shù)DevOps工具和平臺的關(guān)鍵組件,從而突顯DevOps的全部優(yōu)勢。
平臺運維團隊的主要職責是什么?
平臺運維團隊要熟悉SDLC的方方面面,因此,團隊通常包含具備不同專業(yè)技能的成員,比如基礎(chǔ)架構(gòu)工程師、網(wǎng)絡(luò)工程師、安全專家以及像Kubernetes管理員這樣更細分的人士。
平臺運維團隊的職責會因具體要求和企業(yè)特定需求而有所不同。但是,通常來說他們都負責以下任務(wù):
- 提供、管理、優(yōu)化和保障部署在本地數(shù)據(jù)中心或云服務(wù)環(huán)境中的服務(wù)器、網(wǎng)絡(luò)和數(shù)據(jù)庫等基礎(chǔ)設(shè)施。
- 執(zhí)行軟件部署并持續(xù)監(jiān)控服務(wù)可用性。
- 管理CI/CD管道,確保交付團隊可以使用平臺及其附屬的所有工具。
- 訪問控制。由于平臺維護團隊幾乎可以訪問所有資源,因此他們也負責對特定資源或范圍的權(quán)限進行分配和管理。
- 對工作流程和任務(wù)進行自動化。
- 管理資源利用率并優(yōu)化成本。
平臺運維團隊面對的挑戰(zhàn)
那么平臺運維團隊要面臨哪些挑戰(zhàn)呢?通常,基礎(chǔ)架構(gòu)環(huán)境越大、越復(fù)雜,平臺運維團隊面臨的挑戰(zhàn)就越嚴峻:
(1) 首要的挑戰(zhàn)就是對所有基礎(chǔ)架構(gòu)的配置、策略和變量進行安全且一致的管理。這個挑戰(zhàn)在面對多平臺時會變的更加復(fù)雜,而當處理的環(huán)境涉及多云架構(gòu)時,那就是噩夢。即使是JSON和YAML這些簡單的文件類配置,它們之間的差異也會導(dǎo)致額外的管理成本。
(2) 變更管理。此任務(wù)涉及跟蹤和記錄用戶的實際變更以及變更原因、變更時間和受影響的資源。
(3) 平臺運維團隊不僅僅是簡單的執(zhí)行變更,而是需要在每次變更前對變更操作進行有效性驗證。理想情況下,此驗證應(yīng)通過適當?shù)墓ぷ髁鞒踢M行變更申請,以獲得變更發(fā)起者及相關(guān)領(lǐng)導(dǎo)的授權(quán)或批準。
(4)對環(huán)境進行配置一致性管理。
(5) 管理不同的工具棧。由于不同的部門使用不同的工具和平臺,因此平臺運維團隊需要在不破壞SDLC的情況下對它們進行管理。
(6) 處理復(fù)雜的自動化流程。一個團隊可能會需要一個新的自動化流程,但是需要對此仔細評估,因為即使是一個簡單的請求也可能在復(fù)雜的環(huán)境中引發(fā)連鎖反應(yīng)。
(7) 管理跨平臺的授權(quán)和認證。需要為每個用戶和組配置正確的權(quán)限,只允許用戶對已授權(quán)的資源進行操作。
(8) 在不影響用戶的情況下優(yōu)化基礎(chǔ)設(shè)施,以實現(xiàn)降本增效。
DevOps和基礎(chǔ)設(shè)施挑戰(zhàn)
軟件開發(fā)涉及不同團隊的協(xié)作,而DevOps有助于在軟件開發(fā)生命周期中為各個團隊創(chuàng)建一個敏捷、高效的協(xié)作環(huán)境以推動開發(fā)進度。然而,這種敏捷的開發(fā)速度可能會導(dǎo)致平臺維護團隊面臨快速執(zhí)行基礎(chǔ)架構(gòu)變更的壓力。
敏捷開發(fā)依賴基于DevOps的自動化交付。平臺運維團隊的職責是運維從代碼構(gòu)建、測試、自動化部署到監(jiān)控的配置,以保證整個自動化流程的有效性。隨著發(fā)布周期越來越短,平臺運維團隊不僅需要對生產(chǎn)環(huán)境和模擬環(huán)境進行快速調(diào)整、優(yōu)化和變更,也需要對整個基礎(chǔ)設(shè)施進行全面檢修,甚至需要對內(nèi)部團隊用于開發(fā)軟件的所有工具和平臺執(zhí)行相同的維護任務(wù)。所有的配置和維護都是平臺維護團隊的職責。
總之,現(xiàn)代DevOps實踐的持續(xù)變更和交付可能會為平臺運維團隊帶來壓力。
使用不同的工具和工具集如何影響這些挑戰(zhàn)?
不同的工具和工具集是支撐現(xiàn)代自動化軟件開發(fā)生命周期的基石。平臺運維團隊需要不斷運維和優(yōu)化交付管道的各個方面,以確保在不影響產(chǎn)品研發(fā)和交付的情況下管理基礎(chǔ)架構(gòu)。
大多數(shù)時候,平臺運維團隊依靠多種工具來為單個交付管道提供支持。這些工具可以涵蓋版本控制、代碼構(gòu)建、自動化測試框架、基礎(chǔ)設(shè)施即代碼等,都是用來完善CI/CD平臺的。配置和管理這些不同的工具和工具集給平臺運維團隊增加了一定復(fù)雜性。當涉及到故障排查時,過程將異常艱難,因為單個工具中配置錯誤的可能性很高,這會影響整個交付管道的不同工具。
在DevOps領(lǐng)域,如果想要獲得DevOps實踐的收益,就幾乎不可能分離不同的工具和工具集來支持CI/CD管道。不同的工具使平臺維護團隊能夠正確應(yīng)對并管理交付管道和基礎(chǔ)設(shè)施所帶來的挑戰(zhàn)。同時,為了簡化對多個工具的管理,集中式管理工具正在迅速普及。這些工具提供了一個單一界面來管理交付管道的所有組件,同時可與其他工具和服務(wù)交互,以幫助基礎(chǔ)架構(gòu)團隊有效執(zhí)行任務(wù)。
總結(jié)
在現(xiàn)代軟件開發(fā)環(huán)境中,平臺運維團隊面臨著復(fù)雜程度不一的多種挑戰(zhàn),而消費者日益增長的需求和敏捷開發(fā)更加劇了這當中的復(fù)雜性。因此,平臺運維團隊越來越依賴不同的工具和工具集,同時對這些工具的管理也同樣是平臺運維團隊要應(yīng)對的挑戰(zhàn)。集中管理工具通過使用統(tǒng)一的平臺來管理整個軟件開發(fā)生命周期,或?qū)⒊蔀橹ζ脚_工具的好幫手。
原文鏈接:https://dzone.com/articles/key-challenges-platform-teams-experience