关于 IBM Cloud Lite
- 使用 IBM Cloud Lite(轻量) 套餐需要注册一个账户,注册是免费的,也无需信用卡,并且账户永不过期。
- 在 IBM Cloud Lite 套餐中包含 Cloud Foundry 服务,后端应用程序就是创建在这个上面。可以免费创建多个应用程序,只要这些应用程序占用的内存加起来不超过 256M 就 OK。如果超过 256M,就会产生费用。
- 如果创建的应用程序超过 10 天没有被访问,会进入休眠状态;如果超过 30 天没有被访问,则会被删除。
- 跟其他很多托管平台不一样的是,在 IBM Cloud 中创建的应用程序没有流量限制。
- 除了 Cloud Foundry 外,IBM Cloud Lite 套餐中还包含很多其他免费的服务,如 Cloudant 数据库。这些服务可以很好的与 Cloud Foundry 应用程序集成在一起。
虽然 IBM Cloud Lite 有较多好处,但如果博客访问量较大,还是建议购买其他服务商的付费产品。因为由于众所周知的原因,IBM Cloud Lite 的大多数服务器都无法访问,只有美国达拉斯的可以访问(下文会说到)。服务器在美国,且没有 CDN,所以访问速度非常慢,只适合小型博客使用。
注册 IBM Cloud 账户
注册地址:https://cloud.ibm.com/registration。注册需要一个电子邮箱,需要注意的是,登录的时候所需要的 IBMid 其实就是这个邮箱。
注册成功后就可以登录到 IBM Cloud 了,登录地址:https://cloud.ibm.com/login。
在 Cloud Foundry 上创建应用程序
在仪表盘页面,点击 “创建资源”:
点击 Cloud Foundry 创建 Cloud Foundry 应用程序:
创建一个公共应用程序:
接下来开始填写应用程序的相关信息并创建应用程序:
区域只能选择达拉斯,运行时选择 Python。
域选择 us-south.cf.appdomain.cloud,创建好应用程序然后访问的时候的域名就是 主机名.us-south.cf.appdomain.cloud,其他域都被墙了,所以域只能选择这个。
组织就是注册时的邮箱。
填写完成后点击右边的创建按钮。创建完成后会进入应用程序的管理页面:
点击运行时 -> SSH 可以远程连接到应用程序进行操作:
但使用在线的 SSH 只能进行简单管理,要实现应用程序的发布、构建等主要功能,需要依赖 ibmcloud cli 工具。
使用 ibmcloud cli 发布应用程序
ibmcloud cli 是用于管理 ibmcloud 上资源的命令行工具,在 linux 上可以使用 curl -sL http://ibm.biz/idt-installer | bash
命令安装。
要发布一个应用程序,需要经过以下步骤(命令行下):
- 登录到 IBM Cloud:
ibmcloud login
,ibmcloud cli 工具会以交互式的方式让用户登录到 IBM Cloud。 - 设置目标 Cloud Foundry 组织和空间:
ibmcloud target --cf
。 - 发布应用程序:
ibmcloud cf push
,这会将代码发布到默认的应用程序上。如果有多个应用程序,可以使用ibmcloud cf push 应用程序名
来将代码发布到指定的应用程序。
关于 ibmcloud cli 的详细用法,参考官方文档。
应用程序的结构
发布到 IBM Cloud 上的应用程序必须具有一些特定的文件:
- manifest.yml 文件,这个文件规定了应用程序的一些信息,如: ```yaml applications:
- name: marsvet # 应用程序名称
memory: 64M # 占用内存大小
routes:
- route: marsvet.us-south.cf.appdomain.cloud # 域名 ```
Procfile文件,该文件规定应用程序如何启动,如:
web: python app.py
requirements 文件。应用程序会自动安装该文件中指定的 Python 包。
可以从 https://github.com/IBM-Cloud/get-started-python
拷贝 IBM Cloud 提供的示例程序,这是个 flask 应用程序,可以完美运行在 IBM Cloud 上。在开发自己的应用程序时,可以将它作为基础模板。
连接 Cloudant 数据库
Cloudant 是 IBM Cloud 提供的一种键值数据库,它可以很容易地与 Cloud Foundry 应用程序集成起来。
每个 Lite 账户只能免费创建一个 Cloudant 实例,并具有 1GB 的免费空间。
创建完成后可以在 Cloudant 详情页面中管理对应的 Cloudant 实例。
Cloudant 实例有两种访问方法,一种是点击 管理 -> Launch Cloudant Dashboard 登录仪表盘,在网页端执行增删查改等操作:
第二种是在代码中连接数据库进行操作:
from cloudant import Cloudant # python 访问 cloudant 数据库需要安装 cloudant 包
from flask import Flask
DB_USERNAME = "xxxxx"
DB_PASSWORD = "xxxxx"
DB_URL = "xxxxx"
app = Flask(__name__)
client = Cloudant(DB_USERNAME, DB_PASSWORD, DB_URL, connect=True) # 连接 Cloudant 实例
@app.route('/dbtest')
def dbtest():
db = client.create_database("sentence", throw_on_exists=False) # 连接 sentence 数据库,如果不存在则新建
json_document = {
"sentence": "Where there's a start, there's a finish.",
"date": "2019-10-19"
}
new_document = db.create_document(json_document) # 创建一个文档
if new_document.exists():
return "数据库测试成功!"
用代码连接 Cloudant 实例,需要先 详情页面 -> 服务凭证 -> 新建凭证,然后点击查看凭证,找到凭证中的 username
、password
、url
字段,这三个字段是用代码连接数据库所需要的凭证,对应上面代码中的 DB_USERNAME
、DB_PASSWORD
、DB_URL
三个变量。
如何防止应用程序休眠
现在有很多免费的云监控服务,如阿里云监控,使用这些免费监控服务就可以定期访问 Cloud Foundry 应用程序,使它不进入休眠状态了。
云监控的使用方法不再赘述。