【问题标题】:Switching from Heroku to Docker Platform Cycle.io problems从 Heroku 切换到 Docker Platform Cycle.io 问题
【发布时间】:2016-11-27 11:27:06
【问题描述】:

好吧,我是 devops 的菜鸟,但请耐心等待,我已尽力解释我的困境。

现在我有一个 Java 应用程序(目前托管在 heroku 上),其代码在 GitHub 上可见。然而,可见的代码不能直接部署。有 2-3 个特权文件,例如 applications.properties ,其中包含我们的 、其他几个 Auth 文件等,出于明显的安全原因,这些文件不能放在 GitHub 上。我们还使用 Heroku 的 ClearDB 插件提供给我们的 MySQL 数据库。

目前的解决方法是这些文件仅存在于 Heroku git 远程并设置为去。每当我们想要重新部署时,我们都会切换到 Heroku 远程,从 master 拉取代码更改并将其推送到自动部署。

现在,我们正在从 Heroku 转移到 Cycle.ioAmazon Web Services。设置 AWS 会非常简单,但 Cycle.io 使用 docker 镜像。我在这里有几个问题。

  1. Cycle.io 为我们提供了一个部署,我没有看到任何关于提供任何数据库的讨论。我们从什么/从哪里获得数据库?我们有哪些选择? Cycle.io 允许我们创建Environments。引用

环境允许用户组织相关容器组。 创建环境时,Cycle会自动创建一个私有的 网络来连接里面的容器。

这是否设置了某种可以设置 MySQL 数据库的 Linux 环境?我是否必须为 MySQL 映像设置 Docker 映像并允许代码映像与其通信?

  1. 如果我们考虑为 cycle.io 使用 Docker 镜像,最好的工作流程是什么?会是这样吗?

    • 在我的系统上构建一个可以运行的 docker 映像
    • 将其推送到 Docker Hub 到一个私有存储库并允许与 docker hub 集成的 cycle.io 从那里获取它
  2. 循环说

只需两个简单的步骤即可部署您的容器:只需拉动您的 来自 Docker Hub 或任何 Git 存储库的生产就绪映像,然后单击 导入图片。

我到底如何在 GitHub 上托管 docker 图像。我的意思是你不应该真的在 GitHub 上托管文件,对吧? Docker Hub 更有意义。或者这是否意味着它会获取代码并将其编译成 docker 镜像?

  1. 拥有像 heroku 这样的“私有”git 分支的最佳方式是什么?我知道我想添加一个私人遥控器,但我该怎么做?我应该让公共分支像私人文件的私人保管箱一样保存吗?

【问题讨论】:

    标签: git heroku docker devops


    【解决方案1】:
    1. 有多种“获取”数据库的方法。最简单的一种是使用某种托管解决方案,对于 mysql 有很多选择——最流行的是 google 的 cloud sql 和 AWS 的 RDS。您也可以将 MySQL DB 安装为容器,但我不知道 Cycle.io 是否提供该服务。最好的办法是向 Cycle.io 提出这个问题,询问哪种 mysql 解决方案最能与他们的产品集成,或者选择 AWS(elastic beanstalk 是运行 docker 容器的绝佳服务,并且可以提供 mysql 实例作为数据层)
    2. 您建议的流程有效。更好的流程将包括某种 CI/CD 管道,当您将代码推送到 github 时,它可以自动构建您的映像,而不是将其部署到 AWS/cycle.io。我们正在使用 CircleCI,它为小型构建提供 1 个免费容器,非常适合这些目的。
    3. 您从未将实际的 docker 镜像放在 github 上。您应该做的是向 repo 添加一个 dockerfile,并且图像是从中构建的。我猜 cycle.io 正在为你提供这个选项——从你放入 repo 的 dockerfile 自动构建图像。这就是我们使用 CirclCI 构建图像的方式。
    4. 部署密钥可用于此目的。您创建一个并仅允许授权服务使用该密钥与您的存储库进行通信。

    【讨论】:

    • 谢谢,这给了我一些见解。但是,我的私有文件(application.properties 之一)仍然没有解决方案
    • 这种做法被称为秘密管理,有一些专门为此指定的工具。您可以查看 hashcorp 的 Vault 以获取此类工具的示例 - vaultproject.io
    • 我的队友在这里提出了同样的问题softwareengineering.stackexchange.com/questions/336959/…
    • 希望你能帮忙吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2017-04-25
    • 2016-03-31
    • 1970-01-01
    • 2015-10-06
    • 2021-04-20
    相关资源
    最近更新 更多