国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一篇文章帶你了解如何用Planting 為測試工程師開發(fā)的部署框架

yiliang / 923人閱讀

摘要:是一個為測試工程師開發(fā)的部署框架,使用語言編寫,為了解決測試團隊在測試過程中的部署問題。部署執(zhí)行方式簡單,支持命令行與自動化測試可緊密合作作為一個為測試工程師開發(fā)的部署框架,通過命令行進行自動化部署是第一選擇。

Planting 是一個為測試工程師開發(fā)的部署框架,使用 python 語言編寫,為了解決測試團隊在測試過程中的部署問題。作為一個測試工程師你是不是也遇到過以下問題:

手動部署花費時間長,配置容易出錯、遺漏問題

多集群多節(jié)點配置參數(shù)不一致,相互依賴問題

持續(xù)集成 CI 中的部署自動化問題

多產(chǎn)品線部署需求問題

多平臺的部署自動化方案

復(fù)雜部署過程中的失敗重試問題

降低一個新產(chǎn)品的部署工具開發(fā)的代價

部署工具的開發(fā)協(xié)作與分享問題

Planting 對部署的理解與設(shè)計

這里對部署的理解與設(shè)計,主要針對目前的公司產(chǎn)品形態(tài)以及部署需求。如果有更多需求,Planting 完全可以進一步開發(fā)進行擴展和定制。
部署必然包含兩部分,部署工具與被控設(shè)備(系統(tǒng))。這里的被控設(shè)備(系統(tǒng))常見的有各種操作系統(tǒng) Linux、 Windows、 MacOS, 移動端有 iOS 和 Android 等,不常見的比如嵌入式系統(tǒng)等。被控設(shè)備(系統(tǒng))還包括部署過程中涉及到的一些系統(tǒng),比如各種軟件倉庫(Nexus, Artifactory 等)。

部署工具如果需要多產(chǎn)品線開發(fā)協(xié)作與分享,使用核心框架與插件配合的方式,是我們認(rèn)為最合適的方式。

核心框架包括了遠(yuǎn)程控制接口層以及在其上的底層核心功能庫(常見部署功能模塊,配置管理模塊,軟件倉庫管理模塊等)。遠(yuǎn)程控制接口層可以包含或復(fù)用各種遠(yuǎn)程控制模塊比如 ansible 遠(yuǎn)程控制模塊,python 語言的 paramiko、fabric 庫,移動端 Android 可以是 adb, iOS 可以是 iOSShell。遠(yuǎn)程控制接口層可以根據(jù)需要進行定制和擴充。底層核心功能庫的常見功能模塊需要包含各種最基本的部署操作或者部署操作的組合,比如創(chuàng)建目錄,下載文件,解壓文件。具體實現(xiàn)可以復(fù)用像 Ansible 這類工具的功能模塊,減少重復(fù)造輪子。當(dāng)然也可以自己編寫各種功能模塊。配置模塊包含命令行參數(shù)配置與框架配置,來保證整個部署可以靈活控制調(diào)整。

插件是一個軟件(系統(tǒng))部署功能的具體實現(xiàn)。從邏輯概念上抽象出了部署模式(Mode),部署步驟(Stage),部署操作(Action)等概念。這些概念是對一個部署功能的分層抽象。

進一步舉例介紹模式(Mode)、步驟(Stage)和 操作(Action)的關(guān)系:

一個軟件的部署模式有直接部署和升級部署以及擴展部署等多種模式。每種部署模式又會包含多個步驟,所有步驟執(zhí)行成功代表部署成功。每個部署步驟又由一個或多個部署操作組合在一起。部署操作一般是粒度比較小的一個執(zhí)行操作,但一般并不是最小粒度的操作。正常來說部署執(zhí)行的過程因為網(wǎng)絡(luò),軟件配置等問題總會有執(zhí)行失敗的情況,需要提供一種重試機制,減少復(fù)雜部署不必要的重復(fù)執(zhí)行開銷。選擇在部署 Stage 這一粒度上進行重試,被認(rèn)為是一種合適的策略。

再來看操作(Action)和功能模塊 (Module)的關(guān)系:

