前言:本文介紹了優云是如何將運維自動化產品應用到日常工作實踐中,并通過內部用戶的大量使用來不斷改進產品的用戶體驗。
各位看官,這不是一個揭發單身有為青年因同事們天天秀恩愛而受到一萬點暴擊傷害的故事。這里指的狗糧,不是真正的“狗糧”——當然,也不是你們認為的狗糧。
事實上,現在很多涉足產品開發的互聯網公司,都會提到“吃狗糧”這一概念(出自“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)端到端測試
完成構建后,我們需要進行端到端的測試,驗證本次版本的正確性。這里是吃狗糧的重點:使用最新構建出的系統來完成自動化測試,實現真正意義上的“自舉”!這樣充分保證新版本在一次真實的場景中運行的正確性和穩定性。
整個構建發布過程的前部分使用老版本運行,當構建出新版本后自動更新自身系統,并用新版本運行后續任務,同時通過“端到端測試”對新版本系統進行界面和接口的自動化測試。整個過程只要有任務執行失敗,需要生成報告并通知相應人員進行處理。
4)打包發布
優云產品有統一的發布倉庫,所以測試通過后需要按公司的要求生成發布包上傳到發布倉庫,比如某個發布包類似uyun-automation-v2.1.5.tar.gz(此處版本號根據規則自動生成)。
步驟二:寫操作
在Automation產品設計中,操作是自動化的原力,支持輸入、輸出參數設計,所以操作是很容易被復用的。產品本身內置了很多面向各種DevOps場景常用的操作,也可以通過Python、Shell或批處理腳本按需擴展操作能力。
經過第一步的分析得到整個過程可劃分為Git Pull、前端構建、后端構建、部署系統、重啟系統、端到端測試、生成發布包和上傳發布包等操作。其中“端到端測試”操作實際上是調用了另外一個自動化測試的流程編排(概念后面會介紹)來實現。
自定義操作是非常容易的,下面以Git Pull為例說明,其他操作就不細表了,相信難不倒各位看官。
步驟三:編流程
有了自動化的原力之后,就要按我們的目標規劃將各個原力串接起來,做出我們的“狗糧”—自動化構建發布流程編排。Automation提供了可視化的編排設計器,支持編排參數設計,任務間支持輸入輸出參數引用,可設定任務執行完成后是否需要確認才繼續執行,所以能很容易編排出實現我們目標的自動化流程。
因整個系統包括前后端,所以復用Git Pull操作實現前后端代碼的更新。我們來看看實現上述完整過程的編排長什么樣:
“端到端測試”調用的是另外一個編排,該編排主要調用Selenium和Automation自身的API實現界面、接口的自動化測試,這里就不詳表了。
步驟四:天天“吃狗糧”
點擊保存并測試,“狗糧”做好了,開吃!經過不到10分鐘,我們的作業便執行完畢:
構建并發布成功!如果構建失敗怎么辦?不急,Automation可以生成錯誤報告并通過郵件或短信通知開發工程師解決后進行下一次自動化構建。根據優云產品管理規定,設定編排每天定時執行,從此便每天過上快樂“吃狗糧”的生活。
自從吃上“狗糧”后,不再失眠了,因為每次構建都會進行自動化場景測試,有問題可以立即發現并修正,產品質量顯著提升,單身汪們可以有更多時間解決單身問題,拒絕別人喂的“狗糧”!
其實上面介紹的自動化構建場景,只是Automation強大功能的一小部分,這個產品特別適合各位DevOps達人,不知各位看到這里,有沒有聯想到更多更棒的使用場景呢?先定他一個小目標,將您的應用構建和發布自動化起來!歡迎試用優云產品Automation。
作者簡介:竺夏棟
優云軟件產品架構師
4年系統分析師,3年互聯網金融相關創業經歷
目前負責優云運維自動化產品的架構設計
“優云:全棧雙態運維實踐者,企業級運維專家”
秉承devops的理念,從監控、到應用體驗,到自動化持續交付,優云一切為了您做的更好!
優云全線產品免費試用:https://www.uyun.cn
原創文章,作者:uyunops,如若轉載,請注明出處:http://www.www58058.com/65919