公有云的公司讨论的两大热门话题,我想第一是计费,第二应该就是应用商店。IaaS厂商都在想办法做一个应用商店,很可惜,基本都失败了。
当年我曾经也是一个产品经理,调研过各大厂商的应用商店。这里我就做一个总结
虚拟机年代
镜像
把应用放到镜像里,这是最容易想到的应用商店,虚拟机启动后,做的配置,技术上还是可以实现。AWS在2010年的时候,应该就是差不多这种情况。
AWS上有大量的应用的镜像,你启动后,就可以使用,看起来是很方便。不过其实也就是自己使用,很难满足复杂的场景,基本都是 all in one。而且软件的版本,是一个噩梦,一个版本一个镜像,真的受不了。
脚本
很多人自然就想到,base的镜像都是一样,在虚拟机启动的时候,运行相关的脚本,来部署相关的软件。cloud-init,基本就是这个用途。
在国外的网络速度的情况,基本不是问题。不过在国内,基本就没戏了。而且这种方式,还是单机版本,复杂点,就基本没办法。
开发模式
有专门针对开发者的应用商店,因为开发者,有不同版本的需求,就简单lamp为例,php版本,mysql的版本,apache的版本,排列组合太多了,如何解决这个问题呢?
把软件都放到虚拟机里,用户选择需要什么版本,就启动相应的组件。这方面,bitnami做的应该是最好的。这家公司,从2011年开始到现在,做了8年,也在不断改进。
Agent模式
为了应用商店能投入生产,能部署复杂的应用,支持灵活的定义,web和数据库,可以合并部署,也可以分开部署。那么就有人想到使用agent来实现。
rightscale,国外著名的云管厂商,就是通过植入一个agent,来对虚拟机进行应用的部署,类似配置管理工具,这样就非常灵活,基本可以实现软件的全生命周期的管理。
通过agent,你可以实现对应用进行监控。那么对于IaaS来说,如果所谓弹性扩展,只考虑cpu,内存,那么是很胡扯的。