# 将您的服务迁移到云托管

大多数后台服务,通常包含以下组件:

  • 服务本体
  • 持久化服务(各类数据库、文件存储)
  • 基础设施(如消息队列、服务注册发现中心、监控系统、日志系统等)

# 迁移服务本体

CloudBase 云托管适用于部署无状态的容器化服务,您需要将您的服务改造为此种类型。

# 无状态服务

无状态服务即服务在处理单个请求时,不需要持久性地保存上下文,以保证服务可以做到任意横向扩容

无状态服务的每个服务节点之间是完全等价的,请求可能会由随机的任意节点进行处理,并且节点可能会被动态地销毁、重建、扩容,所以您不应该在节点上保存任何状态,例如:

  • 使用本地内存储存 HTTP Session;
  • 使用本地文件储存数据;
  • 业务逻辑中使用某个节点的 IP。

如果您有以上的需求,可以考虑如下解决方法:

  • 使用 Redis 等外部数据库储存 HTTP Session;
  • 使用 CFS、对象存储等外部服务保存文件;
  • 使用服务对外 URL。

# 容器化

CloudBase 云托管只能部署基于 Docker 容器的应用,为了将服务封装到容器中,您应该使用 Dockerfile 来定义您的应用运行环境。

# 使用标准输出打印日志

CloudBase 云托管会自动收集您应用产生的标准输出,并提供 服务日志查询 功能。

# 迁移数据库

如果您已经拥有腾讯云内的任意数据库实例,可以将数据库和您的云托管服务所在的 VPC 配置为同一个,或者 打通它们所在的 VPC (opens new window)

# 迁移基础设施

云托管应用可以通过其所在的 VPC 访问任意云上资源,如果您的基础设施已经部署在腾讯云内,则只需要 打通 VPC (opens new window) 即可让您的服务访问您的基础设施。