云计算时代的CRUD

Posted by Zeusro on May 22, 2020

希望大家尽快认识到,云计算时代的CRUD跟传统开发模式的区别。

历史回顾(二维)

2014年的时候,我们公司还有自己的服务器,后来由于一次断电没处理好,没UPS,数据库在里面,然后就哭了。

后来逐渐转向云计算平台(Infrastructure-as-a-service)。

当时我负责一个用户中心的ASP.NET后端。

里面有一个叫做下载数据包的功能。下载数据包,需要缓存图片,然后复制到一个临时的目录,再生成一个压缩包,供客户下载。我做的改进是多线程下载图片,并提高了压缩的速率,最后定期自动删除缓存的图片。

也就是说,这是一个二维命题。

人月成本+WEB服务器

云计算时代(三维)

云计算时代,我们可能会把图片的存储放到OSS这类的对象存储服务(Software-as-a-service)。所以问题升级到三维。

人月成本+WEB服务器+OSS

财务视角(四维)

财务不懂技术,技术部的员工也不是他招来的,TA只关心云服务的费用。所以问题升级到四维。

人月成本+WEB服务器+OSS+云服务费用

老板角度(超一维)

公司的一切都是老板的资产。

从老板角度,他并不管你用什么语言实现多么简单抑或复杂的功能,他只关心最小的人月成本,最少的服务器支出,最少的云服务费用。所有的维度合起来就是

成本

简单的说,P均衡为0。也就说,最少的预算,带来最大的价值。

员工视角——云计算时代的CRUD

那么再度回到员工视角。在开发下载数据包这个功能的时候,我们就有了新的认知。

方案一:WEB服务器上下行。

这种方案只适用于用户基数少–>上下行带宽小的场景。

方案二:WEB服务器+OSS+CDN。

C:创建的文件要尽可能小。并且要足够“密集”。也就是说,两张一模一样的图片存放在同一个OSS bucket里面,是相当浪费资源的行为。这里面包含存储的费用,API调用的费用等。

R:文件位置要有规律,这样才易于查找,复用。这里面可能包含CDN的费用,OSS公网流出费用等。

U:更新的频率要尽可能小。如果同一个文件反复更新,说明一开始设计的思路有问题。OSS文件自动刷新,会导致所有CDN节点需要重新重新回源,从而产生一定的费用。

D:数据都是有生命的。无意义的数据需要尽快删除。占着茅坑不拉屎,这是弟弟行为。

结论

希望做技术的各位,尽快认识到一点,“技术为业务价值服务”。

也就是说,不管你的技术有多好,多么前瞻,在限定期限内不能盈利,不能创造公认价值,那么它就是一种无用的屠龙技。