无服务器也能跑应用

最近看到一篇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绰绰有余。配置界面的下方会出现按需计费的费用情况,可以参考计算一下跑一天要多少费用。

本文中代码较少、没有配图,原因是相关案例链接中都有详细的过程介绍。按照案例完成相关案例的操作,变换一点点思路就可以完成这次无服务架构的试验,动起手来才能学会。

### 阿里云 ECS 支持 Python 运行环境配置教程 阿里云ECS确实支持Python运行环境的搭建,这使得开发者能够在该平台上轻松部署基于Python的应用程序和服务。 #### 安装wget工具 为了能够顺利下载所需的软件包,在某些情况下可能需要先安装`wget`工具。可以通过执行如下命令完成这一操作: 对于CentOS系统: ```bash yum install -y wget ``` #### 下载并解压Python源码文件 针对不同版本需求,可以选择不同的下载链接。例如要获取Python 3.8.1版本可以使用下面这条命令[^1];而如果想要更稳定的3.8.10版,则应采用另一条指令[^2]: ```bash # 对于Python 3.8.1 版本 (适用于CentOS) wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz # 或者选择Python 3.8.10 版本 (推荐稳定性更好, 可能稍慢一些) sudo wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz ``` 接着将压缩包移动到合适的位置如`/usr/src`目录下,并对其进行解压处理: ```bash tar zxvf Python-3.8.x.tgz -C /usr/src/ ``` 这里假设已经成功放置到了指定路径中。 #### 编译安装Python 进入刚刚创建好的解压后的文件夹内,按照常规流程编译安装新的解释器实例: ```bash cd /usr/src/Python-3.8.x ./configure --prefix=/usr/local/python3 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" make && make altinstall ``` 注意:为了避免覆盖默认自带的老版本Python,请务必使用`altinstall`而非普通的`install`选项来进行最终安装步骤。 #### 设置软连接方便调用新版本 为了让全局环境中可以直接通过简单的命令访问最新安装的Python版本,建议设置相应的符号链接: ```bash ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 ``` 此时应该可以在终端窗口里面直接键入`python3`来启动刚才所构建的那个特定版本了。 #### Web应用服务器UWSGI的安装 当涉及到Web应用程序比如Django项目时,还需要额外准备像uWSGI这样的专用web应用服务器组件。在Ubuntu环境下可通过以下方式快速获得所需依赖项以及插件集[^3]: ```bash apt-get update apt-get install uwsgi uwsgi-plugin-python uwsgi-plugins-all ``` 以上就是关于如何在阿里云ECS上建立适合Python开发工作的基本指导说明。当然实际过程中可能会遇到更多细节上的调整工作,具体取决于个人项目的特殊要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值