《Rails 程序部署之道》—— 可靠的重复式部署和配置

简介: 《Rails 程序部署之道》讲述可靠的重复式部署和配置方法。

《Rails 程序部署之道》讲述可靠的重复式部署和配置方法。

image.png

本书会系统性的介绍:

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


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

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


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


第一部分:Chef

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

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

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

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


第二部分:Capistrano

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

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

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

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


第三部分:日常维护

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

  • 监控服务器,并自动进行失效恢复操作
  • 报警功能(使用 Monit),避免报警超载
  • 使用 Sidekiq 管理后台作业
  • 管理 SSL 证书
  • 日志文件分割
相关文章
|
8月前
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
292 3
|
数据可视化 项目管理 UED
如何进行有效的优先级管理:6大模型解析
优先级管理看似简单,但要真正做到高效、精准,却需要方法和技巧的支撑。3分钟了解6种优先级管理方法。
1078 0
如何进行有效的优先级管理:6大模型解析
|
监控 测试技术 Android开发
掌握安卓性能优化的关键策略
【10月更文挑战第7天】 在移动应用开发领域,性能优化是一项至关重要的任务。本文将探讨安卓应用性能优化的重要性、关键策略以及实际操作建议,帮助开发者提升应用的用户体验和竞争力。通过深入浅出的方式,我们将从背景介绍到具体实践,全面解析安卓性能优化的各个维度。
|
机器学习/深度学习 存储 关系型数据库
深入Doris实时数仓:导入本地数据
深入Doris实时数仓:导入本地数据
|
关系型数据库 MySQL 数据库
Windows下安装Redmine
参考链接:http://www.cnblogs.com/afarmer/archive/2011/08/06/2129126.html  最新教程:http://www.myexception.cn/windows/1219064.html   工作中学的东西很实用,Redmine就是公司使用的项目管理平台。
2593 0
|
移动开发 HTML5
HTML5中的audio在手机端和微信端的不能自动播放
再做H5页面的时候,发现audio在手机端和微信端添加了autoplay以后还是不可以自动播放,这是因为手机端为了节约流量所设置的
|
索引 Python
真的!千万不要忽略这些python常见报错信息_nameerror name ‘a‘ is not defined
真的!千万不要忽略这些python常见报错信息_nameerror name ‘a‘ is not defined
|
数据安全/隐私保护
okcc呼叫中心隐藏号码如何设置?
要在 OKCC中隐藏号码,可以按照以下步骤进行设置: 1. 登录 OKCC:使用你的帐号和密码登录 OKCC 系统。 2. 进入设置页面:在 OKCC 界面上,找到设置选项或个人配置(可能标记为个人设置、个人信息或用户设置等),点击进入个人设置页面。 3. 寻找“隐藏号码”选项:在个人设置页面中,寻找与号码隐藏相关的选项。可能会显示为“隐藏呼叫者ID”、“匿名呼叫”或类似的选项。 4. 启用号码隐藏:选中“隐藏号码”选项,并确认启用该功能。 5. 应用设置:保存设置并退出个人设置页面,确保设置生效。 请注意,具体的设置流程可能会因 OKCC 版本、界面设计和提供商的设置差异而有所不
okcc呼叫中心隐藏号码如何设置?
|
数据库
SAP ABAP——数据类型(二)【TYPES自定义数据类型详解】
在上一文 SAP ABAP——数据类型(一)【数据类型概要及分类】我们知道了ABAP中三种类型的数据类型,本文承接上一文继续对ABAP中关于用户自定义数据类型TYPES进行一个深入的讲解!关于全局数据字典类型更详细的介绍将会在下一章节【数据字典】中进行详解!
7224 1
SAP ABAP——数据类型(二)【TYPES自定义数据类型详解】
|
编解码 移动开发 缓存
HTML5网页3D场景制作之Three.js初体验-制作3D字体
WebGL(图形库是一个JavaScript API)在任何连接的WebGL中渲染图形的API,Web3D和Web3D的图形应用程序,可以单独使用一个WebGL通过引入与OpenGL 2.0一致的浏览器来使用WebGL 2.0 WebGL完美地解决了现有的Web交互式三维动画的两个问题: 第一,它通过HTML脚本本身实现Web交互式三维动画的制作,无需任何浏览器插件的支持; 第二,它利用底层的图形硬件加速功能进行的图形渲染,是通过统一的、标准的、跨平台的OpenGL接口实现的。
1032 1