几年前我们遇到了一个有趣的问题。 我们是一家完全远程的公司,我们的所有软件都在云中。 我们有一个 Spring Boot 应用程序套件,运行在以基础设施为代码的容器上。 但我们需要业务敏捷性。

全球就业市场发展迅速,对新产品的需求总是如此。 我们必须找到一种方法来保持整个行业的领先地位。

我们是一家拥有大胆战略的技术公司

2022 年,我们创建了一个 ADR(建筑决策记录),上面写着“无服务器优先”和“根据需要的容器”。 引发了近 40 个工程团队的辩论。

让我们先解释一些术语

无服务器优先不仅是功能即服务。 它也是一组来自云提供商的托管服务,它们: 

  • 通过不管理基础设施降低运营开销

  • 根据需要进行缩放,包括缩放至零,使其具有完全弹性

  • 有弹性的定价(您只支付您使用的费用) 

在 G-P,无服务器优先是指我们使用 AWS Lambda、EventBridge、Step Functions、Fargate、SQS、SNS、API Gateway、 S3、DynamoDB 等。

无服务器优先意味着当我们选择计算、存储、消息或类似解决方案时,我们希望团队从无服务器选项开始。 需要注意的是:如果无服务器服务不能满足需求,团队应该回到更重的服务 - 需要更多的运营投资。

“根据需要使用容器”阐明无服务器优先并不意味着仅无服务器。 有时我们需要容器(例如,安装 COTS 软件产品) ,这没关系。

优先考虑客户的技术战略

我们以灵活的速度前进,以满足客户和用户的需求。 Lambda、 S3 和 DynamoBD 等服务具有极高的弹性和快速性。 通过卸载未区分的繁重任务,我们可以花更多的时间为用户构建功能,而不是处理通用基础设施配置。

G的一个关键原则 G-P 是:“你建立它,你运行它。 我们的团队拥有自己的软件。 因此,我们不仅仅将软件扔到 DevOps 团队面前。 

“无服务器优先”的优势

无服务器本质上是事件驱动的。

我们的架构完全由事件驱动。 通过使用 EDA(事件驱动架构),我们可以扩展我们的组织和软件。 无服务器迫使我们保持较小的爆炸半径,并通过事件以完全云原生的方式进行通信。

启用约束

作为一个 global employment platform 化企业,我们严 肃对待合规。 我们的云基础设施经过精心设计,我们采用多客户战略,将工作负载分离并实现云合规性自动化。 Serverless 通过控制云资源的配置方式,帮助我们执行高标准。

卸载工作

我们的云提供商管理我们的无服务器服务。 由 AWS 集成、保护、调整、启用和维护的单组构建块使我们能够为客户集中精力提升价值链。

精心设计的工作负载

我们创建的每个工作负载都使用 AWS 精心设计的框架进行审查。 我们专注于规模、安全性、可靠性和成本优化,以确保我们不仅满足而且超越我们的服务水平协议 (SLA)。 随着云环境的不断发展,这使我们的工程团队得以增强。 

关于我们的团队

我们的技术战略雄心勃勃,这使其具有挑战性。 许多工程师没有在无服务器架构(或分布式架构)中工作。 向无服务器架构的过渡并不容易,我们寻找能够适应学习、思考和跟上步伐的工程师。

一些工程师不确定无服务器这个词(是的,我们知道有服务器),因为这种方法不仅仅是在函数中编写代码。 我们的战略要求对经典的云原生原则采取整体方法。

结果

两年来,我们取得了非凡的进步。 现代化有很多好处(请参阅我们关于 AWS /云现代化已知商业价值的文章)。 具体而言,我们观察到以下几点:

1. 速度:我们分解系统的方式使团队和产品能够独立创新和发展。 这对业务敏捷性产生了巨大影响。

2. 合规性:我们使用 AWS 精心设计的框架来审查所有工作负载。 由于我们使用许多 AWS Managed Services,因此我们可以依靠他们的卓越运营,从高质量的地方开始。

3. 系统思维:我们必须标准化我们的许多流程,这样我们才能对系统、可靠性和业务价值进行推理。 我们不会花时间在低价值组件上工作。

4. 创新:无服务器意味着一切都是API。 这种强制约束需要 API 优先的方法。 当我们把自己视为一个平台时,我们可以通过API轻松连接系统,如将 G-P Gia™ 插入新的知识库,从而达到新的创新水平。

5. 所有权:AWS拥有我们的基础设施,但我们拥有自己的业务领域。 无服务器第一,采用域驱动设计,迫使我们专注于业务问题。 这样可以保持对能力的所有权清晰。

无服务器优先并不总是更快,但它更有益。 我们宁愿优化系统速度,也不愿优化单个开发人员的速度。 无服务器优先不是关于使用函数,而是关于思考,“代码是一种责任。 系统就是资产”。 我们必须编写的代码越少,我们就越能考虑并塑造我们正在构建的业务系统。

当我们分享我们的故事时,我们的工作速度将变得显而易见,这是无服务器优先的直接结果。 敬请关注。