RailsConf07 大会结束之后不久,Rails 的创始人 David Heinemeier Hansson 便在“ Ruby on Rails: Stacks ”这个新的讨论组中发起了这样的话题:
Xen、EC2、Vmware 以及其它类似的虚拟机技术,正在改变系统管理方面的传统观念。在 RailsConf 大会上,Rails Machine、Engine Yard 和 Amazon Web Services 都在这个主题上做了演讲。我们几乎可以肯定,这种方式将是互联网开发的未来方向。 因而,我认为现在是开始讨论如何通过将 Rails 的官方软件集合聚集在一起,来推进其发展的时候了。我在展望将来会出现一系列分别用于 Web、应用和数据库服务器的功能完善的工具镜像文件。为入门用户运行例如 nginx、mongrel 和 MySQL 这样的工具。
他的想法是借助虚拟机工具,就像Xen或VMWare一样,集成全部运行 Rails 所必备的软件并且将它们安装和配置妥当。那么所有的内容就可以通过一个普通文件作为磁盘镜像存储。开发者如果需要编写 Rails 代码,仅需下载这样定制好的镜像文件,并通过虚拟机工具来加载镜像及启动上面的系统。这样便可以大幅减少开发者安装、配置操作系统以及各种所需类库的繁琐工作。
由于这种方式只与拷贝镜像文件有关,同时也使得创建特殊的系统配置更为简单。类似于 Amazon EC2 的主机服务就是使用这样的方式,这种方式并不为客户指派某台特殊的服务器,而是让客户上传镜像文件并通知 Amazon EC2 来加载镜像。Amazon EC2 服务使用 Xen 作为虚拟机软件。
各种配置好的 Rails 镜像目前已经逐渐出现在人们视线之中了。 Paul Downman 提供了使用 Ubuntu 操作系统,并且安装配置好各种工具的镜像文件。镜像中一些特性列举如下:
- 每隔十分钟自动备份 MySQL 数据库到 S3 之中
- 在 Apache 2.2 背后运行的 Mongrel_cluster 集群,根据 Coda Hale 的最佳指南进行配置,并通过
/etc/init.d
脚本启动- Ruby on Rails 1.2.3
- Ruby 1.8.5
- MySQL 5
- 安装有 Xen 标准类库(
libc6-xen
安装包)的 Ubuntu 7.04 Feisty 操作系统- 已安装所有 EC2 的命令行工具
- 通过配置好的 MySQL 和 Apache 将日志写入
/mnt/log
文件,因此可以免除用户 EC2 不大的 root 文件系统被塞满的困扰- 正确设定好的公有主机名
- NTP 支持
- 可以使用脚本,在一个步骤中将镜像重新打包、保存成新的拷贝并进行注册
就像提供自动备份 MySQL 数据库到 Amazon 的存储解决方案 S3 之中,或建立日志系统这样的功能一样,对于细节的关注是使得这项工作非常有价值的重要原因。
另一种提供必备软件的方式以 RubyWorks 的形式出现,RubyWorks 为打造 Rails 开发环境提供了全面的软件和工具支撑。 ThoughtWorks 即将在七月份开始为此提供 7x24 小时的技术支持。
您是如何处理您自己的 Rails 安装和部署呢?是否你已经开始使用 Amazon EC2 服务或 RubyWorks 呢?
评论