你可能还想看
1. 云游戏时代,「串流」如何实现“延时自由”?
2. 如何在大促中做好系统高可用
3. IP报文在阿里云上的神奇之旅:同地域内云上通信
4. 30+场技术论坛 1000+科技新品发布,今年云栖大会我们关注什么?
5. 代码解放,一个智能化的「云控制台」如何运转?
关注我们欢迎关注加星标✨ 每日推送不错过
凌云时刻
研发过程中,开发同学在接到一个需求后,必须要回答两个问题:做什么(WHAT)、怎么做(HOW)。基于开发与测试在拆解需求时面临的共性问题,结合自己过往的经验,作者总结出了一个实用的方法。本文不讨论技术选型,仅从思考逻辑上总结应该如何拆解与实现一个给定的需求。欢迎讨论。
这里的数据是包括用户直接感知的数据与富媒体内容流,也包括用户不感知但是用于支撑功能的研发类型的数据。数据的来源包括:网络数据、本地存储的数据、内存数据。不同的数据类型,需求实现的处理有差异,例如:
功能发布形式有多种,例如:灰度、Beta、A/B 测试形式发布、动态配置下发、直接全量等。不同发布形式对于功能发布之初的观测有差异,要支撑不同的发布形式,具体的实现也有差异:比如,通过 Google Play 进行 APP 灰度测试不需要开发人员针对功能做额外处理;以 A/B 测试形式上线的功能则需要在编码之初就要考虑通过什么平台能力进行,同时还需要编写对应代码。
关于如何监控:需要区分是技术指标监控,还是业务类指标的监控。不同的监控范围,在需求拆解的时候就要决定哪个平台进行,比如:业务类的指标可以在 xflush 平台上进行(需求拆解时要考虑数据回流 xflush 是已有的能力,还是需要新建能力);性能类指标可以在魔兔/iTrace 上观测;研发问题的排查可以通过 SLS 进行,还可以自建排查能力。监控虽可以跟随功能的交付逐步补充完善,考虑需求的完整性,建议是在需求拆解的时候明确监控范围与形式。毕竟,实现监控也是需要工作量的。
上线后有哪些工具可以用于排查分析问题,在需求实现的时候就需要将能力预置好的。例如,对于“用户下单”这类容错较低的需求,研发在需求实现过程中如果没有写入足够的日志,一旦线上用户反馈“同一个产品在同一个时间下两个订单”,大概率这个问题就是无头无解问题。
总结来说:需求发布到线上后如何运维与监控,研发人员在拆解需求的时候需要思考明白:需求发布形式、上线后期望的监控方式、出问题时可用的排查方式与与排查数据。这些明确后,具体的实现,很容易通过历史功能、咨询、查资料等方式学习到。
欢迎关注加星标✨ 每日推送不错过