有了IaaS,实现了资源层面的弹性就够了吗?显然不是,还有应用层面的弹性。 这里举个例子:比如说实现一个电商的应用,平时十台机器就够了,双十一需要一百台。你可能觉得很好办啊,有了IaaS,新创建九十台机器就可以了啊。但90台机器创建出来是空的,电商应用并没有放上去,只能让公司的运维人员一台一台的弄,需要很长时间才能安装好的。 虽然资源层面实现了弹性,但没有应用层的弹性,依然灵活性是不够的。有没有方法解决这个问题呢? 人们在IaaS平台之上又加了一层,用于管理资源以上的应用弹性的问题,这一层通常称为PaaS(Platform As A Service)。这一层往往比较难理解,大致分两部分:一部分笔者称为“你自己的应用自动安装”,一部分笔者称为“通用的应用不用安装”。 自己的应用自动安装:比如电商应用是你自己开发的,除了你自己,其他人是不知道怎么安装的。像电商应用,安装时需要配置支付宝或者微信的账号,才能使别人在你的电商上买东西时,付的钱是打到你的账户里面的,除了你,谁也不知道。所以安装的过程平台帮不了忙,但能够帮你做得自动化,你需要做一些工作,将自己的配置信息融入到自动化的安装过程中方可。比如上面的例子,双十一新创建出来的90台机器是空的,如果能够提供一个工具,能够自动在这新的90台机器上将电商应用安装好,就能够实现应用层面的真正弹性。例如Puppet、Chef、Ansible、Cloud Foundary都可以干这件事情,最新的容器技术Docker能更好的干这件事情。