Rails 程序部署之道
Rails 程序部署之道
$9.90
最低售價
$13.90
建議售價
Rails 程序部署之道

上次更新時間:2014-06-29

關於本書

掌握部署 Rails 程序的方法

本书会系统性的介绍:

  • 从零开始架设 VPS
  • 快速搭建多个服务器
  • 使用 Capistrano 可靠地部署
  • 使用自动化工具处理琐碎的维护任务

如果你花了很多钱把应用程序部署在 Heroku 上,使用本书介绍的工具,可以将其迁移到 VPS 上。

如果应用程序已经运行在 VPS 上,但部署的过程不牢靠,有时无法重启,有时加载了错误的代码版本,使用本书提供的模板可以让部署的过程更可靠。

我花了很多时间阅读博客文章、文档,调整设置文件,我的技能提升了很多,把应用程序部署到 VPS 就像部署到 Heroku 一样顺手,甚至有时还更简单。如果你想达到和我相同的技术水平,阅读本书吧,可以节省你很多时间。

第一部分:Chef

介绍如何使用 Chef 自动配置新服务器。看完这部分,你就能在几分钟之内搭建好一台新服务器。

很多 Rails 所需的设置(MySQL,Postgres,Mongo,Redis)都包含在本书附带的示例代码中。

其他章节详细分析了如何根据需要定制设置。

这部分的目的是建立一个可重复使用的蓝本,只要需要配置新的 VPS,随手就能拿来用。

第二部分:Capistrano

Capistrano 可用来自动执行部署过程中的所有工作,例如更新代码,管理静态资源文件和后台作业。

这部分特别关注了如何进行不下线部署,特别是需要频繁更替版本,或者一天内要多次部署的情况。

其中还有一节准本介绍常见的问题,例如部署后无法重载 Gemfile,以及如何在程序不下线的情况下执行数据库迁移操作。

最后,介绍如何使用一个命令就在多个不同的生产环境、交付准备环境和开发环境中复制数据库。

第三部分:日常维护

Heroku 等 Sass 平台吸引人的地方在于,它们提供了日常维护所需的实用工具。这部分介绍如何在自己的服务器上复用这些工具,具体内容如下:

  • 监控服务器,并自动进行失效恢复操作
  • 报警功能(使用 Monit),避免报警超载
  • 使用 Sidekiq 管理后台作业
  • 管理 SSL 证书
  • 日志文件分割

This book is a translation into Chinese of Reliably Deploying Rails Applications which was originally written in English.

關於作者

Ben Dixon
Ben Dixon

Currently based in London, I've been developing web applications for over ten years, over the last few years specialising in Ruby on Rails development and deployment. I'm co-founder & CTO of Catapult an on demand staffing platform serving some of the UK's largest enterprises. Previously I built an online codeschool platform as well as being the technical lead at a health and fitness startup providing the SpeedoFit swimming app & timetabling for venues such as the London Olympic Pool.

As part of these projects I've dealt with everything from the usual rapid growth from 10's of requests per minute to 10's per second to more unusual challenges such as expanding infrastructure into China and dealing with debugging obscure indexing issues.

Offpeak I'm an obsessive indoor climber and lover of good wine, strong coffee and a (very) amateur photographer.

安道
安道

高校教师,自由翻译。

