本周系统设计复习:

  • 为什么 Kubernetes 流行 | 什么是 Kubernetes?
  • API vs. SDK
  • Terraform 如何将代码变为云?
  • 你应该知道的 HTTP 状态码
  • 5 大最常用部署策略

API vs. SDK

API(应用程序编程接口)和 SDK(软件开发工具包)是软件开发世界中的重要工具,但它们服务于不同目的:

API

API 是一组规则和协议,允许不同软件应用和服务相互通信。

  • 它定义软件组件应该如何交互
  • 促进软件组件之间的数据交换和功能访问
  • 通常由端点、请求和响应组成

SDK

SDK 是工具、库、示例代码和文档的综合包,帮助开发者为特定平台、框架或硬件构建应用。

  • 提供更高阶抽象,简化特定平台的开发
  • 针对特定平台或框架定制,确保在该平台上的兼容性和最佳性能
  • 提供对平台特定高级功能和能力的访问,否则可能难以从头开始实现

API 和 SDK 之间的选择取决于项目的开发目标和要求。

Terraform 工作流

Terraform 工作流有多个阶段:

1. 编写基础设施即代码

在 Terraform 配置文件中定义资源、提供者和配置。使用变量、模块和函数使代码可重用和可维护。与 Terraform 社区注册表集成以获取即用型模块。

2. Terraform 计划

通过运行”terraform plan”预览 Terraform 将对基础设施进行的更改。它可以作为 CI/CD 管道的一部分触发。Terraform 比较配置文件中定义的期望状态与状态文件中的当前状态。

3. Terraform 应用

运行”terraform apply”根据计划创建、更新或删除资源。Terraform 向指定提供者(AWS、Azure、GCP、Kubernetes 等)进行 API 调用以配置资源。状态文件更新以反映基础设施的新状态。

4. 基础设施就绪

Terraform 状态文件充当前基础设施当前状态的单一事实来源。状态文件实现版本控制和团队成员之间未来更改的协作。

HTTP 状态码

HTTP 的响应代码分为五类:

  • 信息(100-199)
  • 成功(200-299)
  • 重定向(300-399)
  • 客户端错误(400-499)
  • 服务器错误(500-599)

这些代码在 RFC 9110 中定义。

思考题:HTTP 状态码 401 用于未授权。你能解释认证和授权之间的区别,以及代码 401 检查哪一个吗?

5 大最常用部署策略

  1. 大爆炸部署(Big Bang Deployment)
  2. 滚动部署(Rolling Deployment)
  3. 蓝绿部署(Blue-Green Deployment)
  4. 金丝雀部署(Canary Deployment)
  5. 功能开关(Feature Toggle)

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

原文链接:EP133: API vs SDK

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