跳到主要内容

C2-03-04-工作负载与运行机制与高频服务对比与决策

本篇是《C2-03-容器Serverless与应用运行平台》的第4个分篇,主要包含:工作负载与运行机制、高频服务对比与决策。

10-★★★★★-工作负载与运行机制

10.1-★★★★★-Workload

Workload,中文为:工作负载。

它是 AWS 文档和考试中极其常见的词。

不是“员工工作量”。

而是:

在计算系统中需要运行的一组应用、服务、任务和数据处理活动。

例如:Web Workload、Batch Workload、Database Workload、Container Workload、Machine Learning Workload。

选择 AWS 服务,本质上是在问:这个 Workload、需要什么运行模型?


10.2-Runtime-是什么?

Runtime,中文为:运行时 / 运行环境。

例如:Node.js Runtime、Java Runtime、Python Runtime、.NET Runtime。

Application Code 不能凭空执行。

它需要 Runtime。

在不同 Compute 抽象中:

EC2
你自己安装 Runtime

Container
Runtime 通常打进 Image

Lambda
使用 Lambda 支持的 Runtime 或自定义运行方式

10.3-Scheduling-是什么?

Scheduling,中文为:调度。

决定某个 Workload 应该在哪个计算资源上运行。

例如:

Task


Scheduler

├── Node A:满
├── Node B:有资源
└── Node C:不满足条件


Run on Node B

ECS / Kubernetes 都涉及 Scheduling。

题目如果强调:container scheduling、cluster management。

就已经进入 Container Orchestration 领域。


10.4-Scaling-在-Container-世界里有两层

10.4.1-第一层:Workload-Scaling

Product Tasks:
10

100

也就是 Container / Pod 副本增加。


10.4.2-第二层:Compute-Capacity-Scaling

如果 Container 运行在 EC2:

EC2 Nodes:
3

20

这是底层 Capacity 增加。

因此:Container 副本够不够底层机器够不够 是两个不同问题。

Fargate 的价值之一就是让客户少操心第二层。


10.5-Container-的状态与数据

Container 经常被设计成:Disposable、Replaceable、Stateless-friendly。

即:

坏了

重建一个

所以关键业务数据通常不应该只存在 Container 本地临时文件里。

更常见:

Container

├── S3
├── EFS
├── RDS
├── DynamoDB
└── ElastiCache

下一章 C2-04 会正式进入 Storage。

C2-05 会正式进入 Database / Cache。



11-★★★★★-高频服务对比与决策

11.1-ECR、S3-都能“存东西”,为什么不是一回事?

ECR:专门管理 Container Image。

S3:通用 Object Storage。

虽然 Container Image 底层也是一种数字数据,但架构语义不同。

题目写:Docker images、OCI images、container registry。

优先:ECR。

题目写:object storage、backup、static assets、data lake。

优先:S3。


11.2-ECS、EKS-与-Elastic-Beanstalk-的区别

服务你主要提交什么平台核心
Elastic BeanstalkApplication Code / Application PackageManaged Web App Environment
ECSContainer WorkloadAWS-native Container Orchestration
EKSKubernetes WorkloadManaged Kubernetes
LambdaFunction CodeServerless Function
FargateContainer Resource RequirementsServerless Container Compute

注意:Elastic Beanstalk 与 ECS/EKS 都可能最终运行 Web Application。

但抽象和操作模型不同。


11.3-ECS、EKS-与-Batch-的区别

AWS Batch 已在 C2-02 介绍。

Batch 解决:大量 Job、排队、调度、自动获得 Compute、运行完成后退出。

ECS/EKS 解决更广义的:Container Orchestration。

AWS Batch 自身也可以利用 Container Compute。

因此:Batch、不等于、ECS。

但底层技术可以组合。


11.4-高频英文词汇

英文中文本章含义
Container容器隔离的应用运行环境
Image镜像创建 Container 的模板
Registry镜像注册表存储和分发 Image
Orchestration编排管理大量 Container
Cluster集群一组共同工作的计算资源
Node节点Cluster 中的计算节点
Task任务ECS 中的运行单元
Task Definition任务定义ECS Task 的运行说明
Service服务ECS 中维持长期 Task 的逻辑对象
PodPodKubernetes 的重要调度单位
Runtime运行时代码执行环境
Scheduling调度决定 Workload 在哪里运行
Trigger触发器触发 Lambda 的事件来源
Invocation调用一次 Function 执行
Stateless无状态不依赖单一实例本地状态
Serverless无服务器客户不直接管理服务器
Workload工作负载需要运行的应用/任务集合

11.5-高频服务选择决策树

我要运行应用

├── 需要完整虚拟服务器控制?
│ │
│ └── 是 → EC2

├── 已经 Containerized?
│ │
│ ├── Kubernetes?
│ │ └── 是 → EKS
│ │
│ └── AWS 原生容器编排
│ └── ECS

├── Container 不想管理底层 Server?
│ └── Fargate

├── Event-driven Function?
│ └── Lambda

└── 只是想快速部署常见 Web App Environment?
└── Elastic Beanstalk

注意:ECS/EKS、与、Fargate、不是互斥关系。

所以真正架构可能是:ECS + Fargate、EKS + Fargate。


11.6-最容易混淆的五组关系

11.6.1-ECR-vs-ECS

ECR 存 Image

ECS 运行 / 编排 Container

11.6.2-ECS-vs-EKS

ECS: AWS-native container orchestration

EKS: Managed Kubernetes

11.6.3-ECS-vs-Fargate

ECS: Orchestrator

Fargate: Compute

11.6.4-Lambda-vs-Fargate

Lambda: Function

Fargate: Container

11.6.5-EC2-vs-Container

EC2: Machine-level compute

Container: Application-level packaging/runtime

Container 可以运行在 EC2 上。

不是必须二选一。


11.7-719-题中常见的题目语言

看到下面这些词,应形成第一反应,但不要机械背答案。

11.7.1-Docker-/-Container

Docker、containerized application、container image、container orchestration、cluster、scheduling。

候选:ECR、ECS、EKS、Fargate。


11.7.2-Kubernetes

Kubernetes、K8s、managed Kubernetes。

候选:EKS。


11.7.3-不想管理-Container-Server

without managing servers、without managing EC2 cluster、serverless containers。

候选:Fargate。


11.7.4-Event-driven-Code

run code in response to events、without provisioning servers、event-driven、function。

候选:Lambda。


11.7.5-Container-Image-Repository

store Docker images、container registry、OCI image。

候选:ECR。


本篇概述

  • 本篇梳理了工作负载与运行机制相关的核心知识、适用场景与判断要点。
  • 本篇梳理了高频服务对比与决策相关的核心知识、适用场景与判断要点。

返回本章总述查看本章概述