本周系统设计复习:
- 为什么 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 大最常用部署策略
- 大爆炸部署(Big Bang Deployment)
- 滚动部署(Rolling Deployment)
- 蓝绿部署(Blue-Green Deployment)
- 金丝雀部署(Canary Deployment)
- 功能开关(Feature Toggle)
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP133: API vs SDK。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。