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

  • HTTP 状态码 5 分钟解释
  • 公司如何将代码发布到生产
  • 输入 URL 后发生了什么
  • API 网关 3 大用例
  • 编写在所有平台上运行的代码
  • Docker 101:简化应用部署

公司如何将代码发布到生产

下图说明了典型工作流。

  • 步骤 1:流程从产品负责人基于需求创建用户故事开始
  • 步骤 2:开发团队从待办事项中挑选用户故事并放入冲刺进行两周开发周期
  • 步骤 3:开发人员将源代码提交到代码仓库 Git
  • 步骤 4:在 Jenkins 中触发构建。源代码必须通过单元测试、代码覆盖率阈值和 SonarQube 中的门禁
  • 步骤 5:构建成功后,构建存储在 artifactory 中。然后构建部署到开发环境
  • 步骤 6:可能有多个开发团队在不同功能上工作。功能需要独立测试,所以它们部署到 QA1 和 QA2
  • 步骤 7:QA 团队挑选新 QA 环境并执行 QA 测试、回归测试和性能测试
  • 步骤 8:一旦 QA 构建通过 QA 团队验证,它们部署到 UAT 环境
  • 步骤 9:如果 UAT 测试成功,构建成为发布候选并将按计划部署到生产环境
  • 步骤 10:SRE(站点可靠性工程)团队负责生产监控

输入 URL 后发生了什么

让我们一步步看这个过程。

  • 步骤 1:用户在浏览器中输入 URL(www.bytebytego.com)并按 Enter。我们需要做的第一件事是将 URL 转换为 IP 地址。映射通常存储在缓存中,所以浏览器在多层缓存中查找 IP 地址:浏览器缓存、OS 缓存、本地缓存和 ISP 缓存。如果浏览器在缓存中找不到映射,它将要求 DNS(域名系统)解析器解析它
  • 步骤 2:如果在任何缓存中都找不到 IP 地址,浏览器去 DNS 服务器进行递归 DNS 查找直到找到 IP 地址
  • 步骤 3:现在我们有了服务器的 IP 地址,浏览器向服务器发送 HTTP 请求。为了安全访问服务器资源,我们应该始终使用 HTTPS。它首先通过 TCP 三次握手与服务器建立 TCP 连接。然后它将公钥发送到客户端。客户端使用公钥加密会话密钥并发送到服务器。服务器使用私钥解密会话密钥。客户端和服务器现在可以使用会话密钥交换加密数据
  • 步骤 4:服务器处理请求并发送回响应。对于成功响应,状态码是 200。响应中有 3 部分:HTML、CSS 和 JavaScript。浏览器解析 HTML 并生成 DOM 树。它还解析 CSS 并生成 CSSOM 树。然后它组合 DOM 树和 CSSOM 树以渲染树。浏览器渲染内容并显示给用户

API 网关 3 大用例

API 网关位于客户端和服务之间,提供它们之间的 API 通信。

1. API 网关帮助构建生态系统

用户可以利用 API 网关访问更广泛的工具集。生态系统中的合作伙伴相互协作,为用户提供更好的集成。

2. API 网关构建 API 市场

API 市场为每个人托管基本功能。开发者和企业可以在此生态系统中轻松开发或创新,并在市场上销售 API。

3. API 网关提供与多平台的兼容性

处理多平台时,API 网关可以帮助跨多个复杂架构工作。

跨平台开发

开发在所有平台上无缝运行的代码是现代程序员的关键技能。

需求源于用户在各种设备和操作系统上访问软件的事实。由于硬件、软件环境和用户期望的差异,实现这种通用兼容性可能很复杂。

创建在所有平台上工作的代码需要仔细规划和理解每个平台呈现的独特挑战。

更好的规划和理解跨平台开发不仅简化流程,还有助于软件项目的长期成功。

它减少冗余、简化维护、确保一致性、提高满意度和市场覆盖。

Docker 101

厌倦了”在我的机器上可以工作”的困境?Docker 可能是你的救星!

Docker 革命性地改变了软件开发和部署。探索要点:

  1. 捆绑一切:Docker 将你的应用及其依赖打包到便携容器中——代码、运行时、工具、库和设置——一个整洁、自包含的包
  2. 虚拟隔离:容器提供打包和隔离。在单个主机上运行具有不同设置的不同应用而不会冲突,这要归功于 Linux 命名空间和 cgroups
  3. 不是虚拟机:与资源密集型虚拟机不同,Docker 容器共享主机 OS 内核,提供速度和效率。没有虚拟机开销,只有快速启动和轻松管理
  4. Windows 兼容性:Docker 根植于 Linux,也适用于 Windows。Docker Desktop for Windows 使用基于 Linux 的虚拟机,为 Windows 应用实现容器化

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

原文链接:EP81: How Companies Ship Code to Production

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