最近看到一篇Google云计算的文章,介绍了Google Cloud Run应用。 简单说Google Cloud Run就是一个无服务器,轻量级的容器环境。其特点在于便宜,不是小型的应用不需要租用服务器,完全由平台托管,不需要考虑底层的东西,专注于应用的开发即可。应用打包为容器,配置一些参数后即可部署完成,而且按照流量计费,一天几块钱。这么好玩的东西,我也摸一摸。由于众所周知的原因,Google不对大陆服务,注册Google cloud时付款是个问题,需要境外信用卡。虽然有解决办法,但很难注册下来。条件不允许,Google云就放弃了。
西方不亮东方亮,搜一搜国内云大厂里类似云服务,阿里云和华为云都支持无服务架构。阿里云无服务架构是云弹性容器实例(Elastic Container Instance),有部署nodejs的案例。华为云无服务器架构是云容器实例服务CCI(Cloud Container Instance)。有实现Nginx负载案例。
动动手吧,小试一下无服务架构,我们跑一个Node.js的容器镜像在华为云CCI中,访问一个页面显示hello world。首先本地把Node.js调试好,然后制作容器镜像,最后部署上云。
第一步,本地测试Node.js
Node.js是一个在服务器后端运行JavaScript的环境,按照这里的过程安装配置Node.js,创建一个简单的hello world应用可参考这里。动手试试在本地运行起来hello world吧。server.js代码如下:
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');
第二步,制作Docker容器镜像
Docker容器是一个最小化的应用运行环境,按照这里进行Docker安装,参考Docker简明教程熟悉Docker基本操作。本例中Dockerfile为:
FROM node:stretch-slim
RUN npm install
COPY . .
CMD ["node", "server.js"]
我们使用stretch-slim版本的node,体积远小于完整版本的node。参考这里制作docker镜像,生成tar包。
第三步,部署容器镜像
在华为云官网注册登入后,搜索CCI(云容器实例),进入“立即使用”,参考Nginx案例熟悉部署配置过程。我们在容器配置中将上面生成的tar包上传至华为云,其他配置都按照最小原则进行配置,跑一个hello world绰绰有余。配置界面的下方会出现按需计费的费用情况,可以参考计算一下跑一天要多少费用。
本文中代码较少、没有配图,原因是相关案例链接中都有详细的过程介绍。按照案例完成相关案例的操作,变换一点点思路就可以完成这次无服务架构的试验,动起手来才能学会。