CaaS 的工作原理是提供一个围绕容器编排引擎构建的托管式环境,而 Kubernetes 是容器编排引擎的业界标准。该流程在开发者与底层基础架构之间实现职责分离:
开发者的工作:首先,他们必须能够将所有依赖项及应用一起打包成容器映像。该映像是应用的可移植蓝图。
完成后,CaaS 产品将接管:构建和存储工作一旦完成,剩下的就是通过 API 或接口来实施管理。CaaS 产品(例如 Google Kubernetes Engine)可以帮助处理其他所有事项。现在是为程序定义运行状态的时候了。需要三台运行相同程序的服务器?这项服务可以提供帮助。
之后,新部署将自动完成。这可能包括:
CaaS 是一个多功能平台,可为各类架构和开发实践提供基础。
可作为应用和微服务部署的理想平台。
可作为对旧版应用进行现代化改造和打包的绝佳方式。
对于开发工作流而言,CaaS 平台是理想之选。自动化系统可以构建新的容器映像、运行测试,然后以零停机时间的方式将其部署到 CaaS 平台。
CaaS 可自动处理流量需求。该平台可根据用户需求自动添加或移除容器实例。
基于 Kubernetes 等开放标准构建的 CaaS 平台能够跨本地数据中心和多个公有云提供一致的运维环境。这有助于企业在任何地方运行容器化应用,而无需对应用架构进行重新设计。
“即服务”领域涵盖多种模型,每种模型都提供不同层级的抽象和管理。CaaS 独特地介于基础设施即服务 (IaaS) 和平台即服务 (PaaS) 之间。
云模型 | 您管理的部分 | 抽象级别 | 典型的应用场景 |
基础设施即服务 (IaaS) | 操作系统、中间件、运行时、应用和数据。 | 低层:提供对虚拟机和存储等原始计算资源的访问权限。 | 从零开始构建自定义基础设施。 |
容器即服务 (CaaS) | 应用和配置。 | 中层:管理集群和操作系统,但您仍然可以控制容器环境。 | 大规模编排容器化应用。 |
平台即服务 (PaaS) | 应用和数据。 | 高层:几乎管理所有内容;您只需提供源代码,由平台负责运行。 | 快速部署简单的 Web 应用和 API。 |
函数即服务 (FaaS)(无服务器) | 仅代码函数。 | 非常高:在事件触发时运行单个无状态函数。 | 轻量级、事件驱动型数据处理任务。 |
软件即服务 (SaaS) | 无(您是最终用户)。 | 完整:通过网络交付成品软件。 | 使用邮件或 CRM 等现成软件。 |
云模型
您管理的部分
抽象级别
典型的应用场景
基础设施即服务 (IaaS)
操作系统、中间件、运行时、应用和数据。
低层:提供对虚拟机和存储等原始计算资源的访问权限。
从零开始构建自定义基础设施。
容器即服务 (CaaS)
应用和配置。
中层:管理集群和操作系统,但您仍然可以控制容器环境。
大规模编排容器化应用。
平台即服务 (PaaS)
应用和数据。
高层:几乎管理所有内容;您只需提供源代码,由平台负责运行。
快速部署简单的 Web 应用和 API。
函数即服务 (FaaS)(无服务器)
仅代码函数。
非常高:在事件触发时运行单个无状态函数。
轻量级、事件驱动型数据处理任务。
软件即服务 (SaaS)
无(您是最终用户)。
完整:通过网络交付成品软件。
使用邮件或 CRM 等现成软件。
容器旨在让您的软件能够随处交付、无处不达。详细了解容器。
是。事实上,它们还能带来许多其他优势,例如责任分离、应用隔离、批处理以及混合云部署。
Google Kubernetes Engine (GKE) 通过与 Kubernetes 的原生机制(例如 Service 对象和 DNS)无缝集成,简化了服务发现。作为一项托管式服务,GKE 通过多集群 Service (MCS) 和与 Service Directory 的直接集成等功能增强了其能力。
新代码可以更快地创建和部署,而资源无需反复分配或规划。
采用 CaaS 平台可以为企业开发和运维团队带来多项战略优势。
可移植性
CaaS 可帮助处理工作负载。如果容器化应用运行在标准 CaaS 框架上,就可以轻松进行修改。
可伸缩性
您可以根据需要调整资源。
快速编码
这有助于改进自动化实践。
改进的维护
如果某个组件出现故障,平台会立即处理并快速修复,以确保用户功能不中断。
提供商负责底层工作,这样您只需关注应用的代码、账号访问权限、防火墙和访问规则。CaaS 环境中的安全基于共享责任模型。CaaS 提供商负责保护底层基础设施的安全。这包括保护容器编排控制平面、保障物理数据中心和网络的安全,并确保托管式服务本身的完整性。
客户负责其所控制组件的安全。这包括保护应用代码、使用 Identity and Access Management (IAM) 管理对集群的访问、配置网络政策以控制容器间的流量,以及最重要的是确保软件供应链的安全。这意味着使用安全的容器注册表,并在部署之前扫描容器映像是否存在已知漏洞。
IT 团队的职责:
Google Kubernetes Engine (GKE) 是 Google Cloud 的首要 CaaS 产品。设置基本部署遵循合乎逻辑的容器原生工作流。
步骤 1:将应用容器化。
首先,为您的应用编写一个文本文件。这个简单的文本文件包含指令,用于将应用、其依赖项和运行时环境构建成静态容器映像。
第 2 步:将映像存储在注册表中。
根据文本文件构建容器映像,并将其推送到安全的私有注册表中。Artifact Registry 是 Google Cloud 的一项托管式服务,用于存储容器映像并对其进行版本控制。
第 3 步:创建 GKE 集群。
使用 Google Cloud 控制台或 gcloud 命令行工具预配 Kubernetes 集群。如需获得可自动执行节点管理和伸缩的全托管式体验,您可以选择 GKE Autopilot 集群。
第 4 步:定义部署。
创建 Kubernetes 清单文件(例如 deployment.yaml)。在此文件中,您以声明方式定义应用的期望状态,指定容器映像、副本数量以及所需的 CPU 和内存资源。
第 5 步:将应用部署到集群。
使用 Kubernetes 命令行工具 kubectl 将清单文件应用到集群。GKE 的控制平面接收到请求,并安排应用容器在集群的工作节点上运行。
第 6 步:公开您的应用。
如需让用户可以通过互联网访问您的应用,请创建 LoadBalancer 类型的 Kubernetes Service 清单。应用此清单后,GKE 会自动预配一个云负载均衡器并为其分配一个公共 IP 地址,将外部流量路由到正在运行的容器。