这节谈谈如何把之前写的代码部署到云服务上。
先简单介绍一下云计算:
云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户--百度百科。
云部署的类型(通俗易懂):
公有云(Public Cloud):暴露在公众范围,可以被任何人使用,通常用来给公众建立云服务,比如Amazon Web Services(AWS)。(共享“男/女朋友”)
私有云(Private Cloud):由单一组织或个人使用,只有该组织或者个人有权限获得并且管理它。(专属男/女朋友,唯一的合法夫妻)
混合云(Hybrid Cloud):介于公有和私有云之间,敏感的应用保存在私有云,仅有该组织或个人可以使用,公有云上的服务可以被任何人使用。(已婚人士搞婚外恋情,你的小三也可能是别人的老婆或小四)
云部署的类型可以在你购买的云服务的控制台(Console)中设置权限。
三种不同的云计算服务:
On-premises: 本地化部署
IaaS: Infrastructureas a service
PaaS: Platformas a service
SaaS: Softwareas a service
网上关于这个的解释有很多,下面放几个图来概括一下就理解了:
上图从左到右被提供的服务越来越多,你自己需要做的事情越来越少。
所以针对我们在云端执行你写的代码,一般要购买使用其实是云服务器IaaS,而SaaS是直接提供给商家使用的,比如某个做社交电商的SaaS,把电商平台上面的公域客户转化到用户自己的微商城里面,那么电商平台上的商家就不需要做其他的努力去挖掘客户,对客户进行分类,划分等级,及一些后台应用的维护和管理,而是可以直接获取到客户群体资源。
现在市面上的云服务提供商日渐增多,服务类型也丰富多彩。
不同的云平台所覆盖的区域:
云服务提供商的收费模式有按秒收费,也有按小时收费,或者按月,按年购买。可以访问各自官网购买,丰俭由人。
购买好之后,可以开启你的实例,开启实例的方法在不同云平台大同小异,可以查看相应云服务提供商的官网。
在云端配置运行环境和执行代码
这边我使用的是CentOS7 Linux,它自带ptyhon2.7,但是现在大部分使用的都是python3以上了,所以需要自己安装python3。
先下载一个WinSCP方便文件传输。
https://www.ssh.com/ssh/winscp/#downloading-winscp-for-windows
登陆进去之后,左上角这些图标就不再是灰色了,可以发现在左上角的方框中有个可以连接PuTTY的按钮,点击它,就可以进入下面界面:
输入密码,回车登入进去。
然后要在你目前登陆的PuTTY界面中开始安装你需要的python版本。
1. 建立环境:
yum install gcc openssl-devel bzip2-devel libffi-devel -y
2.下载python安装包并解压:
curl -O https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -xzf Python-3.7.4.tgz
3.安装python3:
cd Python-3.7.4
compile python
./configure --enable-optimizations
结束安装,不替换掉原有自带的python2.7版本:
make altinstall
测试一下我们安装的python3.7:# python3.7
退出python3.7:# exit()
安装你需要使用的package
pip3 install numpy pandas pymysql datetime
上传文件和执行文件
建立目录
可以直接在WinSCP上面新建目录,也可以使用代码创建(这里不是建立文件,所以这里不用touch而是用mkdir):
mkdir python_proj
然后通过WinSCP上传你要执行的.py文件,如果你的.py文件里面有需要读取的文件,那么可以和执行文件放在同一个目录下面,代码里面文件的路径直接写上需要读取的文件名字就行了。
如下所示:
进入到你要执行的.py文件的文件夹里面
cd python_proj
执行文件
pythons3 marketing_center.py
另外需要注意的是如果你的代码里面有中文字符是会报错的,此时需要在你的.py文件里面的代码顶端再加一行代码:
# -*- coding: UTF-8 -*-
再者,如果你的得到的结果需要存储到MySQL的话,需要在服务器上安装MySQL,方法如下:
1.下载:
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.准备仓库(安装源):
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
3.安装mysql
sudo yum install mysql-server
4.安装完成之后不会自动开启,开启mysql:
sudo systemctl start mysqld
5.检查你安装的mysql状态,输出你安装的Mysql的信息:
sudo systemctl status mysqld
上面的代码执行完,如果有输出到mysql,那么我们可以在自己的电脑上面查看输出的结果:
本地使用的是windows系统,使用 Navicat Premium 和云端IP创建连接查看,和前面叙述的使用WinSCP连接过程类似,连接之后就可以查看你运行输出的结果了。
送书:后台回复Doing Data Science