原文链接: http://martinfowler.com/bliki/PhoenixServer.html

有一天我突然幻想一个验证运营的服务,这个服务就是我如果跑去把公司的数据中心关掉,这毫无疑问将至我们公司的产品服务于危机之中,而这个服务的评定标准则是运营图团队需要花费多少时间能让我们的产品应用重新恢复正常。

这或许只是个幻想,但其中包含着金子一样的智慧,你完全可以尝试定期毁掉你的服务器,一个服务应该像凤凰,定期从灰烬里重生。

凤凰式服务首要的好处是避免配置飘移(Configuration dirft):对操作系统指定的更改不会被记录,配置飘逸是一个巨大的泥潭,你不会希望被陷进去的。

一个解决配置漂移的方法就是用一个软件自动地同步服务器配置达到一个已知的统一标准。Puppet和Chef(还有Ansible和salt)两个工具都可以做到这点,不停的重复申请他们定义的资源(所以他们也可以用于实践凤凰式服务),但这些工具的局限性是他们只能控制他们定义的那一部分配置,在他们定义以外的配置漂移不会被修复。而凤凰是从无到有的,它可以覆盖所有的资源配置。

但这并不是说重复应用配置是无用的,毕竟它更快,破坏性也更小。他对解决配置飘移仍是有用的。

e.g.
知名网站Netflix有一个chaos monkey专门用来随机毁掉一些服务来确保他们服务的弹性(高可用性)。

注: 配置飘移?Configuration Dirft大意:
在一个生产环境的服务器中,比如一个数据库集群,由于数据库密码变动导致主从数据库不一致,或者在使用脚本去更改服务器配置的过程中让同一个环境下的服务器发生了配置不一致的情况.
参考链接: