写点什么

CloudState:用于 Knative/Kubernetes 的开源无服务器框架

  • 2019-09-23
  • 本文字数:1077 字

    阅读完需:约 4 分钟

CloudState:用于Knative/Kubernetes的开源无服务器框架

Lightbend 最近发布了 CloudState。CloudState 是首个可用于对 Knative/Kubernetes 堆栈进行状态管理的开源无服务器(serverless)框架。


据 Jonas Bonér 所说:


CloudState 是一个围绕状态管理通过添加概念、模型和实现来定义什么是“serverless 2.0”(或者下一代 serverless 是什么)的倡议。任何构建过云应用程序(分布式系统)的人都知道,状态实际上是最难处理的,而到目前为止,serverless 或多或少会忽略状态管理这一点。所以我们试着把它和两件事情结合起来。首先是标准化工作,为实现这些功能定义规范、协议和 TCK。其次是参考实现,实现规范。


CloudState 基本上由两部分组成:标准化工作,定义用户函数与后端之间的规范、协议和 TCK;以及一个参考实现,它用多种语言实现了后端和一组客户端的 API 库。


CloudState 是为基于事件驱动的架构、事件源、CQRS、集群分片、数据和处理协同定位、CRDTs 以及其他常见的分布式模式而设计的。此外,CloudState 的参考实现利用了运行在 kubernetes 上的KnativegRPCAkka集群GraalVM ,这不仅使应用程序能够有效地伸缩,而且还能使应用程序在保持其全局或本地数据一致性的同时,在一定范围内可靠地管理分布式状态。


让我们看下 CloudState 服务是怎样的:



(图片来自https://github.com/cloudstateio


  • Ingress(入口)——可以是 Istio、Knative、或 Kubernetes 中常规的 ClusterIP 服务通信

  • Akka Sidecar(Akka 侧车)——由 CloudState 操作符注入;每个请求都会经过它。单个 CloudState 服务的 sidecars 形成一个集群,使用 Akka remoting 彼此直接通信。

  • Code(代码)——由开发人员实现的函数。它可以用任何支持 gRPC 的语言编写。Akka sidecars 使用预定义的 gRPC 协议与用户函数通信。

  • Distributed Datastore (分布式数据存储)——当服务需要持久化状态时使用。需要注意的是,用户代码并不直接与数据存储交互,它先是与 Akka sidecars 交互,Akka sidecars 再与数据存储通信。


CloudState 实现了自己的自动容量伸缩器,使用 Knative 的自动容量伸缩器进行实验时,一旦对 Akka 集群进行扩容就会带来一些问题,其中一个问题是当添加新节点时,会重新平衡切分,并复制状态。一次启动太多的节点或者是只启动节点而不立即停止它们时,将会显著降低吞吐量和性能。


有关 CloudState 的更多详细信息可以查看GitHub repo。它还有一个示例应用程序,是用JavaJavaScript实现的简单聊天程序。


想要贡献力量的用户可以订阅邮件列表,加入Gitter频道进行讨论,或者通过Twitter进行联系。


原文链接:


CloudState, an Open Source Serverless Framework for Knative/Kubernetes


2019-09-23 08:002217
用户头像

发布了 564 篇内容, 共 409.0 次阅读, 收获喜欢 731 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

云原生安全系列2:提升镜像安全的10条建议

HummerCloud

云原生 镜像安全 云原生安全

2022我的前端面试总结

loveX001

JavaScript

6个tips缓解第三方访问风险

SEAL安全

安全 访问权限 第三方访问

Spring Boot 分离配置文件的 N 种方式

江南一点雨

Java spring springboot

云时代下,医药行业管理居然这么简单

华为云开发者联盟

数据库 华为云 SaaS医药管理系统

一键开启云原生网络安全新视界

京东科技开发者

云原生 网络安全 软件架构 应用结构

阿里云无影研发负责人任晋奎:端云技术创新,打造全新用户体验

云布道师

云栖大会 无影云电脑

Java程序员在写 SQL 时常犯的错误

@下一站

学习 程序媛 Java core 11月月更

NFTScan 正式推出「NFTScan as a Service」NaaS 服务

NFT Research

NFT 数据基础设施

Serverless Devs 重大更新,基于 Serverless 架构的 CI/CD 框架:Serverless-cd

Serverless Devs

云计算 Serverless Serverless Devs

100+款AI产品薅羊毛攻略(中)——1年节省大几百万

夏夜许游

AI 视觉智能 阿里云视觉智能开放平台 薅羊毛

智慧屏也常用常新,华为智慧屏V98等6款设备可升级HarmonyOS 3正式版

极客天地

部署代码质量检测服务 sonarqube,基于命令、shell 脚本和 pipline 实现代码质量检测

忙着长大#

jenkins

支持向量机-支持向量机分类器原理

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

计算机网络:PPP协议与HDLC协议

timerring

计算机网络 11月月更

从URL输入到页面展现到底发生什么?

loveX001

JavaScript

vivo霍金实验平台设计与实践-平台产品系列02

vivo互联网技术

A/B 测试 平台化 AB实验

其实你的下班时间,被 Excel 预定了

叶小鍵

主成分分析PCA与奇异值分解SVD-PCA对手写数据集的降维 & 用PCA做噪音过滤

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

Docker部署flink备忘

程序员欣宸

Docker flink 11月月更

一年前端面试打怪升级之路

loveX001

JavaScript

想搞懂持续交付理论和实践,你只差这三个问题

华为云开发者联盟

云计算 云原生 华为云 代码托管

极客时间运维进阶训练营第四周作业

chenmin

聊聊Go里面的闭包

秦怀杂货店

Go 函数式编程 闭包

【web 开发基础】PHP 的函数工作原理 (28)

迷彩

函数 web开发基础 11月月更 结构化编程 函数的工作原理

云图说|移动应用安全服务—App的体检中心,全面检测,安全上路!

华为云开发者联盟

华为云 移动应用安全 VSS

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

100万行Spring源代码,鬼知道面试都会问啥

博文视点Broadview

即时通讯技术文集(第6期):移动端弱网优化文章汇总 [共13篇]

JackJiang

网络编程 即时通讯IM

CloudState:用于Knative/Kubernetes的开源无服务器框架_服务革新_Diogo Carleto_InfoQ精选文章