Module 04 · Create and Deploy Microservices using Serverless
IBM Cloud Code EngineCode Engine 简介
您好!以下是为您整理的关于 IBM Cloud Code Engine 的逐字稿内容,并已进行排版美化。
自托管微服务的挑战
在本地成功构建和测试微服务后,将其部署到生产环境并选择自托管(self-host)将面临许多非平凡的挑战:
1. 生产准备与构建
- 需要精心配置和构建微服务,使其满足生产要求,包括必要的资产(库依赖项、资源、凭证等)。
- 将代码编译并构建成可执行的二进制文件,以便在托管环境中运行。
2. 基础设施选择与配置
- 需要仔细选择运行微服务的基础设施,如 Web 服务器、操作系统、网络、数据库等。团队需要从众多选项中谨慎选择。
3. 动态伸缩(Scaling)
- 由于微服务面临波动的流量(例如电商网站在节假日流量激增),需要实现动态地向上或向下伸缩。
4. 服务间通信
- 通常需要部署多个相关微服务协同工作和通信,它们之间的通信需要可靠且安全。
5. 可观察性
- 需要进行日志记录(logging)、监控(monitoring)和仪表板(dashboards)工作,以确保所有微服务稳定,并识别甚至预见任何生产问题。
Python 微服务部署示例
对于 Python 微服务(如 Flask, Django 应用),不能直接启动服务,它需要一个 Web 服务器接口或入口点来调用微服务:
- WSGI (Web Server Gateway Interface):Python 中用于 Web 服务器和 Web 应用程序之间通信的主要标准,仅支持同步服务调用。
- 流行的 WSGI 服务器:Green Unicorn、uWSGI。
- ASGI (Asynchronous Server Gateway Interface):另一种 Web 服务器接口,支持异步代码,使微服务可以被异步调用。
- 流行的 ASGI 服务器:Daphne、Hypercorn。

无论是 WSGI 还是 ASGI Web 服务器,都需要在某种基础设施上运行(可以是笔记本电脑、专用工作站或复杂的集群)。在生产环境中部署微服务需要进行许多权衡和努力。
IBM Cloud Code Engine 概述
IBM Cloud Code Engine(简称 Code Engine)是一个全面且强大的平台,旨在简化微服务的部署。
核心目标与特性
- 抽象操作负担: Code Engine 抽象了构建、部署和管理工作负载的运营负担,使开发人员能够专注于代码开发。
- 简化部署: 帮助开发人员将代码推送到云平台,忽略基础设施。
- 服务模式整合: Code Engine 可以视为一个完全托管的、无服务器平台 ,它结合了 PaaS (Platform as a Service)、CaaS (Containers as a Service) 和 Serverless 部署模型所需的所有功能。
- 支持工作负载: 运行您的工作负载,包括微服务、Web 应用、事件驱动函数或批处理作业。
- 应用部署: 如果您构建了微服务,可以将其作为 Code Engine 应用程序运行,以直观的用户体验服务传入的 HTTPS 请求,而无需管理基础设施。
Code Engine 的三大主要用例(部署模式)
- 部署已构建的应用程序(Deploy Application):
- 部署一个已构建好的应用程序(可以是微服务、Web 应用或控制台应用)。
- 直接推送源代码(Source-to-Image):
- Code Engine 可以从源代码构建您的应用程序(无论是来自远程仓库如 GitHub 还是本地工作区)。
- 构建后的应用程序可以自动部署,无需担心构建过程,既方便又省时。
- 创建和运行批处理作业(Run Batch Jobs):
- 创建和运行批处理作业,如数据处理或分析任务。
- 示例: 如果您的微服务需要分析结果,您可以部署一个批处理作业来执行分析任务。所有部署的微服务和作业都托管在同一基础设施内,可以无缝协同工作。

Code Engine 的潜在益处
IBM Cloud Code Engine 提供了多方面的优势:
- 集群管理自动化: 负责所有的集群管理,包括服务器的置备、配置、伸缩和管理。您无需担心底层基础设施。
- 快速部署: 在数秒内构建并部署您的应用程序,这对于紧急更新非常重要。
- 自动伸缩: 自动向上和向下伸缩您的工作负载。
- 访问控制: 基于 IBM Cloud 基础设施和访问管理,控制平台和服务访问权限。
- 安全连接: 使用 TLS(Transport Layer Security)提供安全连接并隔离工作负载。
- 全面集成: 完全集成到 IBM Cloud,您可以利用 IBM Cloud 的完整服务目录。
总结
- 自托管微服务可能非常复杂且具有挑战性。
- IBM Cloud Code Engine 是一个完全托管的平台,负责所有复杂的部署工作,使开发人员能够专注于代码。
- IBM Cloud Code Engine 的三大主要用例是:部署应用程序、构建并部署应用程序以及运行批处理作业。