从系统架构的角度,将微服务应用直接部署在云虚拟机上,跟部署在物理机房相比,并没有本质的区别,团队依然需要从底层维护每一个应用实例,包括操作系统调整、磁盘容量规划、JDK等组件安装等工作,这些工作都每一台云虚拟机投入使用的过程中,都是必不可少的。
在系统频繁的迭代过程中,不同的开发小组甚至不同的开发人员都需要单独的一套测试环境,久而久之,整个技术团队创建了多套测试环境,其中一些测试环境包含了所有的微服务应用,整体资源利用率特别低,造成了大量的资源浪费。而且旅游业务本身也存在非常明显的波峰波谷,微服务架构可以很方便地为每一个应用进行水平扩容,但如果用于扩容的虚拟机资源需要预先购买的话,同样会造成大量的资源闲置。
摆在百富技术团队面前的核心难题就是怎么解决资源的闲置与浪费问题。而这恰恰是Serverless最擅长的事情。由于不需要为Serverlesss应用购买底层服务器资源,直接按需申请,可以免去容量规划、操作系统调优等复杂的运维工作,Serverless架构的弹性伸缩机制正好切断了资源浪费问题的源头。
但是Serverless架构要怎么选,百富旅行技术团队开始对市场上常见的实现方式和产品做调研:
Serverless架构有两种常见的实现方式:第一种是把每个微服务应用进行容器化改造后,统一使用Kubernetes进行编排,并利用云厂商提供的弹性容器实例实现容器层的按需调用。这种方式的门槛很高,需要有精通Kubernetes技术的运维小组加入,并且需要团队投入比较大的精力对应用进行容器化改造,暂时不适用于百富旅行这样小规模高效率的技术团队。
另一种方式是使用类似于AWS Lambda或阿里云FC函数计算引擎,将所有业务逻辑进行函数化重构。这种方式基本上需要将之前写的代码推倒重来,而且在一些拥有复杂调用链路的业余环节并不能发挥Serverless的优势,最终排除在考虑范围内。
经过多轮技术调研以及与阿里云技术专家深入交流后,百富旅行技术团队选择了阿里云Serverless应用引擎方案。区别于其它 Serverless 产品,SAE 直接支持 Spring Cloud、Dubbo 等开发框架,实现了全面的Serverless化。开发者可以通过WAR、JAR、镜像三种方式部署Serverless应用,不需要学习Kubernetes以及容器技术。
部署在SAE上的微服务应用,可以按需申请资源,根据实际使用资源量按分钟计费,避免业务不活跃时段的费用支出。特别是对于测试环境,SAE可以做到一键启停,避免了资源闲置问题。选择SAE为百富旅行节省了大量云资源的成本投入,并且减少一半以上的运维工作,为后续创新业务的发展打下了基础。
5
云原生是一个时代下践行者们“前赴后继”的故事
一项新技术或者一套新的技术理念,之所以能被广泛接受和快速发展,是因为有愿意相信并真正去落地实践的公司,是他们在为整个时代探索着云计算更大的技术价值。当五年、十年以后我们再来看洋葱学院、畅捷通、百富旅行等企业的实践历程,正是因为这些创新者们愿意接纳一些新的改变,并以此去撬动更大的想象空间,我们才经历了一个如此蓬勃和充满可能的时代。
他们才是真的乘风破浪!
文章来源:《商业故事》 网址: http://www.sygszzs.cn/zonghexinwen/2020/0801/444.html
上一篇:《故事刚刚好》持续热播中,老男人入股文化大
下一篇:故事:荣宗敬家族百年创业记