優云automation實踐技巧:簡單4步完成自動化構建發布

1.jpg

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

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

事實上,現在很多涉足產品開發的互聯網公司,都會提到“吃狗糧”這一概念(出自“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)端到端測試

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

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

2.jpg

4)打包發布

優云產品有統一的發布倉庫,所以測試通過后需要按公司的要求生成發布包上傳到發布倉庫,比如某個發布包類似uyun-automation-v2.1.5.tar.gz(此處版本號根據規則自動生成)。

步驟二:寫操作

在Automation產品設計中,操作是自動化的原力,支持輸入、輸出參數設計,所以操作是很容易被復用的。產品本身內置了很多面向各種DevOps場景常用的操作,也可以通過Python、Shell或批處理腳本按需擴展操作能力。

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

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

3.jpg

步驟三:編流程

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

因整個系統包括前后端,所以復用Git Pull操作實現前后端代碼的更新。我們來看看實現上述完整過程的編排長什么樣:

4.jpg

“端到端測試”調用的是另外一個編排,該編排主要調用Selenium和Automation自身的API實現界面、接口的自動化測試,這里就不詳表了。

步驟四:天天“吃狗糧”

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

5.jpg

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

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

其實上面介紹的自動化構建場景,只是Automation強大功能的一小部分,這個產品特別適合各位DevOps達人,不知各位看到這里,有沒有聯想到更多更棒的使用場景呢?先定他一個小目標,將您的應用構建和發布自動化起來!歡迎試用優云產品Automation。

作者簡介:竺夏棟

優云軟件產品架構師

4年系統分析師,3年互聯網金融相關創業經歷

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

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

秉承devops的理念,從監控、到應用體驗,到自動化持續交付,優云一切為了您做的更好!

優云全線產品免費試用:https://www.uyun.cn

原創文章,作者:uyunops,如若轉載,請注明出處:http://www.www58058.com/65919

(0)
uyunopsuyunops
上一篇 2017-01-09 10:03
下一篇 2017-01-09 13:30

相關推薦

  • 馬哥教育網絡班20期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&n…

    系統運維 2016-07-07
  • 數據結構應用詳解-

    概述 最小生成樹——無向連通圖的所有生成樹中有一棵邊的權值總和最小的生成樹 拓撲排序 ——由偏序定義得到拓撲有序的操作便是拓撲排序。建立模型是AOV網 關鍵路徑——在AOE-網中有些活動可以并行地進行,所以完成工程的最短時間是從開始點到完成點的最長路徑的長度,路徑長度最長的路徑叫做關鍵路徑(Critical Path)。 最短路徑——最短路徑問題是…

    Linux干貨 2015-04-07
  • PHP安全模式詳解(PHP5.4安全模式將消失)

    1. 安全模式      一直沒有用過php的safe_mode安全模式,以此說明作為日后參考。      PHP 的安全模式是為了試圖解決共享服務器(shared-server)安全問題而設立的。在結構上,試圖在 PHP 層上解決這個問題是不合理的,但修改 web 服務器層和操作系統層顯得非常不現…

    Linux干貨 2015-06-02
  • 一點點RPM

    1、軟件管理器簡介          隨著Linux的不斷發展及越來越多的人投入到Linux大家庭中,軟件管理器的作用對于還無法熟練掌握源碼編譯安裝的人們還是顯得尤為重要,同時,由Linux開發商在為其編譯完成的軟件包在某種程度上要比在網絡上流傳的軟件包要安全的多;所以,掌握Li…

    Linux干貨 2015-12-06
  • PHP運行模式

    PHP運行模式有4鐘: 1)cgi 通用網關接口(Common Gateway Interface))2) fast-cgi 常駐 (long-live) 型的 CGI3) cli  命令行運行   (Command Line Interface)4)web模塊模式 (apache等web服務器運行的模塊模式) 1.  CGI(…

    Linux干貨 2015-04-10
  • Linux http服務

                               Linux http服務   網絡服務通信基礎:   1、端口號就是進程標識,每個用戶最多只能打開1024個進程。   2、MAC地址僅…

    系統運維 2016-11-18
欧美性久久久久