
常見的運維問題
- 人工運維 —— 機械性重複運維,效率地下,錯誤頻發
- 工具輔助 —— 無法批量操作,批量運作狀态缺乏管理,難以定位錯誤
- 業務發展過快,缺少運維積累,缺乏運維規範
- 多人運維缺少權限控制,中心化日志,無法審計
- 運維權限過大,增加失誤風險,運維變成“背鍋俠”
運維演進的三個方向
- 第一階段:純手工運維。完全依賴手工的方式運維,有時在指令行裡面的敲幾行指令,有時用滑鼠在幾個不同的網頁上操作,基本上都是靠“前輩”手把手指導,然後就自己上路了,剛開始操作時心中忐忑,生怕“碰壞了”系統。等到操作熟練以後,又容易掉以輕心,最好操作失誤,觸發故障。
- 第二階段:逐漸累積了一些運維腳本和一些小工具,幫助完成單一的運維任務。比起第一階段,完成單一運維任務的效率提高了很多。但是在處理批量任務時,依然力不從心,無法很好地協同狀态,協調各個任務之間的狀态。腳本的編寫往往不夠嚴格,時常遇到錯誤,導緻無法繼續使用腳本和工具,需要退回到手工運維。
- 第三階段:完整的自動化系統。比起第二階段,工具和腳本被系統級的自動化軟體所取代,自動化的系統提供完備的批量運作,狀态監控,日志和身份認證等功能。此類系統可以完成預先設計的自動化功能,随着任務的需求越來越多,系統需要不斷更新和維護。 —— 為了友善阿裡雲的使用者,阿裡特意打造了雲上的自動化運維平台 —— 運維編排服務OOS。
阿裡雲運維編排服務
阿裡雲運維編排服務(Operation Orchestration Service,簡稱OOS)是一個全面的,免費的雲上自動化運維平台,提供了運維任務的管理和執行。典型的使用場景包括:事件驅動運維,批量操作運維,定時運維任務,跨地域運維等,OOS特别為一些重要的運維場景提供了審批,通知等功能。通過使用OOS還可以達到标準化運維任務的目的,進而實踐運維即代碼(Operations as Code)的先進理念。OOS支援跨産品使用,您可以使用OOS管理ECS、RDS、SLB、VPC等雲産品。
産品優勢
可視化的執行過程和執行結果
通過提供可視化的執行過程,您可以看到完整的執行過程和執行結果,具體包括:
- 直覺地看到各個任務的執行詳情、參數和輸出。
- 清晰地看到執行的流程、順序和錯誤跳轉。
- 透明地看到從開始到結束的完整執行過程。
阿裡雲重磅釋出雲上自動化利器——運維編排OOS常見的運維問題運維演進的三個方向阿裡雲運維編排服務運維編排(OOS)和資源編排(ROS)歡迎使用OOS系列文章
免費的全托管自動化
提供全托管的自動化執行,即無伺服器(Serverless)的自動化執行。執行過程無須消耗和使用您的計算資源(如ECS執行個體),即可滿足創業型公司、中小型企業以及大型企業客戶的自動化運維需求。完全的自動化模式下無需人工守護,讓您更加專注于業務的高速增長。
高效的批量管理
傳統場景下,執行批量任務相比執行單一任務的管理複雜度大幅增加,OOS可以幫助您提供實時的進度管理、運作狀況統計和快速的錯誤定位,進而提高整體的運維效率。
完備的鑒權和審計
您可以繼續使用熟悉的資源通路管理和使用者權限管理系統(RAM)來管理OOS,無論是運維編排自身的操作,還是通過運維編排執行的對其他雲産品的操作,均支援鑒權和審計。您無需擔心操作的安全。
快速模闆建構能力
OOS提供高易用性的模闆建構能力,您無需從零開始建構。OOS提供了熱門雲産品的快速內建能力雲産品動作,幫助您快速地構模組化闆,降低模闆編寫的難度,提高整體運維的效率。同時,OOS為常見的運維場景提供了公共模闆,您可以選擇一個類似的模闆快速地複制和修改,以便滿足您獨特的運維需求。
跨地域、多地域的運維能力
因為業務的需要您可能使用了多個地域的資源,普通的運維操作隻能在一個地域内單獨操作,而OOS同時提供了跨地域和多地域的運維能力。多地域運維時,可以利用OOS的任務循環,能夠快速地覆寫多地域。跨地域運維時,隻需要指定對應Action的RegionId即可。
标準化運維任務(Operations as Code)
将日常所需要的運維任務以模闆的方式提供,并遵循代碼(Code)的管理方式來管理模闆。從建立到稽核,再同步到生産賬号中,後續的運維任務隻從标準模闆中選擇運作,確定運維動作的安全,像源代碼一樣的規範,并以此完成運維即代碼(Operations as Code)的最佳實踐。
運維權限收斂(委托授權)
運維人員的權限管理非常地複雜,太大的權限意味着太高的風險,太小的權限又無法完成運維操作,如何可以讓運維人員完成運維任務,同時又避免他進行非預期的操作。OOS提供了委托授權模式,具有高權限的管理人員編寫OOS模闆,并配置固定的role,此時即完成了委托授權。然後将執行此模闆的權限開放給其他低權限的運維人員,即可完成運維任務,又避免了高權限的風險。
應用場景
OOS的常見應用場景有:事件驅動、批量操作、更新鏡像、需要審批的運維場景、定時任務、跨地域、多地域的運維等應用場景,且您也可根據自身實際場景自定義諸多靈活多樣的模版。
事件驅動
當一個事件發生時,觸發一個運維動作。例如,當某ECS執行個體的CPU使用量達到了85%時,為了防止業務中斷,自動重新開機。事件驅動場景可以提供主動運維支援,免去中間的人為因素,提高運維效率。
批量操作
批量地執行運維指令,即需要針對多個目标(如ECS執行個體)進行正常操作,以確定業務的正常和平滑運作,并保持業務的健康狀态。
例如,批量檢查ECS執行個體中的硬碟剩餘空間。首先選擇需要檢查的執行個體清單。(多種選擇方式,如名字比對、标簽分組、資源組分組等),然後通過雲助手指令執行硬碟檢查,最終統一檢視結果。
公共模闆
名稱 | 用途 |
---|---|
ACS-ECS-StartInstancesByInstanceIds | 根據執行個體ID清單開機 |
ACS-ECS-StartInstancesByTag | 根據執行個體Tag開機 |
ACS-ECS-StopInstancesByInstanceIds | 根據執行個體ID清單停機 |
ACS-ECS-StopInstancesByTag | 根據執行個體Tag停機 |
ACS-ECS-RebootInstancesByInstanceIds | 根據執行個體ID清單重新開機 |
ACS-ECS-RebootInstancesByTag | 根據執行個體Tag重新開機 |
更新鏡像
為了保證ECS執行個體的運作環境始終是安全的,包括安裝最新更新檔,或者更新所依賴的元件等,您可以使用OOS更新鏡像,從一個源鏡像開始逐漸更新,最終生成一個新鏡像,然後用于測試和生産。
需要審批的運維場景
在很多場景下都需要使用審批來確定操作是安全并符合預期的。通過在模闆中增加審批動作(ACS::Approve)可以在運維動作實際執行前進行人工審批,以確定運維動作執行的必要性,避免浪費和誤操作。
ACS-ECS-BuyCostlyInstancesWithApproval | 購買執行個體時需要先審批 |
ACS-ECS-DeleteInstancesWithApprovalByInstanceIds | 删除執行個體時需要先審批 |
定時任務
定時執行所定義的運維動作。例如,在某測試場景中,需要清除某賬号下因為測試所産生的對象存儲OSS檔案,則可以建立一個模闆,每天淩晨運作,以確定測試環境是一個全新的環境,避免幹擾下一次的測試結果。
ACS-ECS-ScheduleToStartInstancesByTag | 根據執行個體ID清單定時開機 |
ACS-ECS-ScheduleToStopInstancesByTag | 根據執行個體ID清單定時停機 |
跨地域的運維場景
多地域部署已經成為了高可用(HA)架構的通用架構。随之而來的跨地域運維卻變得越來越複雜,使用OOS可以幫助您解決跨地域的運維難題。您可以将不同地域的運維操作定義在一個模闆内,即可實作跨地域的運維場景。
多地域的運維場景
當您在使用多個地域資源時,經常需要對它們進行同步操作,以便保持它們的一緻性。例如,将對象存儲(OSS)的多個地域的存儲空間(Bucket)進行相同的操作——開啟日志功能。
運維編排(OOS)和資源編排(ROS)
相同之處
- OOS和ROS都是通過配置YAML或JSON檔案的方式來定義模闆的——即編排。編排的内容是資源,即ROS,編排的内容是運維動作,即OOS。
- OOS和ROS的配置文法是相似的。
- OOS和ROS都免費的,全托管的雲産品,即本身不花錢,但通過OOS和ROS建立的資源是會按照各自的要求收費的。
- OOS和ROS都是阿裡雲官方的雲産品,提供了統一身份認證,安全審計等功能。對比第三方類似産品而言,阿裡雲提供的雲産品将給您提供更加內建,更加一緻的産品。
不同之處
ROS專注計劃&部署場景,面向雲資源的終态,在部署前需要定義好基礎設施的形态,然後通過ROS聲明出來,ROS負責幫你建立或更新基礎設施資源(即雲資源),并達到預期的終态。例如,部署一個網站通常需要部署10台ECS執行個體,1個SLB和1個RDS。那麼需要在ROS聲明,10台ECS執行個體,1個SLB和1個RDS。然後再通過建立ROS Stack的方式來實際建立這些資源,并最終建立完成,最終會有10台ECS執行個體,1個SLB和1個RDS。
OOS專注動作&運維場景,面向運維過程,完成一次任務,隻強調本次任務完成的結果。假設有這樣的運維場景,有一個已經運作的網站,因為流量增加而需要增加2台ECS執行個體,于是我們可以建立一個“新增執行個體的操作手冊”(OOS模闆的形态),這個操作手冊隻關注于此次任務,建立執行個體,并且挂在SLB下面。OOS不關心最終這個SLB下面有多少台ECS執行個體,隻關心此次增加2台執行個體的運維任務完成。
OOS和ROS在DevOps中的位置

到了該介紹文章開頭的圖檔了,在DevOps的體系中,包括從計劃,編碼,建構,持續測試,釋出,部署,運維和監控的全過程。其中的部署部分又可以分為:環境部署(即基礎設施)和應用部署兩部分。ROS專注其中的環境部署,常見的環境部署包括這些ECS,VPC,SLB,RDS等。而OOS專注其中的運維,運維不同于部署,部署有相對清晰的概念和範圍,而運維的概念相對模糊,範圍也更大。運維也包括了非DevOps中的運維,甚至包括了日常的IT運維。OOS支援的運維以雲上雲産品和其資源為主,同時包括了ECS執行個體及其内部GuestOS。通過雲助手的OpenAPI進行GuestOS的内部運維,如檢視磁盤,安裝解除安裝agent,修改配置檔案等。
歡迎使用OOS
OOS管理控制台的連結如果您遇到連結打不開的問題,請複制此連結到您的浏覽器導航欄然後打開:
https://home.console.aliyun.com/redirect.htm?productId=ecs&path=automation/region/ OOS幫助文檔的連結OOS客戶支援釘釘群:23330931