久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

容器管道Heroku,Azure DevOps,,Beanstalk,,Gitlab CI/CD和Jen...

 黃爸爸好 2020-04-21
在本文中,我們將會(huì)討論了六個(gè)容器管道的優(yōu)缺點(diǎn),,包括Heroku,,Azure DevOps,Beanstalk,,Gitlab CI/CD,,JenkinsX,。

前言

容器能夠使團(tuán)隊(duì)以前所未有的速度部署交付應(yīng)用代碼,從而為DevOps帶來了巨大的便利,。但是,,我們?nèi)匀恍枰獙?duì)容器進(jìn)行構(gòu)建,打包和部署,。為了完成它,,我們就需要使用容器管道。
在容器管道方面有許多不同的選擇,。我們?nèi)绾沃酪褂媚膫€(gè),?在本文中,我們將比較Heroku,,Azure DevOps,,Beanstalk,Gitlab CI/CD,,JenkinsX,,并介紹下每個(gè)容器管道的配置,優(yōu)勢(shì),,限制和費(fèi)用,。

什么是容器管道?

首先,,讓我們討論一下容器管道的真正含義,。管道有助于軟件開發(fā)過程中的各個(gè)階段趨于自動(dòng)化,尤其是持續(xù)集成和持續(xù)交付(CI/CD),。容器管道使的容器部署過程中的每個(gè)階段自動(dòng)化,,從構(gòu)建鏡像到部署生產(chǎn)環(huán)境。通常,,整個(gè)容器管道包括三個(gè)階段:
  1. 集成:代碼提交,,從而觸發(fā)構(gòu)建和單元測(cè)試。
  2. 驗(yàn)收測(cè)試:將容器部署到測(cè)試環(huán)境并驗(yàn)證其功能,。
  3. 部署:將經(jīng)過全面測(cè)試的最終鏡像部署到生產(chǎn)中,。

容器管道對(duì)比

1. Heroku

Heroku 是基于Docker的容器管道。你可以在同一平臺(tái)上構(gòu)建,,測(cè)試,,驗(yàn)證和部署容器,而無需配置硬件或利用其他的服務(wù)提供商,。

配置

Heroku應(yīng)用程序使用heroku.yml清單進(jìn)行配置,,該清單定義了構(gòu)建和部署容器所需的步驟。如下所示:
build: docker: web: Dockerfile
如果使用Git部署容器,,只需運(yùn)行:
$ heroku stack:set container$ git add heroku.yml$ git commit -m 'Add heroku.yml'$ git push heroku master
Heroku也支持管道,,使你可以將容器部署到多個(gè)環(huán)境,并可以體現(xiàn)交付工作流程中的各個(gè)階段的執(zhí)行步驟,。

好處和局限性

Heroku非常易于使用,,整個(gè)管道只需要一個(gè)YAML文件。它可以受到完全管理,,為測(cè)試和部署提供了多種環(huán)境,,甚至在部署不當(dāng)?shù)那闆r下,還可以回滾更改,。
但是,,并非所有Heroku的功能都支持Docker部署。例如,,你不能使用Heroku CI來運(yùn)行應(yīng)用程序的測(cè)試組件,,這意味著要么在構(gòu)建鏡像時(shí)運(yùn)行測(cè)試組件,要么使用多階段構(gòu)建,。你也不能使用 pipeline promotions 將容器從一個(gè)管道階段升級(jí)到下一個(gè)階段,。相反,你必須將容器重新部署,,以達(dá)到目標(biāo)階段,。

費(fèi)用

Heroku 提供了一項(xiàng)免費(fèi)計(jì)劃,一個(gè)Web dyno和一個(gè)worker dyno每月有1,000小時(shí)的免費(fèi)運(yùn)行時(shí)間,。付費(fèi)計(jì)劃的起價(jià)為每月每個(gè)dyno 7美元,,并提供其他功能,例如更大容量的dynos和已改進(jìn)的可伸縮性,。有關(guān)更多信息,,請(qǐng)參見Heroku的定價(jià)頁面。

個(gè)人觀點(diǎn)

Heroku是一個(gè)非常簡(jiǎn)單且經(jīng)濟(jì)高效的容器管道解決方案,。它提供了完全托管的環(huán)境,,使你可以完全控制CI/CD流程。有免費(fèi)標(biāo)準(zhǔn)支持,,值得嘗試,。

