应用维护与多版本 Ruby 部署实战
在应用的生命周期中,维护和版本管理是至关重要的环节。无论是处理应用的停机时间,还是在同一服务器上运行多个不同版本的 Ruby 应用,都需要精心的规划和有效的策略。下面将详细介绍如何优化应用的停机时间,以及如何使用 Ruby 环境管理器(RVM)在服务器上部署多个不同版本的 Ruby 应用。
1. 优化应用停机时间
即使我们竭尽全力让应用 24/7 运行,也难免会遇到应用不可用的情况。停机时间可分为计划内停机和计划外停机。
- 计划内停机 :在现实世界中,由于各种原因,如数据中心迁移、核心服务或硬件升级、耗时的数据库迁移等,我们可能需要安排应用停机。为了将对用户的干扰降到最低,我们需要进行充分的规划和沟通。
- 选择停机窗口 :一般选择用户使用量最少的时间段进行停机。通过收集的指标数据,找到合适的时间点,并将停机窗口设置为以该时间点为中心。如果停机窗口在半夜,建议设置两个闹钟,提前一小时起床,确保在停机开始时保持清醒。同时,至少安排两人在线,保持电话畅通,以便相互协作,避免在清晨做出错误的决策。此外,将停机窗口设置得比预期长一小时,这样如果能提前完成,会带来额外的惊喜。
- 编写脚本并进行测试 :详细列出停机期间的每一个步骤,并在非生产环境中进行测试。非生产环境可以是在笔记本电脑上运行的几个 Vagrant VM,越接近生产环境越好。例如,由于长时间的数据库架构更改导致的停机脚本可能如下:
超级会员免费看
订阅专栏 解锁全文
1798

被折叠的 条评论
为什么被折叠?



