容器服务

如何使用 Docker、ECS、Terraform 重建基础架构?

南楼画角 提交于 2020-01-10 10:28:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 早期 Segment 基础架构普遍组合在一起。我们通过 AWS 界面设定实例,使用许多闲散的 AMI,并且采用三种不同的部署方式。 然而随着商业的飞速发展,工程师团队的规模不断扩大,基础架构的复杂度也不断提高。提高生产效率的方法仍旧只在一小部分人中间传播,虽然生产效率在不断提高,但是如果想一直保持高速增长,还要全面修整基础架构。 因此,几个月前,我的团队一起讨论:「如果今天重新设计基础架构,会是怎样一种结构?」。 10个星期后,我们彻底重构了基础架构。我们放弃了几乎所有实例与旧的配置,将我们的服务转移到 Docker 容器中运行,并且转而使用全新的 AWS 账号。 在此我们花了很长时间思考如何将产品架构变得简单、易用且可审计,同时保留扩展的灵活性。 以下是我们的解决方法。 使用不同的 AWS 账号 我们并不使用 Region 和 Tag 来区分不同的阶段如预发布环境和生产环境,而是使用完全不同的 AWS 账号 。我们必须保证设定脚本不会影响正在运行的服务。同时,新的账号就像白纸一样,可以重新开始。 此处, ops 账号作为跳跃点和集中登陆点。公司内的每个人有一个 IAM 账号用于登陆。 其他环境有一组 IAM 角色可以相互切换。这意味着,管理账号只有一个登陆点,也只有一个位置限制访问。 比如:Alice