随着網際網路業務快速持續增長,it資源使用量按需變化成為常态,這就要求資訊部門能快速響應資源使用的變化要求,對運維提出不小挑戰。比如電商、線上教育等企業經常推出一些秒殺、搶紅包活動,在特定時間段對資源的利用處于高峰期,之後基本處于空閑。
幾年前,我們從申請采購到應用部署上線都隻能人工操作,需要提前幾個月開始規劃。如今通過雲平台能很好實作資源按需動态管理,運維人員可在雲平台上根據實際業務需求申請或釋放資源。但申請到虛拟機之後,還是需要按照傳統方式從人工部署應用系統,根據工作規範一步步操作,這種方式還是很難應對服務變化快速響應的需求,給運維人員也帶來不少的工作量。
是以我們需要從建立虛機到部署應用整個完整鍊條的自動化能力,當業務量上升時,能自動增加應用服務來滿足上升的業務通路量;當業務量下降時,能自動縮減應用服務。以此達到讓應用服務具有彈性伸縮的能力,保證應用穩定性和高可用性,同時也起到提升資料中心資源使用率的作用。
優雲automation具有雲基礎架構到業務應用的全棧自動化傳遞能力,可以便攜的實作應用服務自動擴縮容,下面我們以優雲官網自動擴縮容為例給大家介紹。
<b>一、業務需求分析</b>
優雲官網的業務應用架構(如下圖)包括負載層、應用層、存儲層,目前部署在阿裡雲上,其中應用層使用微服務化以及無狀态設計,支援水準擴充能力。
假如雙十二要舉辦一個互動活動,為了保障業務穩定運作,需要對業務應用層的主機進行監控,當cpu使用率持續大于60%後,自動往叢集裡增加1台機器,并能自動部署好應用服務上線接入運作。當cpu利用持續小于20%的時候,縮減1台機器。
<b>二、内置操作複用</b>
automation内置了滿足各種運維場景的自動化操作,如雲環境管理、資料庫中間件管理、應用部署、日常運維等。雲環境管理方面提供了阿裡雲、vmware、openstack的支援,優雲官網部署在阿裡雲,是以我們主要使用阿裡雲管理相關的操作。内置阿裡雲操作可實作ecs執行個體的建立、修改、銷毀、啟停和查詢等全生命周期管理,也可以通過平台靈活定義私有操作滿足各種運維場景。
擴容場景需使用到阿裡雲ecs建立、啟動、查詢操作,執行個體啟動後需自動安裝操作agent,之後安裝、啟動tomcat服務、部署應用包以及負載均衡配置和重載生效。
上圖為建立“阿裡雲ecs執行個體”的操作資訊:
1)輸入參數:integration_info、vm_conf;
a)integration_info為系統內建配置參數,可通過內建界面配置阿裡雲伺服器位址、accesskey、secretkey等資訊;
b)vm_conf為執行個體配置參數,支援區域、網絡、安全組、執行個體類型、鏡像等配置,接受json格式,如下:
2)輸出參數instance_id:指建立後的ecs執行個體id,後續操作需使用該id。
<b>三、場景編排實作</b>
有了操作之後,我們可以将操作串接起來形成滿足自動擴容的編排流程。automation提供可視化的流程編輯器,可按擴容處理步驟一步步添加操作,前一個操作輸出參數值可被之後的操作引用,實作資料傳遞。
以下是自動擴容編排流程,自動縮容更加容易實作。
整個編排執行過程如下:
<b>1</b><b>)建立阿裡雲ecs執行個體:</b>根據系統內建、執行個體配置資訊在阿裡雲上建立執行個體并輸出執行個體id;
<b>2</b><b>)啟動阿裡雲ecs執行個體:</b>通過系統內建配置、引用第一步輸出執行個體id參數資訊來啟動雲上的執行個體;
<b>3</b><b>)執行個體ip查詢:</b>通過系統內建配置、引用第一步輸出執行個體id參數資訊來查詢雲上的執行個體資訊并輸出ip位址;
<b>4</b><b>)安裝agent:</b>根據前面任務的輸出資訊,在目标虛拟機上安裝優雲automation agent;
<b>5</b><b>)安裝tomcat:</b>自動下載下傳tomcat安裝包并進行安裝,參數資訊以及執行主機引用第三步輸出ip位址;
<b>6</b><b>)部署應用包:</b>配置業務應用包、部署目錄等參數資訊以及執行主機引用第三步輸出ip位址來部署應用包到tomcat服務下;
<b>7</b><b>)啟動tomcat:</b>根據前面任務的輸出參數資訊來啟動tomcat服務;
<b>8</b><b>)負載均衡配置:</b>在前置負載均衡上配置新增轉發執行個體ip位址;
<b>9</b><b>)負載均衡配置重載:</b>重載負載均衡器以讓其生效。
<b>四、自動觸發執行</b>
系統支援手工、定時、api三種方式執行編排,其中api支援restful協定,調用時可傳遞編排參數值。為實作動态自動擴縮容,我們采用優雲monitor進行主機負載監控,當監控到應用伺服器cpu負載持續高于60%時,自動調用automation api的編排執行接口來完成自動擴容,如下圖:
調用後作業執行詳情如下:
我們可以檢視每個任務的執行詳情,比如建立阿裡雲ecs執行個體:
阿裡雲上看到的執行個體資訊如下,擴容已經自動完成:
優雲automation已經内置支援多種雲平台,也會持續完善各種雲資源的自動化管理支援,我們可以得到一個公式:it服務彈性伸縮利器=雲平台+優雲automation。
作者:葉軍會