Coursera 笔记

Module 04 · Create and Deploy Microservices using Serverless

Project, Application, Build, and JobsCode Engine 核心概念

Coursera ↗

1. 项目 (Project)

在 Code Engine 中,项目代表一个分组,用于包含和管理其资源和实体。

  • 分组实体: 项目包含实体,如 **build(构建)、app(应用程序)、job(作业)**以及用于 TLS/HTTPS 连接的证书等。
  • 命名空间 (Namespace): 项目的一项重要功能是为其实体提供一个命名空间。
    • 命名空间是一种机制,用于在单个分组内隔离实体和资源组。
    • 实体名称在命名空间内必须唯一,但在不同命名空间之间可以重复。
  • 资源管理与访问控制: 项目负责管理资源并提供访问控制和审计。
    • 可以监控整个项目的资源分配(如总 CPU 或内存使用情况)。
  • 示例: 一个名为 my-project 的项目,用于分组并为其所有实体提供命名空间,并显示实体摘要(如 11 个应用程序和 2 个作业)。


2. 应用程序 (Application)

在 Code Engine 中,您的代码将作为应用程序运行。

  • 功能: 类似于常规部署的 Web 应用程序,运行中的应用程序可以服务 HTTP 请求或提供 REST API。
  • WebSockets 支持: 除了传统的 HTTP 请求,Code Engine 还支持使用 WebSockets 的应用程序。
    • WebSocket 是一种基于 TCP 的通信协议,常用于客户端和服务器之间长时间运行且基于会话的通信(例如聊天应用程序)。
  • 自动伸缩: Code Engine 通过创建或销毁应用程序运行实例来伸缩您的应用程序。
    • 应用程序运行实例的数量会根据传入的工作负载和您的配置设置自动向上或向下伸缩(可缩减到零)。


3. 构建 (Build)

在 Code Engine 的上下文中,构建(或镜像构建,Image Build)是一种可以用来从您的源代码创建容器镜像的机制。

  • 容器镜像内容: 容器镜像包含容器运行所需的所有资产,如可执行源代码、依赖项、资源、容器引擎、系统库、配置设置等。
  • 构建方式支持: Code Engine 支持以下两种构建方式:
    • Dockerfile: 一个文本文件,包含构建 Docker 容器镜像所需的所有命令。
    • Cloud Native Buildpack: 另一种流行的构建容器镜像的方式。它包含可执行文件,用于执行诸如检查源代码、创建构建计划或执行构建计划以生成镜像等任务。
  • 后续步骤: 从源代码构建容器镜像后,您可以将其部署到 Code Engine 并相应地创建应用程序。


4. 作业 (Job)

作业是您的代码的一次性执行(one-time execution)。

  • 执行方式: 像应用程序一样,作业运行可执行代码。根据工作负载,Code Engine 将创建一个或多个作业实例。
  • 与应用程序的区别: 与主要处理 HTTP 请求或 WebSocket 会话的应用程序不同,作业旨在运行一次并退出。
  • 配置: 在 Code Engine 中运行作业之前,您可以指定工作负载配置,这些配置在每次作业运行时都会使用。
  • 典型作业类型:
    • 数据处理作业: 以批处理方式查询和转换数据。
    • 机器学习模型训练作业。
    • 报告作业: 根据预设时间表生成报告。
    • 计费作业: 创建和发送账单。


总结

  • 项目 是 Code Engine 实体的分组,如应用程序、作业和构建。
  • 应用程序 运行您的代码,用于服务 HTTP 请求或创建 WebSocket 会话。
  • 构建 是从您的源代码创建容器镜像的过程。
  • 作业 运行您的可执行代码的一个或多个实例(一次性执行任务)。