Rails 框架把 web 开发做到了极致,同样,Heroku 把 Web 部署做到了极致。Heroku 创始人之一 Adam Wiggins 最近写了一篇The Twelve Factors可以说是部署 SaaS 应用的理论指导和最佳实践(这些规则都应用在 Heroku 云平台上了)。同时这些规则也适用于非 SaaS 的 Web 应用。我自己翻译了一部分之后发现已经有人翻译过了:-)
地址是:http://erning.net/blog/2012/05/09/the-twelve-factor-app/
在当今时代,软件通常作为一个服务发布:就是所谓的 Web 应用 或 Software-As-A-Service*。这篇 *“Web 开发中的十二条军规”为构建如下 Web 应用提供了指导方法:
声明 标准化的流程文档,来自动搭建应用,减少新加入项目的成员花费的时间;
和操作系统之间划清界限,在不同执行环境中提供最大可移植性;
容易部署到流行的云平台上,从而节省服务器和系统管理员;
最小化开发环境和生产环境之间的差异,从而持续部署带来最大的敏捷;
可以在工具、架构和开发实践不发生明显变化的前提下实现纵向扩展。
“Web 开发中的十二条军规” 方法论可以应用到任何语言和后端服务(数据库、消息队列、缓存系统等)所写的 Web 应用。
本文的提供者直接参与了数以百计的 Web 应用开发和部署,并且通过我们正在工作的 Heroku 平台,间接见证了数以十万计的 Web 应用的开发、部署和扩展。
本文综合了各种我们经手过和观察的 SaaS 应用。是开发此类应用的理想实践标准,并特别关注于应用程序如何保持良性成长,开发者之间如何有效的协作,以及如何避免软件腐化。
我们的初衷是提高对在现代软件开发过程中发现的一些系统性问题的认识。我们提供了讨论这些问题时所需的共享词汇,同时使用相关术语给出一套针对这些问题的广义解决方案。本文格式的灵感来自于 Martin Fowler 的书籍 Patterns of Enterprise Application Architecture 和 Refactoring。
任何 SaaS 应用的开发人员;部署和管理此类应用的运维工程师。