一次失败的上云尝试
今天,我把腾讯云里面的很多自用玩具项目,下线的下线,迁移的迁移了,总结一点个人感想。
前言:上云真香
很多年前,我把以前自己鼓捣的一些东西,从某IDC迁移到了腾讯云,所以下文对云的体验基本上都是基于腾讯云的。
早先也就个主机 在用,自己充当 DevOps。
逐渐使用云服务,实在太好用,很多原先需要输很多命令、改很多配置的事,在系统上都可以全自动完成,而且系统考虑的更全面,比如:
- SCF云函数,直接一行命令部署,而且自带多套环境,开发、测试、生产都可物理级分开,是我个人最喜欢的服务。
- API网关,(对于我个人而言)可靠性非常强,基本相当于白送的微服务。
- 还使用了很多服务,比如CLS日志服务,COS存储,CDN内容分发等,很多服务都是互通的,比如通过网站管理证书就非常方便。
总之,在云平台上就可以方便完成大部分的自动化 / CI / CD / 容器编排 / 安全管理 / 版本控制等工作。自己只需要做自己最擅长的开发工作,再点点按钮就行,真香!
下云
也并不是下云,只是不再使用其中的一些服务了,再次回到云主机+轻量组合,回到 DevOps。
其实这些年,腾讯云的变化也不少,在论坛上经常看见同行的吐槽,经常发生服务下线、涨价、接口变更之类的事。只不过要不是我自己不使用的服务,要不我觉得一些涨价也无可厚非,或是部分变动微小且给足了兼容时间,在可忍范围之内,就事不关己,高高挂起。
起初,他们追杀共产主义者,我没有说话——因为我不是共产主义者;
接着他们追杀犹太人,我没有说话——因为我不是犹太人;
后来,他们追杀工会会员,我没有说话——因为我不是工会会员;
此后,他们追杀天主教徒,我没有说话——因为我不是天主教徒;
最后,他们奔我而来,却再没有人站出来为我说话了。
-- 马丁·尼莫拉
我就是这样的人,引起我不满的就是 Serverless 的顶梁柱:API网关, 这个提示从今年四月就开始出现了,非常闹心。

虽然明年才会正式下线,便腾讯给出的替代品:云原生网关,最低配也是一个月3000起,基本与我这种小户无缘了。
前段时间也研究下通过技术手段,绕过网关,都快研究好了,结果又被通知云函数SCF策略变了,心机白费。
其实这些服务虽然都是单卖,其实绑的很紧,懒得为这种事再操心,回到主机时代,下云!
下面总结一些理由,对于IT设施定位不同,结论也不同,只做参考。
原因一:技术独立性
不算是什么云,基本上分这两层:
- 将IT设施切成细小的模块,比如计算、存储、网络等等,称为云计算。
- 将这些细的部件进行 组合、封装、方便用户管理与使用,称为云服务。
理论上来说,基于这个思想,可以根据不同的用户提供不同的服务,粗细可自控。我个人感觉问题就在于此。
因为组合,封装,开发提供云管理功能,本身就算是业务层,所以不止是不同的云厂商对于各种资源的使用方法不一样,就算同一个云厂商,在不同的时期,也会升级,迭代,下线,合并服务等。
比如我用的 SCF云函数 到现在只用了三年左右,就经历了三个规范。
Serverless AWZ版,腾讯修改版 腾讯独立版。期间我也看了一下阿里云和其它云平台的类似功能,其它每个云厂商提供的功能差异并不算太大,但每个厂商的相关文档、技术名词和提供的功能管理系统、SDK/API、开发插件等等就让人多费心神了。(比如阿里还开发了专门的框架 MidWay)
这仅是SCF这一个功能而言,做一个中大型的项目的话,基本上会用到一半的云服务了。
做为中大型项目,大概不会在乎这些服务昂贵的价格,所以云厂商肯定会根据这些大伙伴的需求不停的迭代云服务的功能,根据康威定律,这些云服务大概率会与这些大主们的业务相近。
但这可能并不是大伙想要的,甚至并不是所有大户想要的。结果基本可以遇见:各种云服务会变得臃肿、难用、越来越贵,那些受中小用户喜欢的服务就会不停迭代至大户喜欢,最终涨价、下线等。
今年早些时间,亚马逊AWS就下线了一大批云服务。
原因二:价格
对于中小主们来说,价格永远是最大的因素。我个人使用几年间,经历腾讯云不下于二十次价格调整,主要有些原因:
- 测试的产品开始商用,这点没有意见,我也看不惯那些总是想着白嫖云资源的人。
- 单纯涨价。目前而言,这点我也没意见,合理就好,即便很多时候说是功能更强了,但实际对用户没用。
- 改收费策略。改订阅制,这点就很流氓了,云计算核心服务就是按量付费,近几年很多功能取消了这个,而且订阅的最低档位网网不低,对小用户极不友好。
大部分的价格调整都是涨价,当然,即便不涨价,云服务也比传统的DevOps贵了不少,没钱的话,肯定只买主机,自己搬弄网络、集群、数据库、消息服务等种中间件,即耗时也不能保证可靠性,如果全部使用云服务管理起来就顺多了,稳定性也有平台保障,但价格那就不一样了。
比如去年,业界领军 37Signals
, 就下搬下AWS,半年省千万美元
价格是硬的,但服务其实是可以优化的,比如 Google云服务,如果使用的资源过剩,则会通知你减配,节约成本,而且通知里面就带了推荐配置和一键减配的按钮,非常方便。
目前TX云就不同了,减配较难操作就不说了,总是想多卖一些鸡肋的服务,比如安全防护扫描,如果按次卖,我说不定会买个一两次,但基础版最低一年也不便宜,总出现在主页上,又不让点击,就有点窝火了。
原因三:并没有带来便利
大部分人选择云服务的理由是方便,平台也确实帮忙做了很多事情。
但是:很多事情,并不是所有事情,有些事情反而难以理解。
在没上云之前,很多团队可能都有自己的管理理念,配合这些理念,而做了不少自动化工作,做了不少的工具和维护脚本。
而在上云之后,这些工具和脚本虽然大部分不用自己写了,但可能散落在云平台的各个角落,虽然云平台帮忙做了一些事,但如果原先有积累的话,很多事本可通过工具脚本完成,根据项目特性整合度肯定更高。
就根据我自己一个样本的经验之谈,云平台并没帮我省下时间。根据人性来看,使用云平台可能很容易陷入工具党的错觉之中,自我感觉良好,其实还是花了大量的时间来捣鼓。
而且现在开源的管理工具已经非常好用(后续有空写点心得),服务监控、自动任务、流程编排、事件通信、集群管理等等都越来越成熟、越来越易用。当然也需要有点基础,但学习这些通用知识适用性强,换到哪家云厂商都一样。
总结
叠甲:情况不同,资源不同,使用方式不同,都会有不同看法。
自己勉强也算是 Serverless 的布道者,在先的许多项目中还专门写过 一些自用扔工具和库,还写过不少Serverless的心得,现在只能暂时放弃了,回归传统。
- 价格方面,所有云对新用户都会很好的,建议不要因为便宜一点就选择不知名小厂。
- 基础云服务 :云主机、云硬盘、对象存储、内容分发,基本都差不多,可以放心用。常用的数据库、消息中心等中间件也是。而微服务、容器云、安全服务、之类的私货较多。
- 尽量使用与平台无关的通用技术,不要被平台绑票。
- 在国内,需要时刻谨记:遵纪守法