本文尝试部署一个express demo到云托管,走通云托管流程,为下一篇高级使用做准备。
云开发、tcb、cloudbase

大纲:

  • 新建一个 express 工程
  • 编写dockerfile
  • 云托管新建服务、新建版本部署
  • docker构建成镜像上传至腾讯云个人版容器
  • 调整访问服务,公网访问

参考链接:

0 概念

云托管

什么是腾讯云托管?这是腾讯出的一个产品,可以运行容器化应用,结合腾讯云的周边生态,做到serverless 服务。有点虚,先看介绍:

云托管(Tencent CloudBase Run)是云开发(Tencent CloudBase,TCB)提供的新一代云原生应用引擎(App Engine 2.0),支持托管用任意语言和框架编写的容器化应用。和云开发其他产品(云函数、云数据库、云存储、扩展应用、HTTP 访问服务、静态网站托管等)一起为用户提供云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用、微服务应用、Flutter 客户端等),避免应用开发过程中繁琐的服务器搭建及运维,使开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。 — https://cloud.tencent.com/document/product/1243

关键词:托管容器化应用、提供云原生一体化开发环境、后端云服务、避免繁琐的服务端搭建和运维、专注业务逻辑。

这就为我们展示了开发愿景,一个程序员开发web服务,利用云托管让服务上云、高可用、轻运维。无论是后端、前端、原生app都可以使用。

云托管和云函数有点相似,都是云端运行后端服务,不同的是云托管颗粒度更大,一个应用可能包含多个函数,多个功能。

计费方式

云托管的计费方式值得一提,里面很多概念需要提前理解清楚。
扣钱方式有两种:

  • 计量付费。也就是每天一结算,花多少扣多少
  • 资源包。套餐模式,先花钱买套餐,一般来说套餐给的比较多,和手机流量一个道理。

我们从免费赠送的套餐来开始算

资源细项 免费额度 定价
CPU 720(核 × 小时) 0.055元/(核*小时)
内存 1440 (GiB × 小时) 0.032元/(GiB × 小时)
流量 500GB 0.8元/GB
构建 600分钟 0.05元/分钟

假设有一个一个node服务,需要1核cpu+1G:

  • CPU运行一个月需要使用 24*30=720小时,刚好用完CPU额度
  • 内存运行一个月需要 720小时,才用了一半的额度

掌握了这个计算方法,再来看官方说明,就容易理解了

免费额度可支持您体验:1个1核2GiB的实例常驻运行30天,或 2个0.5核1GiB的实例常驻运行30天,或 1个2核4GiB的实例常驻运行15天。

再反过来看,要花多少钱呢?

  • CPU,720小时1核,720*0.055=39.6元
  • 内存,720*0.032=23.04 元

具体定价场景可参考 https://cloud.tencent.com/document/product/1243/48039

请务必注意,从serverless机制特征来看,一般会有一个自动升降级的机制,也就是最低0核。如果没有流量会销毁环境,不运行,也就不扣钱。

配置、使用、部署

按照大纲:

通过查看express工程可以看到,我们可以通过 npm run app.js来启动这个node服务,这个服务需要长期运行,很适合演示云托管的使用场景。

编写dockerfile

具体看 dockerfile,简单来说,就是封装node为docker,这样只要有 docker 环境,不管你用啥语言写的都可以跑。如果你不理解docker,可以看我的其他分享文章 前端可以弄懂的Docker基础

操作命令如下:

  1. # 构建
  2. docker build -t helloworld .
  3. # 查看镜像
  4. docker images

现在我们本地就有了docker 镜像

云托管新建服务、新建版本部署

服务 - 版本 - 实例。我们访问的是A服务下的B版本C实例。

什么是服务。不同服务对应不同的云托管资源,一个环境有多少个云托管服务,就对应多少个服务。通过新建服务,我们可以指定腾讯云镜像仓库。

image.png

什么是版本。我们会部署多次,每次部署都相当于发版,有版本号的概念。进一步有灰度的概念,可以并行存在多个版本,这里叫流量策略。

image.png

注意图中有低成本、高可用两种模式。

  • 低成本默认提供一个起步规格,如果cpu用的多了自动升级,优点不用不花钱,缺点冷启动。
  • 高可用。始终有一个常驻实例,最低0.25核+0.5G,一天 CPU 6/(小时*核),内存12,一个月的话 CPU180,内存360,刚好对应入门的云托管资源包,一个月35元的成本,换来的是服务高可用。

image.png

文档 https://cloud.tencent.com/document/product/1243/48276

docker构建成镜像上传至腾讯云个人版容器

我们有了本地镜像,按照下图,推送到远程。

image.png

调整访问服务,公网访问

剩下的就是常规操作了。

image.png

云开发 - 环境 - 访问服务 - HTTP 访问服务 - 新建
image.png


  • 未来的目标,做一个图片压缩服务,利用Google的 squoo cli 服务