Cloud 多节点上的短期Akka部署

Cloud 多节点上的短期Akka部署,cloud,cluster-computing,akka,apache-zookeeper,grid-computing,Cloud,Cluster Computing,Akka,Apache Zookeeper,Grid Computing,我正在用Akka编写一个分布式研究应用程序,使用一个简单的主节点和多个工作节点拓扑,目的是部署到内部节点集群或企业云中。(当Akka 2.1可用时,我将考虑使用集群支持) 我的问题: 将我的代码(以包含Akka微内核的文件夹的形式)部署到每个节点上,启动它,让它做它该做的事情,然后根据需要拆下并重复,最简单/最好的方法是什么 微核目录和可执行文件对于每个工作节点都是相同的,只有几MB。Config包含它们将连接到的主机的IP 我打算手动启动主机 弹性不是一个问题,因为这不是一个业务关键型应用程

我正在用Akka编写一个分布式研究应用程序,使用一个简单的主节点和多个工作节点拓扑,目的是部署到内部节点集群或企业云中。(当Akka 2.1可用时,我将考虑使用集群支持)

我的问题: 将我的代码(以包含Akka微内核的文件夹的形式)部署到每个节点上,启动它,让它做它该做的事情,然后根据需要拆下并重复,最简单/最好的方法是什么

  • 微核目录和可执行文件对于每个工作节点都是相同的,只有几MB。Config包含它们将连接到的主机的IP
  • 我打算手动启动主机
  • 弹性不是一个问题,因为这不是一个业务关键型应用程序,而是一个私有应用程序 研究问题
  • 没有重要数据存储在工人的本地
  • 应用程序完成后,我可能希望在不拆除节点的情况下重新部署不同的应用程序(例如,优化代码库)
更新:发现Condor节点支持在全机模式下运行的作业。这应该支持将微内核作为作业运行,并且只需要确保工作人员在完成后正确退出


更新2:有人提到Zookeeper可能很适合这个。希望有经验的人能提供意见。

以下是一些想法。我没有Akka的经验,但我知道网格计算和部署

  • 使用现有的网格工具,例如(具有GPL版本)。我还听说有人用

  • 在盒子里使用云,比如机身。我肯定还有其他人

  • 我相信,机身附带CloudFoundry,但您可以直接使用它:但不确定该版本如何扩展

  • 滚动您自己的系统,安装到一个VM映像中,然后将其克隆到其他节点上

  • 当涉及到你自己的滚动时,你可以像下面这样做,这与我已经开发的东西非常相似,并且工作得很好

    • 使用maven构建应用程序,使用任何您喜欢的库

    • 将内置二进制文件推入Sonatype Nexus

    • 构建一个定制的启动器,给定模块的maven坐标,它可以运行它。我的laucher首先检查本地maven repo中的JAR,如果它们不存在,然后从nexus下载它们。然后,它为可传递依赖树中的所有JAR构造一个类路径。然后,它用新的类路径创建一个新的类加载器,并通过类加载器启动主类

    • 使用java service wrappe或类似工具编写一个服务,该服务在启动时通过读取一些maven坐标和config中的主类名称来检查要运行的代码版本。配置可以是网络驱动器上的文件、预先配置的URL,甚至是zookeeper。然后将其传递给启动器,由启动器下载并运行代码

    • 手动或通过克隆vm将此服务安装到许多计算机上

    • 利润

    我没有特别提到Akka,因为您的大部分问题似乎是如何让代码在多个节点上运行


    自定义路由对我来说很好,但我只有几个服务器使用它,我所有的网格计算都是在数据synapse中完成的。但我确实想知道我是否应该重新开始,这些开源PaaS是否适合。

    谢谢你的赏金。你最后做了什么?