天天看點

優雲automation實踐技巧:簡單4步完成自動化建構與釋出

優雲automation實踐技巧:簡單4步完成自動化建構與釋出

前言:本文介紹了優雲是如何将運維自動化産品應用到日常工作實踐中,并通過内部使用者的大量使用來不斷改進産品的使用者體驗。

各位看官,這不是一個揭發單身有為青年因同僚們天天秀恩愛而受到一萬點暴擊傷害的故事。這裡指的狗糧,不是真正的“狗糧”——當然,也不是你們認為的狗糧。

事實上,現在很多涉足産品開發的網際網路公司,都會提到“吃狗糧”這一概念(出自“eating yourown dog food -- 吃你自家的狗糧”),它的意思是公司内部員工使用自己生産的産品進行日常工作。這麼做有什麼好處呢,比方說一家公司做美顔app的,結果他們自己員工卻用某圖秀秀p圖,這産品對外怎麼可能具備說服力?如果堅持使用自家開發的app,不僅能提升員工開發時的使命感、大衆使用此産品的信心,特别地,對于一些bug的處理也會變得及時——員工發現bug後會第一時間回報,而使用者很可能就放棄使用了。

關于這點筆者是深有體會,早些年從事軟體服務外包時,發現傳遞給客戶的産品鮮有好用的,究其原因,是實作軟體的程式員們,未曾站到使用者的角度去思考。技術人員不作為使用者,不會明白他們所開發産品的價值。如果不明白其價值,又如何會将其打造得盡善盡美呢?

筆者參與優雲automation産品開發之初,就竭力促成這款産品在優雲軟體日常工作使用中的落地,正所謂“狗糧吃得多,才能長得肥”!過去我們使用jenkins等軟體進行automation産品的建構釋出,優雲automation的設計目标就是自動化運維的一切,那麼能不能将jenkins所完成的工作用automation來代替呢?想想應該是非常easy的事情!

下面分享一下自己在公司吃狗糧的經曆,讓大家體會下這是一件多麼幸福的事情!要成功吃到狗糧,隻需要以下幾步:

步驟一:定目标

首先設定吃狗糧的目标:使用automation實作産品自身的自動化建構和釋出。然後規劃建構釋出過程,以便實作自動化。經過分析,整個建構和釋出過程大緻分為更新代碼、程式建構、端到端測試、打包釋出四個階段。

1) 更新代碼

這個很容易了解,就是将最新的代碼從git遠端倉庫pull到本地。

2) 程式建構

這個階段要實作automation代碼的前後端建構,我們使用webpack和maven來進行建構管理,是以這個階段隻需執行幾行指令便可完成。

3) 端到端測試

完成建構後,我們需要進行端到端的測試,驗證本次版本的正确性。這裡是吃狗糧的重點:使用最新建構出的系統來完成自動化測試,實作真正意義上的“自舉”!這樣充分保證新版本在一次真實的場景中運作的正确性和穩定性。

整個建構釋出過程的前部分使用老版本運作,當建構出新版本後自動更新自身系統,并用新版本運作後續任務,同時通過“端到端測試”對新版本系統進行界面和接口的自動化測試。整個過程隻要有任務執行失敗,需要生成報告并通知相應人員進行處理。

優雲automation實踐技巧:簡單4步完成自動化建構與釋出

4) 打包釋出

優雲産品有統一的釋出倉庫,是以測試通過後需要按公司的要求生成釋出包上傳到釋出倉庫,比如某個釋出包類似uyun-automation-v2.1.5.tar.gz(此處版本号根據規則自動生成)。

步驟二:寫操作

在automation産品設計中,操作是自動化的原力,支援輸入、輸出參數設計,是以操作是很容易被複用的。産品本身内置了很多面向各種devops場景常用的操作,也可以通過python、shell或批處理腳本按需擴充操作能力。

經過第一步的分析得到整個過程可劃分為git pull、前端建構、後端建構、部署系統、重新開機系統、端到端測試、生成釋出包和上傳釋出包等操作。其中“端到端測試”操作實際上是調用了另外一個自動化測試的流程編排(概念後面會介紹)來實作。

自定義操作是非常容易的,下面以git pull為例說明,其他操作就不細表了,相信難不倒各位看官。

優雲automation實踐技巧:簡單4步完成自動化建構與釋出

步驟三:編流程

有了自動化的原力之後,就要按我們的目标規劃将各個原力串接起來,做出我們的“狗糧”—自動化建構釋出流程編排。automation提供了可視化的編排設計器,支援編排參數設計,任務間支援輸入輸出參數引用,可設定任務執行完成後是否需要确認才繼續執行,是以能很容易編排出實作我們目标的自動化流程。

因整個系統包括前後端,是以複用git pull操作實作前後端代碼的更新。我們來看看實作上述完整過程的編排長什麼樣:

優雲automation實踐技巧:簡單4步完成自動化建構與釋出

         “端到端測試”調用的是另外一個編排,該編排主要調用selenium和automation自身的api實作界面、接口的自動化測試,這裡就不詳表了。

步驟四:天天“吃狗糧”

點選儲存并測試,“狗糧”做好了,開吃!經過不到10分鐘,我們的作業便執行完畢:

優雲automation實踐技巧:簡單4步完成自動化建構與釋出

建構并釋出成功!如果建構失敗怎麼辦?不急,automation可以生成錯誤報告并通過郵件或短信通知開發工程師解決後進行下一次自動化建構。根據優雲産品管理規定,設定編排每天定時執行,從此便每天過上快樂“吃狗糧”的生活。

自從吃上“狗糧”後,不再失眠了,因為每次建構都會進行自動化場景測試,有問題可以立即發現并修正,産品品質顯著提升,單身汪們可以有更多時間解決單身問題,拒絕别人喂的“狗糧”!

其實上面介紹的自動化建構場景,隻是automation強大功能的一小部分,這個産品特别适合各位devops達人,不知各位看到這裡,有沒有聯想到更多更棒的使用場景呢?先定他一個小目标,将您的應用建構和釋出自動化起來!歡迎試用優雲産品automation。

作者簡介:竺夏棟

優雲軟體産品架構師

4年系統分析師,3年網際網路金融相關創業經曆

目前負責優雲運維自動化産品的架構設計

“優雲:全棧雙态運維實踐者,企業級運維專家”

繼續閱讀