架构简化,月省成千

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 实现的信息,请查看案例研究查看其技术

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注