新的多云:无服务器、应用程序流和自动化

开源云中文社区
面向服务的架构(SOA)是一种软件设计风格,应用程序组件通过网络上的通信协议向其他组件提供服务。SOA服务是一个独立的功能单元,可以远程访问、独立操作和更新,例如在线检索信用卡对账单。SOA还打算独立于供应商、产品和技术。

当人们听到无服务器这个词时,它常常会让人联想到在Amazon Lambda上执行的功能即服务(functions-as-a-service)。但这只是一个方面。顾名思义,它是提供云原生应用程序所需的所有基础设施的抽象。这包括Google Cloud Storage等存储,Azure SQL等数据库,以及Confluent托管版本Apache Kafka提供的分析。

请注意,笔者的例子涉及三个不同的云提供商。这是因为,随着我们走向一个无服务器的世界,我们很可能会采取多云的方法,即从多个提供商那里消费最好的服务。请不要与在多个云提供商的类似基础设施上运行相同的工作负载相混淆。

现在多云还不是常态,但它是20世纪90年代面向服务的架构(SOA)提出的愿景,到2020年,我们离这个目标更近了。

面向服务的架构(SOA)是一种软件设计风格,应用程序组件通过网络上的通信协议向其他组件提供服务。SOA服务是一个独立的功能单元,可以远程访问、独立操作和更新,例如在线检索信用卡对账单。SOA还打算独立于供应商、产品和技术。

其思想是大型软件应用程序可以分解为提供离散功能的服务。这些是“黑盒”服务,底层基础设施从最终用户抽象出来。将服务组合起来作为一个应用程序以一致的方式运行。

微服务和事件驱动架构

随着微服务已经发展成为一种设计模式,我们看到基础设施提供商如谷歌、红帽、Datadog、Twilio、Salesforce和其他提供通用基础设施(如对象存储)和更专业服务(如机器学习和监控)的厂商。理想情况下,在云原生世界中,你应该使用最好的方法组合这些服务来创建应用程序。

那么,这些服务的交互框架是什么呢?事件,事件,事件。事件只是从一个系统到另一个系统的消息,其中一个系统中的更改被传递到另一个系统。例如,当一个数据集上传到对象存储时,机器学习服务可以提供对数据集内容的一些分析。

这些事件在系统之间来回流动,利用一个系统的结果驱动另一个系统。这是一个事件驱动的架构(EDA)。实时流式传输这些事件为应用程序提供数据管道、流式分析和数据集成。共享事件的流行方式是通过流式平台(如Apache Kafka)或消息代理(如Rabbit MQ)来实现。

EDA的趋势正被行业中一些最大的厂商所利用。SAP正在开发Kyma,一个用基于Knative的无服务器功能和微服务扩展应用程序的平台。它提供了一系列“粘在一起”的云原生项目,以简化扩展的创建和管理。Kyma项目支持以下围绕事件的愿景:

——使客户能够插入最适合其需求的消息传递中间件,以及并行运行多个消息传递实现。

——筛选事件并仅传输具有现有订阅(触发器)的事件。

——支持在一个请求中发送多个事件。

Cloud Run for Anths是Google Kubernetes Engine(GKE)上的一个无服务器开发平台,也是由Knative提供的。现在它包含了一个事件特性,允许用户在Google Cloud上运行事件驱动的系统。一些例子包括:

——云存储事件触发数据处理管道。

——每次数据加载完成时,BigQuery审核日志事件都会启动一个进程。 ——云调度程序事件触发批处理作业。与Linux系统上的cronjob不同,它是基于云的。

这些特性正在包含到产品中。这表明,未来将是事件驱动的,并将加速云原生应用程序的自动化。

应用程序流

在这一点上,绝大多数的EDA似乎都被软件的技术基础所吸引。例如,GitHub Actions自动化了CI/CD、构建、测试和部署的软件工作流。另一个例子是AWS EventBridge,它接收来自SaaS(如Zendesk和Auth0)的事件,并将它们路由到AWS服务(如Lambda)。

然而,从长远来看,将云服务连接在一起的能力,并不是只与与笔者所说的一般基础设施(存储、计算和网络)相关,而是更专业化的服务,将提供更强大、更强大的应用程序。例如,TriggerMesh正在寻找在Salesforce和数据湖之间共享数据的方法,并将这些数据通过Elastic进一步分析。或者从GitHub到Twilio/SendGrid,从Azure日志到Splunk,从SonarSource静态代码分析到Kaka转换和过滤事件,并将它们导出为可供谷歌、微软和亚马逊云服务使用的云事件。

总结

我们正进入一个激动人心的时刻。从价格和易用性的角度来看,基础设施从未如此容易访问。微服务是一个云原生代理,面向在单体中使用的软件库。当你把它们结合在一起,你就可以制造应用程序——不仅仅是客户端服务器,而是独立的网络应用程序,这些应用程序跨云,甚至是一个内部数据中心。由于事件驱动的架构和低延迟网络,这些应用程序能够以更快的速度实时移动。

原文链接:

https://thenewstack.io/the-new-multicloud-serverless-application-flows-and-automation/

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论