Action 操作可以由一個或多個不同的功能模塊組成。每個功能模塊(Module)一般被認(rèn)為是一個不能繼續(xù)拆分的執(zhí)行。所有基本的功能模塊應(yīng)該存在于部署框架當(dāng)中,而最常用到的 Action 也應(yīng)該由核心的框架層提供,以方便所有插件共同使用。同時插件也可以有自己實現(xiàn)的 Action , 這些 Action 可以方便地在引用它的插件中使用,達到共享的目的。

Planting 部署實現(xiàn)架構(gòu)

Planting 核心框架可以簡單劃分為兩部分,插件管理模塊和插件執(zhí)行模塊。插件管理模塊負(fù)責(zé)管理各種插件,安裝、卸載、升級插件,維護整個插件池。插件執(zhí)行模塊對整個軟件部署執(zhí)行過程進行管理。它根據(jù)插件配置和框架配置從插件池動態(tài)加載插件進行執(zhí)行。執(zhí)行的過程就是根據(jù)插件配置(模式,各種參數(shù))以及框架配置(被控節(jié)點信息,軟件倉庫地址等)進行部署的過程。執(zhí)行模塊還包含一個觀察者角色,其負(fù)責(zé)對執(zhí)行狀態(tài)進行記錄。部署重試功能就是通過觀察者角色記錄的 CheckPoint 來實現(xiàn)。

Planting 軟件發(fā)布管理

核心框架與所有插件均以 python pip 包的形式保存在公司內(nèi)網(wǎng)的 pip server 上。每個插件擁有自己的代碼庫,不同插件開發(fā)、調(diào)試、發(fā)布新版本可以完全隔離。

核心特性

planting 的核心特性概述如下:

提供部署核心框架與一套靈活可擴展的插件體系

部署執(zhí)行方式簡單,支持命令行與自動化測試 CI 可緊密合作

支持腳手架功能,插件上手簡單,編寫效率高

使用 Ansible 源碼,復(fù)用 Ansible 優(yōu)秀特性

部署過程支持失敗重試功能

遠(yuǎn)程控制具有可擴展性,能根據(jù)需求增加對新設(shè)備的控制

不僅僅是一個部署框架也是一個自動化運維框架

特性拆解

提供部署核心框架與一套靈活可擴展的插件體系

作為一家 AI 創(chuàng)業(yè)公司,產(chǎn)品線眾多,不可能搞一個大而全的部署工具,維護成本太高。通過核心框架與插件化相結(jié)合的思路能夠讓多產(chǎn)品線部署工具獨立開發(fā),完全解耦。對于具有共性的部署問題可以通過框架層解決,不讓各個插件重復(fù)造輪子。

部署執(zhí)行方式簡單,支持命令行與自動化測試 CI 可緊密合作

作為一個為測試工程師開發(fā)的部署框架,通過命令行進行自動化部署是第一選擇。命令行能同時滿足手動部署以及CI自動化測試前的部署。

支持腳手架功能,插件上手簡單,編寫效率高

每個部署插件以 python pip 軟件包形式發(fā)布。為了降低每個產(chǎn)品線開發(fā)部署工具的學(xué)習(xí)成本,比如學(xué)習(xí)使用 setup 的規(guī)范。我們提供了整個框架包括 setup 文件,可以一鍵打包。同時通過腳手架,我們把目錄進行了定制,并實現(xiàn)了一個最簡單的部署功能。讓插件開發(fā)者可以快速模仿并實現(xiàn)自己的部署功能。

使用 Ansible 源碼,復(fù)用 Ansible 優(yōu)秀特性

使用 Ansible 源碼的方式讓我們擺脫了用 yaml 語法來定義部署過程的束縛。Ansible 變成了整個部署框架的一個組件,它可以提供遠(yuǎn)程控制能力,并發(fā)能力。它提供的各種方便的功能模塊,減少了我們很多重復(fù)造輪子的時間。

部署過程支持失敗重試功能

部署過程的失敗重試功能往往在部署復(fù)雜軟件時效果明顯,可以節(jié)約很多從頭重新部署的時間。

遠(yuǎn)程控制具有可擴展性,能根據(jù)需求增加對新設(shè)備的控制

在整個部署框架設(shè)計之初,我們就考慮了未來可能增加更多需要控制和部署的設(shè)備或者系統(tǒng)。因此框架遠(yuǎn)程控制接口變成可擴展對我們意義重大,在需要的時候隨時可以增加或者替換新的遠(yuǎn)程控制庫。

