为什么 PAAS (paltform as a service) 是伪需求?

September 24, 2019

试想一下你的开发团队需要一款 MQ(message queue) 服务,你是去买现成的云计算厂商的 MQ 服务还是自己买个 VPS(Virtual Private Server) 去安装一个 MQ 的服务呢?如果是买一个 MQ 的服务你如何确定这个 MQ 的服务是你现在团队需要的 MQ 服务?你如何确保从云计算厂家那里买过来的 MQ 服务是可靠的?
如果你选择自己搭建一个 MQ 服务,在 2019 年你还会选择从头安装一个 MQ 服务吗?你会选用 docker 还是 k8s 去 setup 你的服务吗?
你的开发环境,运行环境,测试环境,生产环境各自都有很多不一样的地方,如果和快速的把这几个测试环境 setup 起来?你是选用现有云计算提供的 paas 云服务,还是自己在公司内网的服务器搭建一套 k8s,线上再搭建一套。
如果每个团队的成员都需要一个开发环境怎么办?怎么快速的 setup 起来?
如果你购买的 paas 服务出问题了,你要怎么解决?是直接找云计算厂商解决起来比较靠谱,还是自己了解清楚每一个细节比较靠谱?关键的业务涉及到计费,公司收入,你会交给别人去管理吗?你的公司增长的速度和技术支出的速度以同样的速度增加,你是自己培养一支技术团队,还是把命根子交到别人手里?

以上问题就是我们做一个互联网服务经常遇到的问题。在快和可靠之间我们必须要有所取舍。对于技术的选型关键不在技术,而是在业务。当你的业务增长过快或者过慢的时候用现成的 paas 服务无论如何都不是好的选择。如果你的业务复杂,研发的周期长,自己做一套简化部署和运维的 k8s 是非常有必要的。

这就是现在的 paas 服务面临的尴尬境地,它的运维成本比 iaas 要低,扩容成本比 iaas 的服务要高,比 k8s 要更复杂。在关键的业务上(数据库,message queue) 你如果不吃透它,难道要把自己的命根子(收入)交到别人那里去?