抢救 IT 失传技艺,亚马逊技术长倡议节约架构 (Part 2 量测篇)

Amazon

节约架构的第一部分聚焦在软体架构设计阶段,包括将成本意识融入软体架构设计的每一个环节、确保系统成本支出与营收成长呈正相关,以及保持软体架构可以持续进化和改善。第二部分则是软体服务上线後,需要进行的量测(Measure)工作。

Vogels指出,第四项法则是:「无法量测的系统必有隐藏的成本」。他以1970年代发生石油危机时,他所生长的荷兰为例,说明透过量测将资讯视觉化,有助於改变人们的行为。在全球性能源危机发生的当时,虽然人们普遍意识到节能省电的必要性,不过有一项调查却发现两栋规模大小雷同的楼房,用电量却有很大的差异。细究之下发现,耗电量较少的那栋楼房,其电表安装在一楼出入口,而耗电量较多的那栋楼房,电表则是安装在地下室,这代表住户每天出入时从电表看到耗电量,有助於提升用电意识,进而改善节能省电的作为。

然而软体使用成本该如何量测?如何设计量测指标呢?身为亚马逊技术长的Vogels,进一步以自家电商网站的经验说明量测指标。由於亚马逊购物网站已经是一个高度微服务化(Microservices)的软体架构,其网页上的诸多功能,如商品资讯、评比推荐、预估送达时间、购物车、搜寻与使用者体验等功能,每一个服务皆由後端上百个微服务组合起来运行,因此为了掌握成本,第一步必须先从微服务层级量测每一个微服务的运算成本,接着是依照网页上的各项功能,加总计算其所需微服务的运算成本,据此计算如购物车、预估送达时间或评比推荐等属於系统层级功能的成本。

有了微服务与网站功能的成本数据,再除以网页浏览量,就可得知以每一个网页读取为单位来计算之下,各个微服务与网站功能的单位运算成本。有了每读取一个网页的单位运算成本,再搭配每读取一个网页的下单转换率,则可画出网页成本与转换率关系图:以每读取一个网页的成本为X轴、以每读取一个网页的下单转换率为Y轴,如此即可用於分析网页增加新功能的成本与效益。

由於X轴所代表的是随网页增加功能而递增的运算成本,对照着Y轴所代表的下单转换率,据此画出来的折线图若呈现45度上升直线,就代表随着新功能增多,下单转换率也提高了,亦即成本与效益保持正向发展的健康趋势,证明新功能有助於提升营收;若折线图呈现波动的曲线甚至是下降趋势,即代表新功能无助於下单转换率,必须思考是否该为新功能付出额外的成本。

成本效益分析除了可用於开发新功能的策略,也可以做为系统效能改善的衡量基准。众所皆知网页载入速度会影响使用者体验,对电商而言甚至会冲击业绩营收,然而在提升网页载入速度时,到底该改善到什麽程度,才能刚好有助於提升营收,而又不会因为改善过头而付出过多无谓的运算成本,就可以利用运算成本与营收分析做为判断基准。Vogels表示,由於电商的利润空间很薄,所以亚马逊必须无时无刻控制整体成本,对於软体开发与营运应该投入多少资源,是否增加新功能,或是增加用户体验效果等,都必须基於成本效益的决策,若营收随着新功能而增加,即代表运算成本的投资有正向回报。

有了量测指标,就可以依据成本效益与永续指标订定基准,接下来则必须藉由建立成本控制措施来落实。Vogels观察到:「有成本意识的架构必有成本控制措施」,这也就是节约架构的第五项法则。他指出,所谓的成本控制措施,一方面要先将软体功能依其商业价值分级,另一方面则是打造可调式架构,让软体功能的运作可如电源开关与音量旋钮一样切换与调节,例如软体各项功能的启用、预载、监测数据与Log记录的数量增减等等,皆可依据成本与业务需求而自由调整。

以亚马逊电商网站的首页为例,网页上的各项功能均依其与下单交易的关系分成不同等级,第一级功能属於下单交易必备的功能,如商品资讯、搜寻、用户评论、购物车、结帐等,少了任何一项就无法让消费者完成下单交易;第二级功能则如相关商品、推荐商品等有助於销售,但并非下单交易必备的功能,第三级功能则可能是辅助销售的功能,如陈列同厂牌的其他产品等。一旦各个功能的重要性与价值区分出优先次序,在投入相关资源时就能有所依据,例如要提升网站的可用性,显然强化第一级功能的可用性必须优先於第三级的功能,如此就能将资源花在刀口上,兼顾成本效益。

Vogels建议软体功能要基於商业价值来分级,不仅要提供如电源开关一样的控制按钮,而且更重要的是,要交由业务团队依据商业需求决定如何操控这些功能,而不是从技术的角度来决定。

继续阅读 → Part 3 节约架构最佳化篇


节约架构 Frugal Architect

设计

I. 成本是必要的非功能性需求
II. 系统成本必须与公司获利保持一致
III. 架构设计是一连串的权衡与取舍

量测

IV. 无法量测的系统必有隐藏的成本
V. 有成本意识的架构必有成本控制措施

最佳化

VI. 成本最佳化是渐进的
VII. 无庸置疑的成功必将导致错误的臆断


 

surfshark怎么下载

0 0 投票数
Article Rating
订阅评论
提醒
guest
0 Comments
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x