日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
六大容器管道大比拼:配置、優(yōu)勢(shì)、局限性和價(jià)格

六大容器管道大比拼:配置、優(yōu)勢(shì)、局限性和價(jià)格

譯文
作者:陳峻編譯 2020-04-13 09:00:26

云計(jì)算 在本文中,我們將為您選擇:Heroku、Azure DevOps、Beanstalk、Gitlab CI/CD、JenkinsX六個(gè)容器管道,討論并比較它們的配置、優(yōu)勢(shì)、局限性和價(jià)格。

【51CTO.com快譯】眾所周知,隨著DevOps帶來(lái)了巨大的轉(zhuǎn)變,容器讓開(kāi)發(fā)團(tuán)隊(duì)能夠以前所未有的速度交付出程序代碼。當(dāng)然,我們?nèi)匀恍枰瓿蓸?gòu)建、包裝和部署容器的過(guò)程。這就是為什么我們要使用容器管道(container pipelines)的原因。

[[321441]]

如今,業(yè)界有著許多在容器管道方面的選擇,到底哪一款會(huì)適合您和您手頭項(xiàng)目呢?在本文中,我們將為您選擇六個(gè)容器管道,討論并比較它們的配置、優(yōu)勢(shì)、局限性和價(jià)格。

什么是容器管道?

首先,讓我們討論一下容器管道的真正含義。管道有助于自動(dòng)化軟件開(kāi)發(fā)過(guò)程中的各個(gè)階段,尤其是持續(xù)集成和持續(xù)交付(CI/CD)階段。從最初構(gòu)建初始鏡像,到部署至生產(chǎn)環(huán)境的過(guò)程中,容器管道能夠使得容器的每個(gè)階段都實(shí)現(xiàn)自動(dòng)化。也就是說(shuō),整個(gè)容器管道通常包括三個(gè)階段:

  • 集成:將更改簽入源代碼的管理之中,從而觸發(fā)構(gòu)建過(guò)程和單元測(cè)試。
  • 驗(yàn)收測(cè)試:將容器部署到測(cè)試環(huán)境并驗(yàn)證其功能。
  • 部署:將完成了全面測(cè)試的最終鏡像部署到生產(chǎn)環(huán)境中。

目前,各種容器管道工具之間雖然有所差異,但通常會(huì)包括上述二到三個(gè)階段。下面,我們來(lái)具體討論其中最常見(jiàn)的六種容器管道:

1. Heroku

Heroku是一個(gè)利用Docker的完整容器管道。您可以在同一個(gè)平臺(tái)上構(gòu)建,測(cè)試,驗(yàn)證和部署各種容器,而無(wú)需額外配置硬件,或利用不同的服務(wù)提供者。

配置