2. Azure DevOps

Azure DevOps是Microsoft的用于項(xiàng)目管理,源代碼管理(SCM)和CI/CD的服務(wù),。它使你可以控制DevOps生命周期的幾乎每個(gè)階段,,同時(shí)提供容器許多的高級(jí)功能,包括私有容器注冊(cè)以及與Azure Kubernetes Service(AKS)的集成,。Azure Pipelines提供了平臺(tái)的CI/CD服務(wù),。

配置

可以使用Web界面來管理所有Azure DevOps,也可以使用YAML文件來配置Azure Pipelines,。Web UI使你可以管理和跟蹤部署環(huán)境以及發(fā)行版等,。

好處和局限性

如果你的團(tuán)隊(duì)已經(jīng)使用Azure,,那么Azure DevOps是你現(xiàn)有工作流程的自然擴(kuò)展。它支持托管和本地安裝,,還支持許多Azure部署,,包括Azure App Service,Kubernetes和Azure Functions,。
但是,,與其他服務(wù)(包括Azure服務(wù))集成并非易事。在Azure DevOps中,,即使你使用Azure容器注冊(cè)之類的服務(wù),,也需要你復(fù)制和粘貼值,使得設(shè)置變得困難,。

費(fèi)用

Azure Pipelines提供了一個(gè)免費(fèi)服務(wù),,其中包含一個(gè)免費(fèi)的并發(fā)CI/CD作業(yè),每月1800分鐘,。額外的工作費(fèi)用為40美元,,托管(如鏡像)的費(fèi)用為每月每GB 2美元。若要了解更多信息,,請(qǐng)?jiān)L問Azure DevOps Services定價(jià)頁面,。

個(gè)人觀點(diǎn)

Azure DevOps非常適合需要一體化DevOps解決方案,或已經(jīng)使用Azure的團(tuán)隊(duì),。通過將其集中在一個(gè)位置中,,極大地簡(jiǎn)化了開發(fā)生命周期。但是,,建立起來可能很困難,,并且對(duì)于只需要基本容器管道的團(tuán)隊(duì)來說可能過于復(fù)雜。

3. GitLab CI/CD

GitLab 從開源SCM開始,,但很快發(fā)展成為完整的DevOps解決方案,。與Azure DevOps一樣,它提供的功能包括項(xiàng)目管理,,私有容器注冊(cè)和構(gòu)建環(huán)境(包括Kubernetes),。

配置

GitLab CI/CD由GitLab Runner驅(qū)動(dòng),在自包含的環(huán)境中執(zhí)行CI/CD管道中的每個(gè)步驟,??梢酝ㄟ^gitlab-ci.yml清單完成CI/CD配置,該清單支持一些高級(jí)配置,,包括邏輯條件運(yùn)算和導(dǎo)入其他清單,。
或者,你可以使用Auto DevOps無需配置即可自動(dòng)化整個(gè)管道。GitLab使用Heroku buildpacks(通過Herokuish)基于源代碼(在本例中為Dockerfile)自動(dòng)構(gòu)建應(yīng)用程序,。Auto DevOps可以自動(dòng)運(yùn)行單元測(cè)試,,執(zhí)行代碼質(zhì)量分析以及掃描鏡像以查看安全性問題。
對(duì)于部署,,GitLab使用dpl工具,,該工具支持各種提供商,包括云平臺(tái)和Kubernetes集群,。

好處和局限性

GitLab提供了非常靈活的管道,你可以自行配置,,也可以使用內(nèi)置工具實(shí)現(xiàn)完全自動(dòng)化,。YAML配置可以更為靈活,例如創(chuàng)建項(xiàng)目依賴項(xiàng)以及組合來自不同項(xiàng)目的多個(gè)管道,。由于GitLab使用現(xiàn)有的開源工具,,例如Herokuish和dpl,因此它支持很多的項(xiàng)目類型,,開發(fā)語言和應(yīng)用部署,。
盡管GitLab可以將Runners部署到現(xiàn)有環(huán)境中,但它本身無法維護(hù)這些環(huán)境(Google Kubernetes Engine和Amazon Elastic Kubernetes Service除外),。它還缺少像Azure Pipelines圖形化的管道配置工具,。

費(fèi)用

