多运行时微服务架构(系列五)
多运行时微服务简介
以下是开始形成的多运行时微服务体系结构的简要说明。
你还记得电影《阿凡达》和科学家为到荒野探索潘多拉而研发的放大移动平台(AMP)“机甲套装”吗?这种多运行时架构类似于这些机甲套装,赋予它们的人形驱动程序超能力。在电影中,你让人类穿上西装来获得力量并获得破坏性武器。在此软件架构中,您的业务逻辑(称为微逻辑)构成了应用程序的核心,以及提供强大的开箱即用分布式原语的 sidecar mecha 组件。微逻辑与机甲功能相结合,形成了一个多运行时微服务,它使用进程外功能来满足其分布式系统需求。最好的部分是,阿凡达2即将推出,以帮助推广这种架构。我们终于可以在所有软件会议上用真棒机甲图片替换老式边车摩托车。接下来让我们看一下这个软件架构的细节。
这是一个类似于客户端-服务器体系结构的双组件模型,其中每个组件都是单独的运行时。它与纯客户端-服务器体系结构的不同之处在于,在这里,两个组件都位于同一主机上,它们之间具有可靠的网络,这不是问题。这两个组件的重要性相同,它们可以在任一方向上启动操作并充当客户端或服务器。其中一个组件称为Micrologic,它包含从几乎所有分布式系统关注点中剥离的非常小的业务逻辑。另一个附带的组件是 Mecha,它提供了我们在文章中一直在讨论的所有分布式系统功能(生命周期除外,这是一个平台功能)。
多运行时(进程外)微服务体系结构
可能存在Micrologic和Mecha的一对一部署(称为sidecar模型),也可以是一个具有几个Micrologic运行时的共享机甲。第一种模型最适合环境,例如 Kubernetes,后者适用于边缘部署。
微逻辑运行时特征
让我们简要探讨一下 Micrologic 运行时的一些特征:
- 微逻辑组件本身不是微服务。它包含微服务将具有的业务逻辑,但该逻辑只能与 Mecha 组件结合使用。另一方面,微服务是独立的,没有整体功能或部分处理流分散到其他运行时。Micrologic和它的机甲对应物的组合形成了一个微服务。
- 这也不是函数或无服务器架构。无服务器以其托管的快速纵向扩展和缩放到零功能而闻名。在无服务器体系结构中,函数实现单个操作,因为这是可伸缩性的单元。在这方面,函数不同于实现多个操作的Micrologic,但实现不是端到端的。最重要的是,操作的实现分布在机甲和微逻辑运行时上。
- 这是客户端-服务器体系结构的一种特殊形式,针对无需编码即可使用众所周知的分布式原语进行了优化。此外,如果我们假设 Mecha 扮演服务器角色,那么每个实例都必须专门配置为与各个客户端一起使用。它不是一个通用的服务器实例,旨在与典型的客户端-服务器体系结构同时支持多个客户端。
- Micrologic 中的用户代码不直接与其他系统交互,也不实现任何分布式系统基元。它通过事实上的标准(如HTTP / gRPC,CloudEvents规范)与机甲进行交互,并且机甲使用丰富的功能与其他系统进行通信,并由配置的步骤和机制指导。
- 虽然Micrologic只负责实现从分布式系统问题中剥离的业务逻辑,但它仍然必须至少实现一些API。它必须允许机甲和平台通过预定义的API和协议与之交互(例如,通过遵循Kubernetes部署的云原生设计原则)。
- 点赞
- 收藏
- 关注作者
评论(0)