不僅僅是一個部署框架也是一個自動化運維框架

雖然這個工具本身為部署而生,但是其本質(zhì)是遠(yuǎn)程控制,遠(yuǎn)程操作。因此其完全有能力根據(jù)需求擴展成一個自動化運維框架。

作為一個過來人,對學(xué)習(xí)過程中的困難深有體會。所以我熱衷于收集整理資源,記錄踩坑到爬坑的過程。希望能把自己所學(xué),實際工作中使用的技術(shù)、自學(xué)方法、心得及踩過的一些坑,記錄下來。

更希望想自學(xué)的你一樣,通過我的分享可以少走一些彎路,可以形成一條自己的體系,并應(yīng)用到實際中。當(dāng)然,也真心的希望你們升職加薪,或許這才是最實際的吧。

對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你,如果你用得到的話可以直接拿走:

包括了很多測試行業(yè)常見知識,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試,面試時面試官必問的知識點,精選簡歷等。我的QQ技術(shù)交流群(技術(shù)交流和資源共享,廣告勿擾)
可以自助拿走,群號:1125939340 群里的免費資料都是筆者這些年來的·測試生涯的精華。還有同行大神一起交流技術(shù)哦

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119658.html

相關(guān)文章

  • 帶你重新認(rèn)識 Docker 與 Kubernetes

    摘要:公司始于名為的平臺即服務(wù)供應(yīng)商??缍鄠€機器之間協(xié)調(diào)這些容器需要額外的工具,這稱之為容器編排。的核心優(yōu)勢是為應(yīng)用程序開發(fā)人員提供了用于編排無狀態(tài)容器的強大工具。有無數(shù)的文章都在討論和比較Docker、Kubernetes 以及Mesos。如果你是初學(xué)者,那么你可能會認(rèn)為這三個開源項目正為了稱霸容器界而殊死搏斗。雖然這三種技術(shù)都使得使用容器部署、管理和伸縮應(yīng)用成為可能,但實際上它們各自解決了不同...

    baishancloud 評論0 收藏0
  • 都9102年了,還不會Docker?10分鐘帶你從入門操作到實戰(zhàn)上手

    摘要:聯(lián)調(diào)測試,無需依賴他人。針對以上問題,有兩種解決方法,一個是自己搭建私有服務(wù),另一個是用云服務(wù)的鏡像管理平臺如阿里云的容器鏡像服務(wù)。利用,先對阿里云的服務(wù)進行登錄。推送后,就能在阿里云的倉庫上看到這個鏡像。 Docker簡述 Docker是一種OS虛擬化技術(shù),是一個開源的應(yīng)用容器引擎。它可以讓開發(fā)者將應(yīng)用打包到一個可移植的容器中,并且該容器可以運行在幾乎所有l(wèi)inux系統(tǒng)中(Windo...

    sf_wangchong 評論0 收藏0
  • 前端每周清單第 38 期: Node 9 發(fā)布,Kotlin 與 React,Netflix 架構(gòu)解

    摘要:發(fā)布本周正式發(fā)布,包含了一系列的特性提升與問題修復(fù),同時也在不斷致力于將打造地更為輕巧與高性能。當(dāng)然,姜振勇老師還會介紹的多種服務(wù),包括大數(shù)據(jù)網(wǎng)絡(luò)和安全,展現(xiàn)彈性安全和高可擴展性的全方位能力。 showImg(http://upload-images.jianshu.io/upload_images/1647496-2ce7598e6987d9af.jpg?imageMogr2/aut...

    Carbs 評論0 收藏0
  • 寫給前端區(qū)塊鏈開發(fā)入門指南:零基礎(chǔ)開發(fā)基于以太坊智能合約 ICO DApp

    摘要:圍繞以太坊的開發(fā)生態(tài)是目前相對最成熟的,比如有開發(fā)框架,有智能合約在線集成開發(fā)環(huán)境,還有專設(shè)的開發(fā)者問答頻道。 showImg(https://segmentfault.com/img/bVbaJOL?w=1200&h=514); 張泉靈說,時代拋棄我們的時候連聲再見都不會說,馬云說對于新興事物,絕大多數(shù)人是看不見、看不起、看不懂、來不及。自從學(xué)完 Coursera 上的 Crypto...

    sean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<