客户
Clearly
行业
电子商务,眼镜零售
技术
AWS
Microsoft Azure
Terraform
Packer
Ansible
AWS CLI
Node.js
Python
Java Spring Boot
Spring Cloud
AWS Lambda
AWS Application Load Balancer
AWS Transit Gateway
AWS Control Tower
TLS
Jenkins
GitHub Actions
Azure CLI
Azure VMs
AWS EKS
HashiCorp Vault
Kubernetes
Istio
OpenShift
Microsoft SQL Server
EC2 Autoscaling
Clearly 是一家总部位于温哥华的在线眼镜零售商。它于 2000 年创立,最初销售隐形眼镜,后来增加了处方眼镜和太阳镜,通过网站直接面向消费者销售。
对这样的零售商来说,网站就是门店。促销期间结账缓慢,或者在节假日前几周出现宕机,损失的收入不会再回来。Clearly 正是在这样的背景下找到了 SEYA。
项目
Clearly 的 AWS 环境在设计时纳入了密钥管理(使用 HashiCorp Vault 和 AWS Secrets Manager),并兼顾了 PCI DSS、SOC 2 和 ISO 27001 的要求。SEYA 不声称这些认证已经颁发。
Clearly 需要一套生产基础设施:能在无人工干预的情况下承受高峰时段负载,能从故障中恢复,而在一年中的其余时间里运行成本仍然可控。其服务器分散在本地环境和 Rackspace 之间,限制了平台的扩展速度。
SEYA 分三个阶段完成了向 AWS 的迁移:先直接迁移(lift and shift),再实现基础设施即代码,最后为季节性高峰配置自动扩缩容。韧性、灾难恢复、安全和运营成本从第一次设计会议起就纳入了范围。
交付成果:
一套按 PCI DSS v3、SOC 2 和 ISO 27001 要求设计的全新 AWS 环境
使用 AWS Migration Hub 和 CloudEndure,将全部服务器从 Rackspace 和本地环境迁移到 AWS
每台服务器和每项配置都纳入 Terraform 和 Ansible,环境由代码重建而非手工搭建
F5 负载均衡器后方经过合理规格调整的服务器池,并配置 EC2 自动扩缩容组以应对高峰流量
一条混合 CI/CD 流水线(Jenkins pipeline as code 配合 GitHub),可部署到 AWS、Azure 和本地数据中心
使用 HashiCorp Consul 的服务发现,以及使用 AWS Secrets Manager 和 HashiCorp Vault 的密钥管理
涵盖高可用、灾难恢复和多区域运行的生产设计
面临的挑战
Clearly 的平台分布在两套从未统一设计的托管环境中。容量是固定的,团队只能提前数月猜测高峰需求,并为这个猜测付一整年的费用。配置散落在各台服务器上,每次变更都是风险,每次重建都是一个项目。
业务理由很直白:扩展和安全方面的限制正在造成销售损失,而本地与 Rackspace 混合的环境无法就地修复。Clearly 决定把工作负载迁移到 AWS,作为更大范围现代化计划的一部分,并希望找到一个能把迁移一直推进到内部团队可自行运营的生产环境的合作伙伴。
我们的专长
SEYA 从一次调研会议和一份路线图开始,把工作拆成三个阶段,让 Clearly 在每一步都能看到进展和风险。
第一阶段把现有环境直接迁移到一个按 PCI 和 SOC 2 就绪要求搭建的新 AWS 账户中,使用 AWS Migration Hub 配合 CloudEndure 进行复制。先迁服务器、少做改动,让切换过程可预期。
第二阶段让环境变得可重现。我们的工程师调整了服务器规格,为 F5 负载均衡器后方的服务器池增加了实例,并把每台服务器和每项配置导入 Terraform 和 Ansible。
第三阶段优化工作负载并引入自动扩缩容组,让容量在最繁忙的几周随需求增长,之后再自动回落。
我们的方案
AWS 蓝图按 PCI DSS v3、SOC 2 和 ISO 27001 要求设计。SEYA 用 Terraform 自动化资源部署、用 Ansible 自动化配置,评审人员可以把生产环境中运行的内容追溯到有版本记录的定义。
全部服务器从 Rackspace 迁移到 AWS。应用层启用了自动扩缩容,F5 配置随之更新,可自动注册和摘除自动扩缩的服务器。
由于 Clearly 还在 Azure 和自有数据中心运行工作负载,SEYA 构建了一条混合 CI/CD 流水线(Jenkins pipeline as code 配合 GitHub),用同一套发布流程部署到这三个环境。
SEYA 用 HashiCorp Consul 增加了服务发现,把敏感值迁入 AWS Secrets Manager,并搭建 HashiCorp Vault 来管理跨云密钥。生产设计涵盖高可用、灾难恢复和多区域运行。
交付的价值
对 CTO 或 IT 总监而言,实际的变化在于容量不再是一年一次的估算。自动扩缩容组会随流量变化增减服务器。
环境由 Terraform 和 Ansible 重建而非手工搭建,这缩短了故障后的恢复时间,也消除了手工管理的服务器中悄然累积的配置漂移。审计沟通从代码开始。
密钥存放在 Secrets Manager 和 Vault 中,而不是服务器或代码仓库里;一条流水线同时服务 AWS、Azure 和本地数据中心。运营成本自始至终都是设计输入,规格调整和缩容机制已内置于架构之中。
成果
Clearly 在新的 AWS 环境上运营了季节性销售。最后阶段交付的自动扩缩容组和工作负载优化承载了高峰期流量,不再受之前托管环境固定容量的限制。
团队现在运营的是一个以代码定义的生产平台,高可用和灾难恢复已在设计中纳入,三个环境共用一套发布流程,密钥集中管理。得益于容量和优化工作,高峰期的用户体验有所改善。
示意图:一条 CI/CD 流水线覆盖全部三个环境,Terraform 和 Ansible 负责部署 AWS,Vault、Secrets Manager 和 Consul 负责密钥与服务发现。
示意图:注意服务器先以最少改动迁移,再纳入代码管理,最后才交由自动扩缩容应对旺季。
最繁忙的季度临近,零售平台却还跑在固定容量上?
与 SEYA 架构师聊聊分阶段 AWS 迁移,在旺季到来之前落实基础设施即代码和自动扩缩容。发邮件至 hello@seyagroup.io。
联系我们
发送有关云、平台、数据或可靠性项目的咨询。营销邮件在表单中为单独选项。