Heroku應(yīng)用程序使用heroku.yml(https://devcenter.heroku.com/articles/build-docker-images-heroku-yml)清單來(lái)進(jìn)行配置。該清單定義了構(gòu)建和部署容器所需的各個(gè)步驟。如下是一個(gè)帶有自定義Dockerfile應(yīng)用程序的清單示例:

  
 
 
 
  1. Dockerfile  
  2. build:  
  3. docker:  
  4. web: Dockerfile 

如您需要使用Git來(lái)部署該容器(https://devcenter.heroku.com/articles/git),只需運(yùn)行如下命令:

  
 
 
 
  1. $ heroku stack:set container  
  2. $ git add heroku.yml  
  3. $ git commit -m "Add heroku.yml"  
  4. $ git push heroku master 

由于支持管道,Heroku允許您將容器部署到多個(gè)不同的環(huán)境中,以反映持續(xù)交付工作流程中的各個(gè)階段。例如:您可以在部署到生產(chǎn)環(huán)境之前,使用管道來(lái)測(cè)試登臺(tái)(staging)環(huán)境中的更改。

優(yōu)勢(shì)和局限性

Heroku非常易于使用,整個(gè)管道只需一個(gè)YAML文件即可。由于受到全面的管理,它為測(cè)試和部署的更改提供了多種環(huán)境。您甚至可以在部署不當(dāng)?shù)那闆r下,實(shí)現(xiàn)更改的回滾。

當(dāng)然,并非所有Heroku的功能都能夠支持Docker部署。例如:您就不能夠使用Heroku CI來(lái)運(yùn)行應(yīng)用程序的測(cè)試套件。這意味著:要么在構(gòu)建鏡像時(shí)運(yùn)行測(cè)試套件,要么使用多階段的構(gòu)建。而且您也不能使用pipeline promotions,將容器從一個(gè)管道階段升級(jí)到下一個(gè)階段。相反,您必須將容器重新部署到目標(biāo)階段。

價(jià)格

Heroku提供了一項(xiàng)免費(fèi)計(jì)劃,其中包括:一個(gè)每月有1,000個(gè)免費(fèi)運(yùn)行時(shí)間的Web dyno和worker dyno。而其付費(fèi)計(jì)劃的起價(jià)為:每月每個(gè)運(yùn)行時(shí)間dyno 7美元,并包含諸如更大容量的dyno和改進(jìn)的可擴(kuò)展性等功能。您若想了解更多Heroku的定價(jià)信息,請(qǐng)參見(jiàn)。

我的觀點(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è)階段,而且提供了許多特定于容器的高級(jí)功能。其中包括:私有容器注冊(cè)表、以及與Azure Kubernetes Service(AKS)的集成。同時(shí),Azure Pipelines提供了平臺(tái)式的CI/CD服務(wù)。

配置

您可以使用基于Web的用戶界面,來(lái)管理所有Azure DevOps。當(dāng)然,您也可以通過(guò)已簽入的應(yīng)用源碼和基于YAML的清單,來(lái)配置Azure Pipelines。其Web UI使您可以管理和跟蹤部署環(huán)境、發(fā)行版本、以及工件(artifact)等。

優(yōu)勢(shì)和局限性

如果您的團(tuán)隊(duì)正在使用Azure,那么Azure DevOps則是您現(xiàn)有工作流程的自然擴(kuò)展。它既支持托管和本地安裝,又支持包括Azure App Service、Kubernetes和Azure Functions在內(nèi)的多個(gè)Azure目標(biāo)的部署。

不過(guò),Azure DevOps與包括Azure在內(nèi)的其他服務(wù)并不容易集成。在配置集成時(shí),您甚至需要從Azure容器注冊(cè)表等服務(wù)中,去復(fù)制與粘貼值。此類設(shè)置不但麻煩而且效率低下。

價(jià)格

Azure Pipelines提供了一個(gè)免費(fèi)層,其中包含一個(gè)每月1800分鐘的免費(fèi)并發(fā)CI/CD作業(yè)。其他“作業(yè)”的費(fèi)用為40美元,而托管工件(如鏡像)的費(fèi)用則為每月每GB 2美元。當(dāng)然,那些Azure Boards之類的增值服務(wù)也會(huì)按月收費(fèi)。您若想了解更多Azure DevOps Services的定價(jià)信息,請(qǐng)參見(jiàn)。

我的觀點(diǎn)

Azure DevOps非常適合需要一站式DevOps管理解決方案、或已經(jīng)使用了Azure的團(tuán)隊(duì)。它通過(guò)集中到一處,極大地簡(jiǎn)化了開(kāi)發(fā)的生命周期。不過(guò),它對(duì)于那些只需要基本容器管道的團(tuán)隊(duì)來(lái)說(shuō),可能過(guò)于復(fù)雜了一些。

3. GitLab CI/CD

GitLab源于一個(gè)開(kāi)源的SCM,不過(guò)它很快發(fā)展成為了一個(gè)完整的DevOps管理解決方案。與Azure DevOps類似,它提供的功能包括:項(xiàng)目管理、私有容器注冊(cè)表、以及包括Kubernetes在內(nèi)的一個(gè)精心構(gòu)建的環(huán)境。

配置

GitLab CI/CD由GitLab Runner所驅(qū)動(dòng),能夠在自包含的環(huán)境中,執(zhí)行CI/CD管道中的每個(gè)步驟。它通過(guò)gitlab-ci.yml清單來(lái)完成配置。該清單支持包括條件邏輯、以及導(dǎo)入其他清單在內(nèi)的高級(jí)配置。

另外,您也可以使用Auto DevOps,在無(wú)需配置的情況下實(shí)現(xiàn)整個(gè)管道的自動(dòng)化。通過(guò)Herokuish,GitLab使用Heroku buildpacks并基于源代碼(如Dockerfile)來(lái)自動(dòng)確定如何構(gòu)建應(yīng)用程序。Auto DevOps可以自動(dòng)運(yùn)行單元測(cè)試,執(zhí)行代碼質(zhì)量分析,以及通過(guò)掃描圖像來(lái)查看安全性問(wèn)題。

GitLab使用dpl工具進(jìn)行部署。該工具支持包括云平臺(tái)和Kubernetes集群在內(nèi)的各種提供者。

優(yōu)勢(shì)和局限性

通過(guò)GitLab提供的非常靈活的管道,您既可以自行配置,又可以使用內(nèi)置工具實(shí)現(xiàn)完全自動(dòng)化。其YAML配置允許更大范圍的項(xiàng)目結(jié)構(gòu)和步驟,例如:創(chuàng)建項(xiàng)目依賴項(xiàng),以及組合來(lái)自不同項(xiàng)目的多個(gè)管道。由于GitLab使用的是諸如Herokuish和dpl之類的開(kāi)源工具,因此它支持廣泛的項(xiàng)目類型、語(yǔ)言和部署目標(biāo)。

盡管GitLab可以將Runners和工件部署到現(xiàn)有的環(huán)境中,但它本身無(wú)法配置或維護(hù)這些環(huán)境(當(dāng)然,Google Kubernetes Engine和Amazon Elastic Kubernetes Service除外)。而且,它還缺少圖形化的管道配置工具,無(wú)法像使用Azure Pipelines那樣直觀。

價(jià)格

GitLab使用開(kāi)放的內(nèi)核模型:它提供了一個(gè)開(kāi)源的基本版本和一個(gè)帶有附加功能的付費(fèi)企業(yè)版。付費(fèi)版的定價(jià)從每位用戶每月4到99美元不等。這種定價(jià)機(jī)制是基于用戶數(shù)量的。它劃歸了每月可運(yùn)行CI管道的分鐘,以及對(duì)于某些功能的訪問(wèn)權(quán)。當(dāng)然,所有版本都包括了無(wú)限的代碼存儲(chǔ)庫(kù),項(xiàng)目計(jì)劃工具、以及每月2,000分鐘的免費(fèi)管道時(shí)間。

我的觀點(diǎn)

GitLab是一種功能強(qiáng)大的CI/CD工具。在功能的豐富程度上,其開(kāi)源版本足以與許多商業(yè)工具相媲美,而且它還支持托管。不過(guò),它需要您維護(hù)一個(gè)單獨(dú)的部署環(huán)境。

4. AWS Elastic Beanstalk

Elastic Beanstalk不再是簡(jiǎn)單的管道,而是更多用于編排的AWS資源工具。它可以實(shí)現(xiàn)自動(dòng)設(shè)置,負(fù)載均衡,擴(kuò)展與監(jiān)視包括ECS容器、S3存儲(chǔ)桶和EC2實(shí)例在內(nèi)的各種資源。您可以根據(jù)自己的特定需求,在AWS內(nèi)創(chuàng)建一個(gè)完全自定義的管道。

配置

Beanstalk的配置描述了如何部署容器,以及部署該容器的環(huán)境。這恰恰是在Dockerrun.aws.json文件中被定義的。此外,Beanstalk也引入了一些獨(dú)特的概念,例如:

  • 應(yīng)用程序:包括環(huán)境和版本在內(nèi)的Beanstalk組件的邏輯集合。
  • 應(yīng)用版本:易于部署的源代碼版本。
  • 環(huán)境:運(yùn)行應(yīng)用程序版本所需的一組AWS資源。

優(yōu)勢(shì)和局限性

Beanstalk是一個(gè)非常強(qiáng)大的工具。它不僅適用于Docker,也適用于AWS。它通過(guò)提供自動(dòng)擴(kuò)展,滾動(dòng)更新,監(jiān)視和發(fā)布管理等服務(wù),以便用戶可以直接訪問(wèn)和管理資源。

但是,Beanstalk比普通管道更加復(fù)雜。除非您使用的是單個(gè)容器環(huán)境,并且能夠?qū)⑷萜鞯陌姹九c環(huán)境緊密耦合,否則您需要在鏡像存儲(chǔ)庫(kù)中預(yù)構(gòu)建和托管各種Docker鏡像。而且,您只能通過(guò)Beanstalk CLI觸發(fā)相關(guān)更新。因此,如果容器失敗的話,您需要使用Beanstalk控制臺(tái)來(lái)手動(dòng)予以解決。

