【问题标题】:enterprise devops architecture suggestions企业 devops 架构建议
【发布时间】:2017-04-30 01:24:31
【问题描述】:

我正在寻找一些与 nodejs 和 mongoDb 应用程序的 devops 企业架构设计相关的建议和意见。

其中一个要求是使解决方案保持低成本,因此我将测试/暂存和开发中的服务器数量保持在最低限度,并使用成熟的架构进行生产。

每个环境都有两个区域 ZONE1(dmz1) 和 ZONE2(dmz2),zone2 更安全,托管 mongodb 服务器。 Production mongodb 是一个 5 节点的副本集,在 Production 环境中有一个 arbiter 节点,在 Production DR 环境中有两个成员,另外,nodejs 应用程序是负载均衡的。

问题:

  • 让 CI/jenkins 处于暂存状态并让其将工件部署到生产和开发中是一种好的做法吗?
  • 如果生产环境中的服务器没有 SSH 访问权限 我应该用来管理服务器的配置管理策略 并部署应用程序?

【问题讨论】:

  • 如果您在企业环境中工作,那么网络/安全将不会对将 prod 和 DMZ 开放到暂存的 CI 服务器的想法非常满意。
  • 是的,我认为我必须完全隔离 prod,但也许我可以放松 staging/dev,因为它是一个相当小的项目

标签: linux architecture enterprise devops software-design


【解决方案1】:

好的,首先,devops 文化所倡导的原则之一(实际上是它的最终目标之一)是最大限度地减少环境之间的差距,并使组织能够在对测试充满信心的同时进行部署之前执行的操作,因此在测试/开发中尽可能地复制您将在生产中拥有的内容将符合您的最大利益,这就是说:

将 CI/jenkins 保持在暂存状态并让它部署是一种好习惯吗? 生产和开发的工件?

这真的取决于你们所做的部署数量(1 台 jenkins 服务器是否足够?)以及您可能遇到的安全问题(生产和测试网络是否通过 1 台服务器连接让您的安全团队担心?)。最后,这一切都取决于,我已经看到 ci/cd 管道完全以 1 个 jenkins 服务器作为主要控制实现,并让它在测试中部署,执行一些自动测试,如果通过,则将部署推广到生产。你可以在上面查看詹金斯蓝海管道。

如果生产环境中的服务器没有 SSH 访问权限 我应该使用配置管理策略来管理服务器 并部署应用程序?

当您说没有 ssh 访问权限时,这意味着人们不会在这些服务器上拥有帐户?或者根本不会有 ssh 流量/服务?如果它是第二个选项,我真的怀疑 cm 工具是否会起作用,但是,如果是前者,您可以在控制服务器(它甚至可以是 jenkins ci 服务器)上设置一些类似 ansible 角色的东西,设置一个 ssh 密钥供 ansible 使用,并让它在生产环境中处理您的服务器/应用程序的所有配置和部署。请记住,最后一种策略不仅可以自动化您的部署,还可以让您自动配置新服务器,无论是用于扩展您的解决方案还是灾难恢复,

真的希望我的回复能帮到你一点,

干杯

【讨论】:

    猜你喜欢
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多