在这篇文章中,我们将讨论以下话题:

  • Netflix API 架构演进
  • 微服务最佳实践
  • 代码审查金字塔
  • Kubernetes 周期表
  • Shopify 构建弹性支付系统的 10 个原则

Netflix API 架构演进

Netflix API 架构经历了 4 个主要阶段:

  1. 单体(Monolith)
  2. 直接访问(Direct access)
  3. 网关聚合层(Gateway aggregation layer)
  4. 联邦网关(Federated gateway)

我们在 4 分钟视频中解释了演进过程。

9 个微服务最佳实践

当我们开发微服务时,需要遵循以下最佳实践:

  1. 为每个微服务使用单独的数据存储
  2. 保持代码处于相似的成熟度水平
  3. 为每个微服务单独构建
  4. 为每个微服务分配单一职责
  5. 部署到容器中
  6. 设计无状态服务
  7. 采用领域驱动设计
  8. 设计微前端
  9. 编排微服务

问题:还应该包括什么?

代码审查金字塔

Kubernetes 周期表

这个 Kubernetes 周期表揭示了构成 Kubernetes 生态系统的 120 个关键组件。

无论你是开发人员、系统管理员还是云爱好者,这个 handy 资源将帮助你驾驭复杂的 Kubernetes 领域。

Shopify 构建弹性支付系统的 10 个原则

Shopify 有一些宝贵的构建弹性支付系统的提示。

1. 降低超时,让服务尽早失败

默认超时是 60 秒。根据 Shopify 的经验,读取超时 5 秒和写入超时 1 秒是合理的设置。

2. 安装断路器

Shopify 开发了 Semian 来保护 Ruby 中的 Net::HTTP、MySQL、Redis 和 gRPC 服务。

3. 容量管理

如果我们有 50 个请求到达队列,处理一个请求平均需要 100 毫秒,我们的吞吐量是每秒 500 个请求。

4. 添加监控和警报

Google 的站点可靠性工程(SRE)书列出了用户 facing 系统应监控的四个黄金信号:延迟、流量、错误和饱和度。

5. 实施结构化日志

我们将日志存储在集中位置并使其易于搜索。

6. 使用幂等键

使用通用唯一字典序可排序标识符(ULID)作为这些幂等键,而不是随机版本 4 UUID。

7. 对账保持一致

将 Shopify 与财务伙伴的对账中断存储在数据库中。

8. 结合负载测试

Shopify 定期模拟大量闪购以获得基准结果。

9. 掌握事件管理

每个事件频道有 3 个角色:事件经理值班(IMOC)、支持响应经理(SRM)和服务所有者。

10. 组织事件回顾

对于每个事件,Shopify 会问 3 个问题:

  • 到底发生了什么?
  • 我们对系统持有什么不正确的假设?
  • 我们能做些什么来防止这种情况再次发生?

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP67: Top 9 Microservice Best Practices

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。