【问题标题】:How should I allocate staging versions of shared services across VPCs?我应该如何跨 VPC 分配共享服务的暂存版本?
【发布时间】:2020-04-25 16:32:51
【问题描述】:

在 AWS 中每个环境都有单独的 VPC 是一种常见的设计模式:

  • 产品
  • 分期
  • 开发
  • 共享(如 CI、指标、日志记录)

如果我编写一个新的应用程序服务,我会在每个 {prod, staging, dev} VPC 中拥有一份它的副本。

但是,对于公共服务的 prod/staging 版本(如指标),我该怎么做?如果它是开箱即用的,我可以在shared VPC 中放置一个副本。但是,如果它是一些自定义的内部版本,并且我想对其进行开发,我是否应该将该公共服务的 prod 和 staging 版本放在同一个 shared VPC 中?

【问题讨论】:

    标签: amazon-web-services deployment cloud production-environment amazon-vpc


    【解决方案1】:

    每个环境都应该在单独的 VPC 中,以带来安全性和易于维护

    • 开发
    • 分期
    • 生产

    这些环境将托管一个应用程序,并且在允许流量的情况下可以通过 VPC 对等连接。

    然后会运行一些日志和应用程序监控工具仪表板来监控所有环境 此外,还有像 Jenkins 这样的部署,可以在所有环境中部署应用程序代码。

    理想情况下,日志监控和应用程序监控工具可以在shared VPC 中,大部分时间日志和指标通过从主机安装的代理通过https or UDP/TCP 协议发送,因此网络不会成为问题。

    对于 CI 工具,它可以托管在与部署共享的 VPC 中,通过拆分部署作业的视图来处理所有环境,并通过使用多个开发团队的角色管理插件来控制访问。但是,最好让 dev/standby 和 production deployment/Jenkins 在插件升级和依赖项方面测试新事物的开发和测试,而不是直接应用到生产中。

    【讨论】:

    • 对于日志+指标监控,我知道它会在shared VPC,但是logsmetrics monitoring服务的staging版本呢?这些也会在shared VPC 中吗?你有使用这种架构的例子吗?
    • 对于 logsmetrics 的暂存版本,您还可以将这些日志推送到共享 VPC 中的相同设置。例如,在 Splunk 中,您可以根据环境通过不同的索引来拆分日志。 answers.splunk.com/answers/507415/… 如果您想限制团队访问非生产和生产日志/指标,那么最好为每个设置不同的设置。
    【解决方案2】:

    首先直接回答您的问题。你需要一个平台环境。该环境将用于您构建应用程序的所有开发和配置。它将包括您的内部指标系统以及所有基础设施,包括 VPC、cloudwatch、日志记录等 AWS 服务。

    您的工作流程环境将如下所示。

    平台 -> 开发 -> 登台 -> 产品

    根据您的平台进程,它可能是 1 个环境(平台开发)或您可能有 2 个(平台开发和平台暂存)。平台产品是您的应用程序开发环境。

    大局

    您需要将您的环境提升一个级别,并在帐户级别执行这些操作。因此,您将拥有 4 个不同的 AWS 账户。

    • 平台开发
    • 平台暂存(可选)
    • 应用开发
    • 应用程序暂存
    • 应用产品
    • 共享管理(如 CI、指标、日志记录)
    • AWS 管理账户(AWS Control Tower 和组织)

    这有几个好处:

    • 您可以使用 cloudformation 或 terraform 对每个环境进行完全相同的设置。您正在自动化每个环境写入?直接说是。
    • 在开发环境中工作时,您可以获得更好的访问控制,并且不必担心您的产品环境。
    • 您将拥有从管理 VPC 到您的 prod/staging/dev 环境中的每个 VPC 的 VPC 访问权限,然后您可以进行 VPC 到 VPC 对等。

    AWS 提供 2 种服务来帮助管理多个账户。
    AWS Control Tower AWS Organizations 从控制塔开始,因为它将为您设置您的组织。

    如果您想将其扩展到多个应用程序,您只需复制您的应用程序 dev/staging/prod 环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 2011-09-30
      相关资源
      最近更新 更多