Table of Contents

  • 1.0 简介
    • 本书的目的
    • 关于我
    • 读者群
    • 前提条件
    • 如何阅读本书
    • 第一部分的结构(Chef)
    • 第二部分的结构(Capistrano)
  • 2.0 服务器环境组件
    • 概览
    • Ubuntu 12.04 LTS
    • Nginx
    • Unicorn
    • PostgreSQL/MongoDB/MySQL
    • Ruby (rbenv)
    • Redis
    • Memcached
    • 为什么使用这些组件
    • 沿用你的组件
  • 3.0 Chef 简介
    • 引言
    • 自动操作
    • 自动配置所用的工具
  • 4.0 快速上手 - 5 分钟架设服务器
    • 概览
    • 组件
    • 步骤
    • 下一步
  • 5.0 Chef Solo 项目详解
    • 概览
    • 创建项目
  • 5.1 简单的 Chef 食谱
    • 概览
    • 克隆 Redis 配方
    • Redis 配方的结构
  • 5.2 简单的节点定义
    • 概览
    • Redis 节点
    • 节点定义文件的命名
  • 5.3 简单的 Chef 角色
    • 概览
    • 新建角色定义文件
    • 默认属性
    • json_class 和 chef_type
    • run_list
  • 5.4 把节点定义应用到 VPS 上
    • 概览
    • 下载额外的食谱
    • 开通 VPS
    • 在远程服务器上安装 Chef
    • 修改后再应用
    • 小结
  • 6.0 Rails 服务器模板
    • 概览
    • 示例仓库
  • 6.1 使用 Berkshelf 管理食谱
    • 概览
    • Berkshelf 如何结合 Knife Solo 使用
    • 开始使用 Berkshelf
  • 7.0 服务器基本设置
    • 概览
    • 常用包
    • 如果登入生产环境,显示一个文本队列
    • Rails gem 的依赖库
  • 7.1 用户
    • 概览
    • 用户
    • sudo
  • 7.2 安全
    • 概览
    • 安全提示
    • 安全误区
    • 基本措施
    • 强化 SSH
    • 无值守升级
    • 自动更新时间
  • 7.3 防火墙
    • 概览
    • UFW(简易防火墙)
  • 7.4 把示例模板应用到 VPS 上
    • 概览
    • 前提条件
    • 步骤
    • 检查设置是否正确
  • 8.0 安装 Ruby
    • 概览
    • rbenv 和 rvm
    • rbenv 的工作机理
    • rbenv 食谱
  • 9.0 Monit
    • 概览
    • 设置放在哪儿
    • 定制监控设置很重要
    • 系统级监控
    • 监控 pid
    • 监控端口
    • 监控可用空间
    • 防止警报邮件过多
    • 使用 Nginx 为网页界面提供服务
  • 9.1 Upstart
    • 概览
    • 谁来监控 Monit?
    • Upstart 服务
  • 9.2 复刻我的 Monit 设置
    • 概览
    • 为什么要定制自己的 Monit 设置?
    • 详细步骤
  • 10.0 Nginx
    • 概览
    • Nginx 配方
    • 在哪个阶段设置虚拟主机
  • 11.1 PostgreSQL
    • 概览
    • 安装
    • 访问 psql 终端
    • 新建数据库
    • 把用户添加到数据库
    • 列出所有数据库及其权限
    • 身份认证设置
    • 运行外部访问
    • 使用 Chef 管理 pg_hba.conf
    • 数据导入和导出
    • Monit 设置
  • 11.2 MySQL
    • 概览
    • 安装
    • 新建数据库
    • 身份认证设置
    • 数据导入和导出
    • Monit 设置
    • 数据库管理工具
  • 11.3 MongoDB
    • 概览
    • 安装
    • MongoDB 终端
    • 数据导入和导出
  • 11.4 Redis
    • 概览
    • 安装
    • 安全
    • 限制内存用量
    • Monit 设置
  • 12.0 Memcached
    • 概览
    • 安装
    • 安全
    • Monit 设置
  • 13.0 在 Vagrant 中测试
    • 概览
    • 安装 Vagrant
    • 直接通过 SSH 登入
    • 测试 Chef 食谱
    • 用户,sudo 和 root 权限
    • 端口转发
  • 14.0 第一部分结束
    • 总结
  • 15.0 使用 Capistrano 部署程序
    • 概览
    • Capistrano
    • Capistrano 版本选择:2 还是 3
    • 阶段
    • 从 V2 升级到 V3
    • 把 Capistrano 加到程序中
    • 安装
    • Capistrano 3 就是 Rake
    • Capfile 文件
    • 常规设置
    • 运行测试
    • 钩子
    • 设置各阶段
    • 生成远程服务器的设置文件
    • 数据库密令
    • 部署
    • 小结
  • 15.1 编写自定义 Capistrano 任务
    • 简介
    • 文件结构
    • 处理任务
    • 命名空间
  • 16.0 Unicorn 的设置和不下线部署
    • 简介
    • Unicorn 和处理请求的流程
    • 基本设置
    • Unix 信号
    • 初始化脚本
    • 不下线部署
    • 重新加载 Gemfile
    • 解决不下线部署问题的流程
  • 17.0 Nginx 虚拟主机和 SSL
    • 简介
    • 简单的虚拟主机
    • DNS 简介
    • 强制使用 HTTPS
    • 添加 SSL 证书
    • 合并 SSL 证书
    • 更新 SSL 证书
  • 18.0 Sidekiq
    • 简介
    • Sidekiq 3
    • Capistrano 集成

Leanpub 無條件、無風險的 100% 滿意保證

付款之後的 45 天內,只要點個兩下,你就可以完成退書並且取回先前支付的全數金額。退書是採用人工作業,因此可能需要花幾天的時間才能完成整個程序。
See full terms.

在 Leanpub 上面寫作與出版

作者與出版社使用 Leanpub 來出版寫作中和已完成的書籍,就像這本書。你也可以用 Leanpub 來撰寫、出版、和銷售你的作品!Leanpub 是功能強大的平台,非常適合認真的作者。它結合了簡單、優雅的寫作與出版流程,以及一個可銷售寫作中的電子書的線上商店。Leanpub 對作家而言是個神奇打字機:只要編寫純文字,然後按個鈕就能出版你的電子書。真的就是這麼容易。

Learn more about writing on Leanpub