Nefele介绍:云计算的流程监控协调系统
副标题[/!--empirenews.page--]
Nefele是可以在分布式环境中有效部署,扩展和监视流程的系统。 来自:沃尔夫冈·约翰 [v1] 2020年6月12日,星期五13:21:59 发布的论文。 无论是操作系统级别还是硬件级别的虚拟化,在云计算中都扮演着重要角色。它使分布式环境中的自动化更加容易,部署速度更快。 尽管虚拟化基础架构提供了一定程度的管理灵活性,但它们缺乏对分布式资源的实用抽象。在这样的环境中,开发人员仍然需要处理构建分布式软件系统的所有复杂问题。构建了不同的业务流程系统来提供该抽象。 但是,它们不能解决分布式系统固有的挑战,例如同步问题或故障恢复能力。 本文介绍了Nefele,它是一种分散的流程编排系统,可自动部署和管理集群中的各个流程,而不是容器/ VM。 Nefele的灵感来自于缓解远程执行的复杂性的单一系统映像(SSI)愿景,但它保持了虚拟化基础架构的灵活性和性能。 Nefele提供了一组用于构建云原生应用程序的API,使开发人员可以轻松地在云环境中构建,部署和扩展应用程序。我们已经在数据中心的集群上实现并部署了Nefele,并对其性能进行了评估。我们的评估表明, Nefele可以在分布式环境中有效部署,扩展和监视流程,同时它整合了基本原语以构建分布式软件系统。Nefele提供了一组用于构建云原生应用程序的API,使开发人员可以轻松地在云环境中构建,部署和扩展应用程序。我们已经在数据中心的集群上实现并部署了Nefele,并对其性能进行了评估。我们的评估表明,Nefele可以在分布式环境中有效部署,扩展和监视流程,同时它整合了基本原语以构建分布式软件系统。Nefele提供了一组用于构建云原生应用程序的API,使开发人员可以轻松地在云环境中构建,部署和扩展应用程序。我们已经在数据中心的集群上实现并部署了Nefele,并对其性能进行了评估。我们的评估表明,Nefele可以在分布式环境中有效部署,扩展和监视流程,同时它整合了基本原语以构建分布式软件系统。 简介 对于多节点系统,可以向开发人员隐藏分布式的复杂性,使应用程序更易于开发、调试和操作。 构建分布式软件系统一直以来都是复杂的。在分布式系统中,进程运行在不同的网络计算机上,通过在网络上传递消息来传递它们的操作,而不需要任何全局时钟的概念。在这种环境中,有许多挑战,如保持同步、一致性、确保可用性、故障恢复能力和可跟踪性。在此环境中发生的事件可能不会按预期顺序出现,必须处理系统的部分故障,节点可能不同意系统的当前状态。许多在单个节点上运行良好的解决方案不再适用。 单一系统映像(SSI)概念自20世纪80年代中期以来已被许多项目实现,提供这种幻觉或抽象的非现代化硬件视图是其目标。然而,这些项目都没有获得大规模的主流采用,主要是由于单节点结构的低性能和缺乏可扩展性。为了提供完整的UNIX接口,对这些结构的仿真具有基本的限制,这些限制通常归结为不同节点之间的同步需求。此外,许多在单个节点上运行良好的技术在分布式环境中运行不好。例如,在单个节点中,多个进程之间的内存共享是有效的,但在分布式环境中是无效的[2]。 x86平台虚拟化技术的发展催生了云计算,在云计算中,用户根据服务模型租用一组分布式计算资源来部署其应用程序。虽然云平台提供了对分布式资源的简单且可伸缩的访问,但它们本身并不能解决上述分布式软件系统固有的挑战。为了缓解这些问题,云提供商提供了广泛的服务和产品,这些服务和产品被设计成在分布式环境中运行,并提供通常需要的功能,如日志、数据库、锁定[1]、监视和存储。然而,云应用程序的开发人员仍然必须精心设计应用程序,以处理由于底层系统的分布式性质而产生的许多复杂问题。 此外,这些项目中的许多在内核级实现了SSI特性,例如,作为一组补丁。这使得它很难跟上开源内核的快速发展。最后,为了满足不同应用程序的需求,SSI服务通常实现了最严格的一致性版本,例如分布式文件系统,即使大多数应用程序实际上并不需要它。必须选择最低的公分母来构建通用系统会严重影响性能。最后,SSI工作的一个好处是,一个规模通常不是全部。 Erlang/OTP[3](开放电信平台)是构建分布式软件系统的成功途径。它是一种功能语言和运行时,用于构建分布式、容错和高可用系统。Erlang模型的核心是放置所有com- 多核机器有许多相同的问题。然而,在很大程度上,这个行业已经能够提供一个单一核心系统的假象,可以编程为一个单一的系统。 将计算放入强隔离的进程中,它们之间不共享数据,并且只通过异步消息传递进行交互。OTP通过一组支持库和设计原则扩展了基本的Erlang语言和运行时。 e、 例如,容器或vm,进程在其中运行。这些进程以主机到主机的方式相互通信,除非它们在同一执行环境中运行。执行环境中的进程可以使用操作系统(OS)服务,这些服务基本上不是默认分布的。为了简化开发分布式软件系统的任务,设计用于在分布式环境中操作的服务作为外部服务提供。通常,有多个这样的服务提供具有不同特征的相同功能,允许开发人员选择最适合任务的服务。 在本文中,我们扩展了在[4]中的工作,并介绍了一个能够在集群上执行和管理Linux进程的分布式进程编排系统Nefele。Nefele受到SSI减轻远程执行困难的愿景的启发,并采用了一些Erlang/OTP设计原则和机制来处理分布式软件系统。在Nefele中,除了虚拟化环境中的本地操作系统功能外,开发人员还配备了一组类似于SSI的功能和编程API。这些额外的功能通过为流程提供简单的编程接口来部署、执行、连接和监视其他流程,从而隐藏了分布式环境中流程部署和IPC的复杂性。然而,Nefele并没有试图隐藏应用程序在分布式环境中执行的事实,因此也没有限制开发人员在单个节点上使用当前可用(或有效)的功能。在Nefele中,进程是调度和执行的单元,也是消息传递的端点。与容器或虚拟机相比,工艺是一个增强单元,具有更高的灵活性和延展性。在Erlang中,应用程序内部的依赖关系和关系由应用程序本身定义,而不是使用外部部署图表和清单。 1592185367080 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |