Drop Bio Health从手动云部署转向自动化架构,简化运营,降低托管成本。
译自 How Simplifying Our Architecture Saved Us Thousands Monthly,作者 Malcolm Edgar 是 Drop Bio Health 的首席技术官,该公司通过血液生物标志物和生活方式分析提供家庭健康跟踪。他此前担任金融科技公司 Avoka Technologies 的首席技术官,并被授予加密方法专利。
本文是二部曲的第二篇。请阅读第一篇:“超越 Terraform:我们如何扩展 DevOps”。
我的团队在追求高效 DevOps 的过程中,并不是唯一面临挑战的团队。云开发和部署的复杂性就像锁链,让我们许多人难以腾飞,使我们的团队难以达到新的、创新的高度。
在 Drop Bio Health,一家家用数字健康公司,我们与笨重的 Terraform 做着激烈角力,并最终决定使用 Nitric 框架(在我之前的文章中有描述)重新调整我们的 DevOps 方法和部署流水线。这一行动显著提高了开发者的生产力,以及我们提供商业价值的能力。
在此过程中,我们重新审视了项目架构,并对我们的部署功能和成本效益做出了有价值的改进。(剧透警告:我们看到 亚马逊网络服务(AWS) 托管成本减少了 60%。)以下是我们从原始架构到简化方法的过程,这种简化方法在我们扩展时会更好地为我们的团队服务。
WellBeing 测试的原始架构是为了可扩展性和敏捷性而设计的。我们使用了许多知名的、一流的工具。
从技术上讲,这个架构没有问题;事实上,这些是我们在其他现代云基础架构中看到被使用的配置,并在如何指南中有大量记录,用于实现可扩展性、冗余性和灵活性。
挑战在于,手动部署这些需要我们的开发者对每个资源非常熟悉。例如,配置 弹性负载均衡器(ELB)涉及管理安全组,设置监听器规则,通过目标组进行健康检查,并集成 SSL 证书。当将 Auth0 混合进来时,配置还需要专门的路由和额外的中间件用于令牌验证,以确保身份验证和授权进程无缝集成。
虚拟私有云(VPC)需要正确设置无类别域间路由(CIDR)块,规避任何重叠,并明智地指定公共和私有子网。这需要确保安全组的结构正确,只允许必要的端口,并管理入站和出站规则。在需要与其他 VPC 通信的情况下,管理对等关系至关重要。
对于一个运维团队有限的公司来说,认知负载增长成为我们开发核心服务的负担。
我们需要让我们的团队更容易管理基础设施和部署流程。虽然我们可以使用各种各样的工具,但我们希望找到一种方法,只使用必要的部分就能实现我们可扩展性、冗余性和灵活性的持续目标。我们能否用更少的工具来最小化维护,降低认知负载,并仍然对架构的未来扩展能力有信心?
当我们采用Nitric进行基础设施供应时,我们不仅精简了基础设施,而且是使用经过行业专家验证的工具来实现这一点的。我们新的架构以 亚马逊 API 网关 和 Lambda 函数为中心组织我们的操作。
亚马逊 API 网关已经成为这个架构的基石,因为它有几个独特的特点:
API 网关充当所有传入流量的单一、统一的入口点。这消除了管理多个端点或负载均衡器(如 弹性负载均衡器)的需要,因为 API 网关可以有效地将传入请求分发到多个后端服务,包括 Lambda 函数。
与无服务器解决方案(如 Lambda)结合,API 网关可以根据传入流量自动扩展。这种动态性使其能够适应突发的激增或需求的下降,而无需任何人工干预,从而使虚拟私有云 (VPC) 和网络地址转换 (NAT) 网关提供的传统扩展机制变得不必要。
API 网关本身就提供了强大的安全功能,如集成 亚马逊 Web 应用程序防火墙 (WAF)、限流以及内置的认证和授权机制。这消除了 VPC 对额外安全层的需求,因为可以直接集成自定义授权器或像 Cognito 这样的平台进行用户认证。
使用 API 网关,管理复杂的 VPC 网络设置或使用 NAT 网关确保出站流量的需求大大减少。网关处理复杂的网络任务,允许开发人员专注于构建和部署应用程序。
本质上,通过使用 Nitric 将我们的架构集中在 API 网关和 Lambda 函数上,我们不仅实现了更精简的基础设施,还利用了这些服务所具有的内在效率和功能,消除了对 弹性负载均衡器、虚拟私有云 和 NAT 网关等组件的需求。
由于 API 网关和 Lambda 函数遵循按使用付费的模型,与维护像 弹性负载均衡器或 NAT 网关这样的始终在线资源相比,它们在成本上具有优势。另外,API 网关将规模降低到零的能力意味着当没有流量时不会发生费用。在我们的案例中,这对我们的每月 亚马逊网络服务(AWS) 托管成本产生了重大影响:由于这种架构转变,我们将其削减了 60%。
从手动云部署到简化自动化架构的转变极大地简化了我们的运营。我们用 API 网关和 Lambda 函数替换了复杂的组件,如 弹性负载均衡器、虚拟私有云和 NAT 网关,其结果是:
- 流量的统一入口点
- 自动扩展,减少人工干预
- API 网关内置的稳健安全特性
- 简化的网络管理
值得注意的是,这一转变由于按使用付费模式和 API 网关在低流量期间将规模降低到零的能力,导致了可观的成本节省。这种转变使我们能够更有效地分配资源,专注于创新和客户解决方案。
总而言之,简化我们的架构对我们的团队来说是一个巨大的胜利。如果您有兴趣阅读更多关于我们 Nitric 实现的信息,请查看案例研究并查看其技术。