是否有可能运行基础设施金丝雀?

是否有可能运行基础设施金丝雀?

我一直在尝试思考使用 Terraform 时遇到的问题(尽管任何基础语言都可以,比如 CloudFormation、ARM 或 Google 使用的任何语言,因为据我所知,这不是一个适用于云的问题)。我在软件工程中经常使用金丝雀,除了红/黑(或蓝/绿,随便你怎么说)之外,它几乎是必备品。要构建一个场景,假设我们已经有了网络层,并且不会更改。我将使用 AWS 将其划分为可管理的块。

假设我们的 VPC 具有以下属性

  • 是随机 AWS 区域中的多层 VPC
  • 包含特定 VPC CIDR 中的 2 个私有子网和 1 个公共子网
  • 具有连接到适当子网的路由表
  • 具有 ASG(自动扩展组)的 NAT 实例,用作私有子网的默认网关
  • 与可能创建的 EC2 实例一起使用的安全组
  • 上述 Auto Scaling 事件的 SNS 通知

相当标准。好的,我们有了基准,假设我们的应用程序将利用 AWS 特定的服务。

  • 一些已定义 LC 和 ASG 的 EC2
  • 使用老式 ELB 进行负载平衡
  • Redis 用于内存缓存
  • 适用于任何用途的 Postgre RDS

你会如何实施这个?假设我们想测试 ALB 而不是 ELB,或者完全移除 Redis 并用 Elasticache 替换它。我们显然不想直接将其投入生产,否则就是自杀。

我是否考虑将第二个 Route53 与 Traffic Flow(据我所知是 AWS 版本的流量整形)和一组所需的基础设施结合起来,以逐渐提供负载,看看它何时或如何中断?我相信 R53 部分特别是流量加权和故障转移策略?请让我知道你的想法,几个月来一直困扰着我。

相关内容