AppFog简介:
AppFog是一个基于Cloud Foundry的PaaS平台,类似Google APP Engine和Heroku。最底层是基于AWS, RackSpace,HP OpenStack, MS Azure这样的IaaS平台,中间层使用Cloud Foundry,最上层是AppFog。
以内存分配作为主要的定价规则,无缝切换IaaS平台,无需关心配置问题,专心Code,就是所谓的“Work on code, not management.”AppFog还提供了iphone App用来监控你的Web应用,由于是基于Cloud Foundry 所以可以同样适用很多第三方开源工具。可以通过他们的博客了解更多信息。
最重要的是Free方案很给力:
- 应用数量无限制,总数2GB 的RAM,数据库服务最大1GB,最多10个扩展(add-ons)
- 免费、可扩展和负载均衡的app
- 在各平台上使用最快的服务器实例(类似m2.4xlarge)
- 免费自定义域名
- 每月50GB流量
AppFog目前支持的编程语言包括:
- Java1.6.0,Java Grails2.0.3, Java Spring Mysql3.0.0
- Node0.6.8,Node Chat1.0.0,Node Express3.0.0
- PHP5.3.2,PHP Drupal7.14.0,PHP WordPress3.3.2
- Python2.7.3,Python Django1.4,Python Flask0.8
- Ruby on Rails3.2.5,Ruby Sinatra1.3.2
目前支持的数据库、扩展包括:
- MySQL5.1,PostgreSQL9.1,MongoDB1.8(数据库都是AppFog自身提供的)
- MongoLab,MongoHQ(以下扩展由第三方平台提供,可以一键安装)
- ClearDB ,IronMQ,IronWorker,Mailgun,Searchify,CloudMailin
Step1.注册服务。
非常简单。。。
Step2.创建一个APP
当你注册完成后,进入https://console.appfog.com/ ,点击New App,你可以看到app创建分三歩走:
第一步,选择一类应用,我们看到有三种支持的nodejs应用,nodejs,node chat node express,不管你是否使用了node express,选第一个nodejs都可以,关键是你在上传代码时加上所有你依赖的库,也就是node moudles那个文件夹放到代码跟目录即可。
第二步,选择一个服务器,随便你了,要说里你最近的就是新加坡的那个,使用的是亚马逊的云存储服务。
第三步,输入你的app子域名,也就是你给你的app起的名称。
之后,点击Create App,你会看到一个进度列表,当你看到‘done’后,你的应用就创建完毕了,简单吧。接下来,你将进入配置界面。
Step3.App配置
一个dashboard呈现在你面前:
看上去够简单吧,介绍下,Instances顾名思义,启动实例数目,memeory quota是内存分配,你有2G的内存,你自己根据应用大小决定分配给他多少内存。调整完后记得点击一下右下角蓝色的Update!显示Done之后就修改完成了。
Step4.创建数据服务
很大一部分的web应用还是需要数据库的,appfog提供了三种数据引擎,mongodb,postgresql,mysql。点击左侧边栏Services,选择一种数据服务,在下面输入名字,创建就好。
注意,还没有完,你需要将创建的服务和应用绑定(Bind)才能使用,不过你稍等片刻,他会自动给你绑定上。
Step5.修改代码并上传
修改代码重要的是你的数据库连接的代码,上面创建服务的页面有三种语言的连接实例,但是貌似打不开,nodejs可以使用下面代码:
if(process.env.VCAP_SERVICES){
var env = JSON.parse(process.env.VCAP_SERVICES);
var mongo = env['mongodb-1.8'][0]['credentials'];
}
else{
var mongo = {
"hostname":"localhost",
"port":27017,
"username":"你的用户名",
"password":"你的密码",
"name":"你的应用名",
"db":"db"
}
}
var generate_mongo_url = function(obj){
obj.hostname = (obj.hostname || 'localhost');
obj.port = (obj.port || 27017);
obj.db = (obj.db || 'test');
if(obj.username && obj.password){
return "mongodb://" + obj.username + ":" + obj.password + "@" + obj.hostname + ":" + obj.port + "/" + obj.db;
}
else{
return "mongodb://" + obj.hostname + ":" + obj.port + "/" + obj.db;
}
}
var mongourl = generate_mongo_url(mongo);
把mongourl赋值给你的数据库连接字符串就好了。
ps:我一开始忘记设置数据库连接,仍然保持开发时候的127.0.0.1配置应用也能正常运行,奇怪,后来改过来了。
上传代码你需要ruby gem 和gem下的af。ubuntu下,
sudo apt-get install ruby1.9.1 ruby1.9.1-dev gem
gem install af
cd ‘你的应用目录’
af login(之后输入你的邮箱和密码)
af update ‘你的应用名’
等待,一连串的ok后完成,回到dashboard点击右边Visit Live Site,看看是不是已经运行了?
ps:之前的Step2可以在代码根目录用af命令:af push来实现,过程就是做几个选择题和填空题。
pps:你需要将所有的依赖库node_moudles保留在根目录,肯定有人想用package.json让服务器自己npm install,这种方法当然可以,你需要npm shrinkwrap,具体方法在这里,但不如直接上传来的直接,而且免除莫名其妙的问题。
Step6.绑定域名
注意:现在只有付费服务才有绑定域名功能。
你已经有了一个appfog提供的域名,但如果你想使用自己的域名怎么办?appfog使用cname的方法绑定域名(如果你不知道cname是神马东东,google之)。具体操作:
点击做侧边栏Domain Names,在空白框内写入你的域名,update。然后去你的域名服务商那里设置解析方式cname,地址为红色的cname01开头的网址,appfog会自动根据你添加的域名进行定向,然后等待所有dns同步好你的信息,你就能访问了。
ok,6步,不出什么差错的话部署应该胜利完成了。
关于CLI控制appfog,看这里,http://docs.appfog.com/getting-started/af-cli
进阶请随时保持对文档的关注,但需要你一定的英文阅读的能力。
via:http://cnodejs.org/topic/5033ab60f767cc9a51ad9bc1
http://alimon.yangjian.me/post/%E4%BD%BF%E7%94%A8AppFog%E9%83%A8%E7%BD%B2Web%E5%BA%94%E7%94%A8
http://www.freehao123.com/appfog/
http://www.henghengzhu.com/share/144.html
-
所有主机信息仅是为及时分享并收录,不做推荐!