使用Brigade在Kubernetes中构建自己的无服务器平台

微软正在做大量工作,以确保容器不仅在Azure上而且在任何云上都是一流的公民。 这项工作的一部分是其不断壮大的工具系列,以帮助管理在开源Kubernetes容器编排平台上运行的工作负载,并通过收购Deis以及其Helm和Draft工具加快了工作。 最近, Brigade加入了它们, Brigade是一种基于JavaScript的工具,用于构建和管理在Kubernetes上运行的工作流。

通过代码的Kubernetes:分布式管道

人们经常将Kubernetes视为用于托管和管理大型分布式应用程序,封送容器托管的微服务,处理资源以及管理扩展的工具。 但这比它更灵活。 Kubernetes对于实例化和运行小型应用程序或一次性功能也是理想的选择。 也许您想使用它来托管用于连续集成/连续交付(CI / CD)管道的测试支架,或响应来自业务线应用程序或机器学习系统的特定消息。

[您准备好入侵容器了吗? 了解如何使用Kubernetes入门 •到底什么是Kubernetes | 通过InfoWorld的云计算新闻通讯了解云计算的最新发展。 ]

在Kubernetes上组合一个小型应用程序并不是特别容易。 它与构建用于运行更大的应用程序的框架所需的工作量相同,包括编写管理代码和容器所需的YAML。 但是并不是所有代码都需要工作,有些是因为它是一种旨在尝试新想法的快速hack,有些是因为它只打算很少运行,或者有些是因为它承载仅在运行时才需要的一组测试。构建。

我们大多数人都喜欢编写代码而不是配置文件。 命令式编程的某些功能使它比使用声明式语句更易于理解和调试。 Brigade旨在采用这种命令性方法来构建Kubernetes应用程序,将容器组合在一起并在它们之间传递数据。

Brigade应用程序是管道,这是一种常见的分布式计算模式,它将容器视为可以串行或并行运行的独立作业。 Brigade JavaScript处理管道的操作方式,在作业之间传递数据,并整理并行任务和管道任务。 从本质上讲,它是一个工作流引擎,具有使用Docker容器作为操作的基本语法,所有语法均使用熟悉JavaScript编写。

尽管人们经常将分布式应用程序开发视为构建和管理大型可伸缩应用程序的一种方式,但底层概念对于可以分解为小组件的任何应用程序都适用,尤其是元素可以并行运行时。 Brigade管道可用于处理任何云应用程序平台的重要部分,批处理大量数据,处理ETL任务,甚至管理您的devops环境和服务。

使用旅去无服务器

如果您正在运行Kubernetes集群,则可以使用Brigade来构建和运行自己的无服务器应用程序。 通过触发Brigade管道,您可以启动一系列事先定义和设置的容器,并将结果从一个容器托管的作业传递到下一个容器。

无服务器应用程序不仅仅是您从Azure FunctionsAWS Lambdas所熟悉的功能即服务方法。 使用Brigade,它们可以变得更强大,可以托管运行复杂应用程序的完整容器,这些应用程序会在需要时启动,直到需要时才空转,从而几乎不使用或不使用计算,仅使用少量的存储。 该模型非常适合公共云的经济性, 利用了每秒计帐的计算成本和每千兆字节的存储成本。

[开发人员指南: 无服务器:AWS,Google Cloud和Microsoft Azure | 然后学习如何使用Microsoft的Azure功能以及如何使用AWS Lambda进行无服务器计算。 ]

开始使用Brigade

Brigade入门非常容易,因为在Kubernetes中只需一行命令即可安装本机Brigade服务。 它可以在任何Kubernetes系统上运行:本地开发微型库,私有云或超大规模公共云。 而且由于它是本地Kubernetes代码,因此没有对Azure的锁定,从而使您可以选择在多云部署中使用Brigade。 脚本编写的作业和容器将在任何Kubernetes安装上运行,并根据需要从Docker存储库中提取。

Brigade项目可以包含多个管道,使用JavaScript配置文件定义管道和任务。 他们并不需要只处理容器。 您可以使用它们与任何RESTful API配合使用,让您的代码与Slack或Teams之类的服务进行交互,从而Swift地从devop变为chatops。 请求可以来自任何服务,因此您可以使用已知的API或通过内置的Brigadier网关使用webhooks。 另外,您可以编写自己的网关来处理例如使用CloudEvents派生的事件(使用适当的库)。

使用Helm图表创建新项目。 尽管Brigade的目标之一是避免使用YAML,但您确实需要使用它来设置基本项目配置,以管理集群上的安装,以传递机密和令牌。 开发团队还提供了一个称为Brig的命令行工具,可帮助您测试脚本和配置服务器。

旅队的管道在概念上非常简单 。 它们首先从基础Brigadier服务导入关键对象,该服务提供事件侦听器并链接到Kubernetes。 鳕鱼的主要元素是事件处理程序,它包装了您的管道代码。 触发偶数后,代码将运行,并且您的管道报告已完成。 代码本身包含一系列作业,每个作业都是一个Docker映像。 您可以从图库中提取图片,也可以使用自己的自定义图片。 然后可以为每个作业分配任务,这些任务是在映像内运行的一系列命令。

可以将作业分组以使用Brigade的group命令并行运行,也可以将其依次串行运行。 使用基本的分组功能,没有流控制,因此管道继续运行,在分组作业完成之前启动后续作业。

您可以使用JavaScript功能将控制添加到代码中。 每个作业或一组作业都可以使用promise构造,以利用JavaScript异步操作来确保顺序操作。 一旦所有任务完成并且管道中的作业被标记为成功,Kubernetes主机将拆除Brigade管道并丢弃作业容器,直到下一次运行。

与准将交朋友

尽管Brigade的大部分工作都集中在处理容器上,但是您仍然需要一种方法来查看其工作方式。 那就是Kashti进来的地方,提供了Brigade行动的仪表板。 使用Kashti,您可以配置和管理日志,并将其用作所有管道的控制台。 可以跟踪和可视化输出,不仅可以添加报告层,还可以添加对Brigade脚本的深入了解,您需要对这些脚本进行测试和调试。

您可以使用Kubernetes做很多事情,尤其是在Azure和竞争服务上使用托管Kubernetes服务时。 诸如Helm,Draft以及现在的Brigade之类的应用程序以使操作平台对开发人员更加友好的方式扩展了Kubernetes,值得将它们添加到Kubernetes工具箱中。

From: https://www.infoworld.com/article/3291792/build-your-own-serverless-platform-in-kubernetes-with-brigade.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值