AppFog免费云空间使用教程

AppFog

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方案很给力

  1. 应用数量无限制,总数2GB 的RAM,数据库服务最大1GB,最多10个扩展(add-ons)
  2. 免费、可扩展和负载均衡的app
  3. 在各平台上使用最快的服务器实例(类似m2.4xlarge)
  4. 免费自定义域名
  5. 每月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呈现在你面前:
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

    所有主机信息仅是为及时分享并收录,不做推荐!
    专门搜集、分享国内高速、稳定的香港、日本、韩国、新加坡、美西CN2等优质线路的主机:FastVM