将您的服务迁移到云托管
大多数后台服务,通常包含以下组件:
- 服务本体
- 持久化服务(各类数据库、文件存储)
- 基础设施(如消息队列、服务注册发现中心、监控系统、日志系统等)
迁移服务本体
CloudBase 云托管适用于部署无状态的容器化服务,您需要将您的服务改造为此种类型。
无状态服务
无状态服务即服务在处理单个请求时,不需要持久性地保存上下文,以保证服务可以做到任意横向扩容。
无状态服务的每个服务节点之间是完全等价的,请求可能会由随机的任意节点进行处理,并且节点可能会被动态地销毁、重建、扩容,所以您不应该在节点上保存任何状态,例如:
- 使用本地内存储存 HTTP Session;
- 使用本地文件储存数据;
- 业务逻辑中使用某个节点的 IP。
如果您有以上的需求,可以考虑如下解决方法:
- 使用 Redis 等外部数据库储存 HTTP Session;
- 使用 CFS、对象存储等外部服务保存文件;
- 使用服务对外 URL。
容器化
CloudBase 云托管只能部署基于 Docker 容器的应用,为了将服务封装到容器中,您应该使用 Dockerfile 来定义您的应用运行环境。
使用标准输出打印日志
CloudBase 云托管会自动收集您应用产生的标准输出,并提供 服务日志查询 功能。
迁移数据库
如果您已经拥有腾讯云内的任意数据库实例,可以将数据库和您的云托管服务所在的 VPC 配置为同一个,或者 打通它们所在的 VPC。
迁移基础设施
云托管应用可以通过其所在的 VPC 访问任意云上资源,如果您的基础设施已经部署在腾讯云内,则只需要 打通 VPC 即可让您的服务访问您的基础设施。