GitLab提供了一個(gè)開放源代碼的基本版本和一個(gè)具有附加功能的企業(yè)付費(fèi)版。對(duì)于付費(fèi)計(jì)劃,,定價(jià)基于用戶數(shù)量,,每月運(yùn)行CI管道所花費(fèi)的分鐘數(shù)以及對(duì)某些功能的訪問權(quán)限來劃分。所有計(jì)劃都包括無限容量的代碼存儲(chǔ)庫(kù),,項(xiàng)目計(jì)劃工具以及每月2,000分鐘的免費(fèi)管道分鐘,。價(jià)格從每位用戶每月4美元到每位用戶每月99美元不等。

個(gè)人觀點(diǎn)

GitLab是一種功能強(qiáng)大的CI/CD工具,,具有極為有用的功能,。開源版本功能豐富,足以與許多商業(yè)選擇競(jìng)爭(zhēng),,同時(shí)還讓你自托管,。但是,它確實(shí)需要你維護(hù)單獨(dú)的部署環(huán)境,。

4. AWS Elastic Beanstalk

Elastic Beanstalk不僅僅是管道,,還可以用于編排AWS資源的工具。它可以自動(dòng)設(shè)置,,負(fù)載均衡,,擴(kuò)展和監(jiān)視資源,例如ECS容器,,S3存儲(chǔ)桶和EC2實(shí)例,。這使你可以根據(jù)自己的特定需求在AWS內(nèi)創(chuàng)建一個(gè)完全自定義的管道,。

配置

Beanstalk配置描述了如何部署容器以及部署該容器的環(huán)境。這是在Dockerrun.aws.json文件中定義的,。Beanstalk引入了獨(dú)特的概念,,例如:
  • 應(yīng)用程序:Beanstalk組件(如環(huán)境和版本)的邏輯集合。
  • 應(yīng)用程序版本:代碼部署版本,。
  • 環(huán)境:應(yīng)用程序運(yùn)行所需的一組AWS資源,。

好處和局限性

Beanstalk是一個(gè)非常強(qiáng)大的工具,不僅適用于Docker,,而且適用于AWS,。它提供自動(dòng)伸縮,滾動(dòng)更新,,監(jiān)控和發(fā)布管理,。它還使你可以直接訪問和管理資源。
但是,,Beanstalk比普通管道更復(fù)雜,。除非你使用單個(gè)容器環(huán)境,并且容器版本與環(huán)境緊密耦合,,否則你需要在鏡像倉(cāng)庫(kù)中預(yù)構(gòu)建和托管Docker鏡像,。你只能通過Beanstalk CLI觸發(fā)更新。因此,,如果容器失敗,,則需要使用Beanstalk控制臺(tái)手動(dòng)解決它。

費(fèi)用

Beanstalk本身是免費(fèi)的,,但是它提供的AWS組件按正常價(jià)格定價(jià),。例如,如果你使用ECS節(jié)點(diǎn)和ELB負(fù)載平衡器配置環(huán)境,,則將向該節(jié)點(diǎn)和負(fù)載平衡器收費(fèi),,就像你正常配置它們一樣。

個(gè)人觀點(diǎn)

有了大量可用的AWS服務(wù),,Beanstalk提供了一種管理所有服務(wù)的好方法,。當(dāng)用作編排工具時(shí),它可能非常強(qiáng)大,,但用作容器管道可能太復(fù)雜了,。

5. Google Cloud Build

Cloud Build是基于Google Cloud Platform(GCP)構(gòu)建的容器CI服務(wù)。它可以直接從源代碼或Dockerfile構(gòu)建鏡像,,并直接部署到GKE,,Cloud Run和其他GCP服務(wù)。

配置

Cloud Build是通過cloudbuild.yaml(或JSON)文件配置的。你可以定義構(gòu)建鏡像的過程以及存儲(chǔ)鏡像的位置,。例如,,構(gòu)建Docker鏡像并將其推送到Google Container Registry就像運(yùn)行以下命令一樣簡(jiǎn)單:
name: gcr.io/cloud-builders/dockerargs: ['build', '-t', 'gcr.io/$PROJECT_ID/myimage', '.']images: ['gcr.io/$PROJECT_ID/myimage']
Cloud Build支持觸發(fā)器,觸發(fā)器會(huì)根據(jù)對(duì)源代碼的更改自動(dòng)啟動(dòng)構(gòu)建,。

好處和局限性

