分享-拨开浮云见神马-云计算PaaS平台实战
这是今天部门内部分享的PPT
拨开浮云见神马-云计算PaaS平台实战
View more presentations from neosoyn
Slideshare有些失真,ppt下载地址:PPT下载
首先介绍云计算概念PaaS+SaaS+IaaS。
然后以Cloud Foundry为PaaS代表。
使用Sinatra编写一个连接MySql查询CSDN用户信息的小应用,并部署到Cloud Foundry上。
本来想详细演示下这些功能
- 简单的hello world应用
- 连接mysql查询CSDN用户信息
- 给应用进行集群
- 演示应用的热部署。
后来由于网速等的不给力,走马观花过了一遍。
cloud foundry 官网:http://cloudfoundry.com
cloud foundry 源码:https://github.com/cloudfoundry
源码基本同http://rubyer.me/blog/1234,只是修改的访问数据库的代码。
#hello.rb require 'active_record' require 'sinatra' require 'json' services = JSON.parse(ENV['VCAP_SERVICES']) mysql_key = services.keys.select { |svc| svc =~ /mysql/i }.first mysql = services[mysql_key].first['credentials'] #d7c8cf2bdb43179768bbc47e01636a这个是数据库名,没有找到相应的环境变量,所以写死了。 mysql_conf = {database: 'd7c8cf2bdb43179768bbc47e01636a', :host => mysql['hostname'], :port => mysql['port'], :username => mysql['user'], :password => mysql['password'], adapter: "mysql2", encode: "utf8"} ActiveRecord::Base.establish_connection(mysql_conf) class Csdn < ActiveRecord::Base end # get "/"接收对根目录的get请求 get "/" do #可以接收请求中的参数 @key = params[:key] #如果参数来为空,说明是查询请求 if @key.present? @csdns = Csdn.where("email like ? or username like ?", "%"+@key+ "%", "%"+ @key+"%" ) end #Sinatra可以渲染erb模板 erb :index end
views/index.html.erb源码
Your missing hack tool Your missing hack tool(CSDN)</pre> <form action="/" method="get">search for: <input type="text" name="key" value="<%= @key if @key %>" /> <input type="submit" value="submit" /></form> <pre> </pre> <div id="result"> <h3>Csdn results: ()</h3> <table> <tbody> <tr> <td>name</td> <td>email</td> <td>pwd</td> </tr> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </div> <h1> </h1> <pre>
哈哈, ppt的名字起的不错
我的app在vmc每次都启动不到…搞甚麼= =”
一般是因为cloudfoundry缺少一些包导致的,查看原因
可以vmc logs