價(jià)格

Beanstalk本身是免費(fèi)的,但是它提供的AWS組件則按照正常的價(jià)格收費(fèi)。例如:如果您使用ECS節(jié)點(diǎn)和ELB負(fù)載平衡器來(lái)配置環(huán)境,那么節(jié)點(diǎn)和負(fù)載平衡器都會(huì)根據(jù)您的正常配置予以收費(fèi)。

我的觀點(diǎn)

依靠大量可用的AWS服務(wù),Beanstalk提供了一種管理所有服務(wù)的有效方法。作為編排工具時(shí),它功能雖然非常強(qiáng)大;但是用作容器管道時(shí),則配置過(guò)于復(fù)雜。

5. Google Cloud Build

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

配置

Cloud Build是通過(guò)cloudbuild.yaml或JSON文件配置的。您可以定義構(gòu)建鏡像的過(guò)程以及存儲(chǔ)結(jié)果鏡像的位置。例如:您可以構(gòu)建Docker鏡像,并通過(guò)如下簡(jiǎn)單命令,將其推送到Google容器存儲(chǔ)器中:

  
 
 
 
  1. name: gcr.io/cloud-builders/docker 
  2. args: ['build', '-t', 'gcr.io/$PROJECT_ID/myimage', '.'] 
  3. images: ['gcr.io/$PROJECT_ID/myimage'] 

