本周系统设计复习:

  • 并发 vs. 并行!
  • 版本号是什么意思?
  • 找工作?这个免费 AI 工具可以让你获得更多面试!
  • 网络安全 101 一张图
  • 什么是 k8s(Kubernetes)?

语义化版本(SemVer)

语义化版本是一个软件版本方案,旨在传达关于版本中底层变化的含义。

SemVer 使用三部分版本号:MAJOR.MINOR.PATCH

  • MAJOR 版本:当有不兼容 API 变化时递增
  • MINOR 版本:当以向后兼容方式添加功能时递增
  • PATCH 版本:当进行向后兼容的 bug 修复时递增

示例工作流

  1. 初始开发阶段

    • 从版本 0.1.0 开始
  2. 首次稳定发布

    • 达到稳定版本:1.0.0
  3. 后续变化

    • Patch 发布:1.0.0 需要 bug 修复。更新到 1.0.1
    • Minor 发布:新的向后兼容功能添加到 1.0.3。更新到 1.1.0
    • Major 发布:1.2.2 中引入不向后兼容的重大变化。更新到 2.0.0
  4. 特殊版本和预发布

    • 预发布版本:1.0.0-alpha、1.0.0-beta、1.0.0-rc.1
    • 构建元数据:1.0.0+20130313144700

网络安全 101

网络安全介绍

网络安全是保护系统、网络和数据免受数字攻击的实践。

CIA 三要素

  • 机密性(Confidentiality):确保信息仅对授权人员可访问
  • 完整性(Integrity):维护数据的准确性和完整性
  • 可用性(Availability):确保授权用户需要时可以访问信息

常见网络安全威胁

  • 恶意软件
  • 网络钓鱼
  • 勒索软件
  • DDoS 攻击
  • 中间人攻击

基本防御机制

为对抗这些威胁,采用几种基本防御机制:

  • 防火墙:监控和控制进出网络流量的网络安全设备
  • 杀毒软件:设计用于检测和移除恶意软件的程序
  • 加密:将信息转换为代码以防止未经授权访问的过程

网络安全框架

  • NIST 网络安全框架
  • ISO 27001
  • CIS Controls

Kubernetes(k8s)简介

k8s 是一个容器编排系统。它用于容器部署和管理。它的设计深受 Google 内部系统 Borg 的影响。

k8s 集群架构

k8s 集群由一组工作机器(称为节点)组成,运行容器化应用。每个集群至少有一个工作节点。

工作节点托管 Pods,这是应用工作负载的组件。控制平面管理工作节点和集群中的 Pods。在生产环境中,控制平面通常在多台计算机上运行,集群通常运行多个节点,提供容错和高可用性。

控制平面组件

  1. API 服务器

    • API 服务器与 k8s 集群中的所有组件对话
    • 对 Pod 的所有操作都通过与 API 服务器对话执行
  2. 调度器

    • 调度器监视 Pod 上的工作负载
    • 在新创建的 Pod 上分配负载
  3. 控制器管理器

    • 控制器管理器运行控制器
    • 包括 Node Controller、Job Controller、EndpointSlice Controller 和 ServiceAccount Controller
  4. etcd

    • etcd 是键值存储,用作 Kubernetes 所有集群数据的备份存储

节点组件

  1. Pods

    • Pod 是一组容器,是 k8s 管理的最小单位
    • Pod 有一个 IP 地址应用于 Pod 内的每个容器
  2. Kubelet

    • 在集群中每个节点上运行的代理
    • 确保容器在 Pod 中运行
  3. Kube Proxy

    • kube-proxy 是在集群中每个节点上运行的网络代理
    • 它路由来自服务的进入节点的流量
    • 它将对工作的请求转发到正确的容器

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

原文链接:EP120: What do version numbers mean?

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