Cloud Build 與其他GCP服務(wù)巧妙地集成在一起,,包括GKE,App Engine和Cloud Run,。你可以直接控制構(gòu)建計(jì)算機(jī)的大小和容量,,以及鏡像緩存層以加快構(gòu)建速度。你還可以運(yùn)行本地構(gòu)建以驗(yàn)證或調(diào)試構(gòu)建,,然后再推送到Cloud Run,。
由于Cloud Build是圍繞GCP構(gòu)建的,因此它僅支持有限數(shù)量的部署目標(biāo),。可以將容器部署到其他平臺(tái),,但是需要其他步驟,。此外,像GitLab一樣,,Cloud Build也沒有可視化的管道配置工具,。

費(fèi)用

定價(jià)基于構(gòu)建機(jī)器的大小和構(gòu)建時(shí)間。標(biāo)準(zhǔn)n1-standard-1實(shí)例每構(gòu)建分鐘的成本為0.003美元,,在n1-highcpu-32實(shí)例上最高為0.064美元,。在n1-standard-1實(shí)例上,你每天還可以獲得120分鐘的免費(fèi)構(gòu)建時(shí)間,。

個(gè)人觀點(diǎn)

Cloud Build相對(duì)簡(jiǎn)單,,但這也是其優(yōu)勢(shì)之一。它快速,,易學(xué),,相當(dāng)便宜,并且與其他GCP服務(wù)良好集成,。如果你已經(jīng)有一個(gè)部署環(huán)境,,或者已經(jīng)使用了GCP,建議你嘗試一下,。

6.Jenkins X

Jenkins是最流行的CI/CD工具之一,,Jenkins X通過添加全面的Kubernetes集成進(jìn)一步擴(kuò)展了它。Jenkins X不僅可以部署到Kubernetes,,還可以為你配置和管理Kubernetes集群,。

配置

Jenkins X Pipelines建立在Tekton Pipelines之上,該管道有助于在Kubernetes上運(yùn)行CI/CD管道。你可以使用jenkins-x.yml文件配置管道,。Jenkins X還提供了構(gòu)建包,,可以幫助將源代碼打包到鏡像中,然后將其部署到Kubernetes,。

好處和局限性

Jenkins X利用兩個(gè)流行的現(xiàn)有項(xiàng)目-Jenkins和Kubernetes-創(chuàng)建可擴(kuò)展的CI/CD平臺(tái),。它可以使整個(gè)CI/CD管道自動(dòng)化,并支持預(yù)覽環(huán)境和管道升級(jí),。因?yàn)樗↗enkins,,所以它可以訪問Jenkins開發(fā)人員的整個(gè)社區(qū)。
但是,,Jenkins X需要Kubernetes,,對(duì)于如何配置集群有一定的規(guī)范。命令行工具可自動(dòng)執(zhí)行此過程的大部分操作,。

費(fèi)用

Jenkins X是開源的,。

個(gè)人觀點(diǎn)

對(duì)于使用Jenkins的團(tuán)隊(duì)來說,Jenkins X會(huì)感覺很自然,。它有一些嚴(yán)格的限制和要求,,但是對(duì)于使用Kubernetes的團(tuán)隊(duì)來說,擁有可以與你的基礎(chǔ)架構(gòu)集成的工具可能會(huì)有所幫助,。

結(jié)論


對(duì)于希望在穩(wěn)定的環(huán)境中簡(jiǎn)單地部署和托管Docker容器的團(tuán)隊(duì)而言,,Heroku很難被擊敗。它提供了一個(gè)快速且可配置的平臺(tái),,支持廣泛的集成,,并擁有龐大的第三方附件市場(chǎng)。
Elastic Beanstalk憑借其協(xié)調(diào)AWS資源的能力緊隨其后,,并且支持很多復(fù)雜場(chǎng)景,。
對(duì)于容器CI,GitLab可以說是最全面的選擇,,它具擁有很多功能,。
Google Cloud Build利用Google Cloud Platform的速度和容量進(jìn)行快速構(gòu)建,并且Jenkins X受益于Jenkins項(xiàng)目,。這些服務(wù)大多數(shù)都是開源的或提供免費(fèi)試用,,因此我們建議你嘗試一下,看看哪種方法最適合你的工作流程,。
譯者:王延飛
原文鏈接:https:///articles/comparing-container-pipelines

END

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多