中间层本地开发

Mesosphere local development

我目前正在研究在生产中使用 Mesosphere 运行 一些微服务作为 Docker 容器。

我完成了 DCOS 部署,并且能够成功 运行 其中一项服务。然而,在继续使用这种方法之前,我还需要了解开发方面(不是 Mesos 或 Mesosphere 本身,而是微服务的开发)。

是否有任何最佳实践如何 运行 在 Vagrantbox 中本地部署 Mesosphere 或类似的东西,使我们的开发人员能够 运行 我们生态系统中的所有服务来自现有 docker 个图像和 运行 您当前正在使用本地代码文件夹的一项服务?

我已经知道如何将开发人员代码文件夹 link 放入 Vagrant 机器中并且还应该得到 Docker 部分 运行ning 但我仍然有点迷路了整个Mesosphere整合部分。

有没有人可以将我转发到 Internet 上描述此问题的可能解决方案的资源?你们中有没有人做过类似的事情并且愿意分享一些关于此的见解?

我认为没有 "the" 解决方案...我想每个公司都会尝试找到适合其开发流程的最佳方法。

例如,我的公司没有使用 DCOS,而是使用具有集群 Marathon 和 Chronos 调度程序的普通 Mesos 集群。我们有三个环境,每个 运行 CoreOS 和 Mesos/Marathon(在不同的版本中,以便能够针对版本升级等进行测试):

  • 本地 Vagrant 集群供我们的开发人员用于本地 development/testing(可以根据 user_data 文件配置为使用不同的 CoreOS/Mesos/Marathon 版本)
  • 一个测试集群(虚拟化,最新的 CoreOS beta,最新的 Mesos/Marathon/Chronos)
  • 一个生产集群(裸机,最新的 CoreOS 稳定版,目前是 Mesos 0.25.0 和 Marathon 0.14.1)

我们的构建周期使用构建服务器(在我们的例子中是 TeamCity,Jenkins 等也应该可以正常工作)构建 Docker 图像并将它们推送到我们的私有 Docker 存储库。图像在此过程中自动标记。

我们还必须有可能通过 Marathon API 调用在构建本身中定义的集群来自动启动它们,或者它们可以由开发人员手动部署。更新的 Docker 图像因此从我们的私有 Docker 存储库中提取(如果您不使用特定图像标签,请确保使用 "forcePullImage": true 获取最新版本)。

潜峰

Mesosphere is actively working on improving the developer experience surrounding DCOS. Part of that effort includes work on a local development cluster to aid application, service, and DCOS package developers. However, the solution is not quite ready for prime time yet. We have begun giving early access to select DCOS Enterprise Edition customers tho. If you'd like to hear more about that, please talk to your sales representative or contact sales through our web site: https://mesosphere.com/contact/

Public 工具

也就是说,已经有许多不同的工具可以在开发 Mesos 框架或 Marathon 应用程序时提供帮助。

消歧义

更新2017-08-03

DC/OS 目前推荐的两个本地开发选项是: