rails:heroku基本说明
因为学习rails,使用教程railsBridge,台湾的中译版.地址如下
http://zh-tw.railsbridge.org
其中,在开首的章节里就提到如何设置初始环境.关于git服务器的选择,直接推荐使用heroku,刚开始直接的理解是他就是类似GitCafe的应用,于是没有在意,直接去GitCafe上创建了新的仓库,又鼓捣一整子提交,公钥的问题,当然遇到一些问题,早上起床就解决了.
在继续跳跃式阅读的过程中发现教程中说过将应用deploy到heroku上,这个引起了我的警觉,Heroku是一个托管服务器?直接集成Git与服务器的功能,开发人员只需要将程序在本地开发完成,接着部署到该服务器上,即可展开实际的测试与使用.这类的应用在公司内见过,很简单.于是,开始查询关于heroku的说明,果不其然.就是云服务.
heroku的地址,先要注册才能使用,不过注册使用是免费的.
通过该地址进入后根据引导完成账号注册.超级简单,进入后就是一个创建应用的截面,其中就饱含rails应用.如下图
HeroKu的控制台另外,Heroku也提供了一个自己开发的工具套件,用来支持应用部署,完全是命令行.就连公钥的添加也直接是通过命令行进行的,就这一点就已经非常便捷且节省时间.工具条件通过如下路径安装
https://toolbelt.heroku.com/
Linux下直接通过如下命令行来安装
wget -qO-https://toolbelt.heroku.com/install-ubuntu.sh| sh
添加公钥很方便
heroku keys:add
注:关于Heroku的说明,来自infoQ,原文在这里,link
受益于Heroku,Ruby的web应用程序部署变得异常简单:所有的工作只是在终端上输入少许命令。无需邮件,无需电话,也无需技术支持(supportticket)。我们已经开始在Hashrocket使用Heroku来托管我们的内部执行环境,我可以证明,这是一种你从未经历过的部署体验。Heroku一出现,Capistrano即行将就木了。在完成注册,并在Heroku的云计算平台上创建一个新的应用实例之后,部署仅仅是一句:git push heroku master。
这个push命令触发了一个进程:把应用程序编译成一个独立的、只读的实例,在Heroku里它被称为“slug”。它会自动地进行测试来保证它能正常地启动。被依赖的gem会被自动安装,并且通过应用程序根目录下的一个.gemsmanifest文件进行维护:这是与普通的Rails应用程序的唯一不同之处。同时需要指出的是,Heroku也支持Merb和Sinatra(实际上是任何一款Rack)。
一旦push成功,slug就在一个或多个slot中被实例化。这些slot将置于一个特殊设计的网格计算环境中,slug在这个环境中可以访问数据库和缓存信息,并且开始启动。Heroku唯一支持的数据库是Postgres。据James说,Heroku之所以目前不支持MySQL,是因为它还不支持事务型数据描述语言(transactional DDL)的执行。
slug激活后,就成为了一个拥有完整功能的web应用,它被称作“dyno” 。每个dyno都是网格中服务器的一个单独进程,它包括了应用程序代码、框架、中间件、Rack、应用服务器、Ruby虚拟机以及POSIX环境。Dyno使用的应用服务器是经过少许修改的Thin,系统分配给它250M内存。