同時(shí),Cloud Build也支持觸發(fā)器,以根據(jù)源代碼的更改自動(dòng)啟動(dòng)構(gòu)建過(guò)程。

優(yōu)勢(shì)和局限性

Cloud Build可與其他GCP服務(wù)巧妙地集成到一起,其中包括:GKE、App Engine和Cloud Run。您可以直接控制構(gòu)建主機(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也并不提供可視化的管道配置工具。

價(jià)格

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

我的觀點(diǎn)

Cloud Build的主要優(yōu)勢(shì)在于簡(jiǎn)單、快速、易學(xué)、便宜、并且能與其他GCP服務(wù)進(jìn)行良好的集成。如果您已經(jīng)有了一個(gè)部署環(huán)境,或者已經(jīng)使用到了GCP,那么建議您試用一下Cloud Build。

6. Jenkins X

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

配置

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

優(yōu)勢(shì)和局限性

Jenkins X通過(guò)兩大流行的現(xiàn)有項(xiàng)目-Jenkins和Kubernetes,來(lái)創(chuàng)建可擴(kuò)展的CI/CD平臺(tái)。它可以自動(dòng)化整個(gè)CI/CD管道,并支持預(yù)覽環(huán)境和管道升級(jí)。由于包含了Jenkins,因此它可以訪問(wèn)Jenkins開(kāi)發(fā)人員的整個(gè)社區(qū)。

不過(guò)值得一提的是,由于Jenkins X需要Kubernetes,因此會(huì)涉及到配置集群等問(wèn)題。當(dāng)然,其命令行工具可以自動(dòng)化執(zhí)行此過(guò)程中的大部分操作。

價(jià)格

Jenkins X是開(kāi)源的。

我的觀點(diǎn)

對(duì)于使用Jenkins的團(tuán)隊(duì)來(lái)說(shuō),Jenkins X是順理成章之事。雖然有著一些嚴(yán)格的限制和要求,但是對(duì)于使用Kubernetes的團(tuán)隊(duì)來(lái)說(shuō),它可以通過(guò)根據(jù)現(xiàn)有的基礎(chǔ)架構(gòu)實(shí)現(xiàn)原生的集成。

總結(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ù)雜要求團(tuán)隊(duì)的首選。
  • 對(duì)于容器CI而言,GitLab具有廣泛的功能,可謂最全面的選擇。
  • 除了基本功能,Auto DevOps還具有開(kāi)放的內(nèi)核模型。
  • Google Cloud Build能夠利用Google Cloud Platform的效率和容量進(jìn)行快速的構(gòu)建。
  • Jenkins X主要受益于Jenkins項(xiàng)目。

由于這些服務(wù)大多數(shù)都是開(kāi)源的、或提供免費(fèi)試用版本,因此您可以通過(guò)試用,找到最適合自己工作流程的一種容器管道。

原文標(biāo)題:Comparing Container Pipelines,作者:Michael Bogan

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】


本文標(biāo)題:六大容器管道大比拼:配置、優(yōu)勢(shì)、局限性和價(jià)格
URL分享:http://m.5511xx.com/article/cohspeh.html