本周阅读了老师推荐阅读的公众号:架构师中的推文《首次公开!菜鸟弹性调度系统的架构设计》,感想如下:
菜鸟裹裹是一款提供查快递、寄快递的应用软件,主要适用于全网包裹查询,支持淘宝、天猫、京东、苏宁等网购包裹自动跟踪,同时覆盖国内外141多家快递公司。支持国内外快递运单查询、线上预约寄快递、快递自动跟踪、菜鸟驿站代收服务、快递进度实时提醒等。
是我们日常生活中最多使用的查询快递的app。
就拿我们网购来说,当我们日常在淘宝购物时,浏览了某件商品,加入购物车,购买,卖家提示确认订单信息,当我们选择信息无误后,卖家开始发货,此时,卖家需上传快递单号上传到阿里平台,而一旦卖家上传快递单号至阿里平台后,我们的手机app菜鸟裹裹马上就会跟进一条消息提醒,卖家已发货,实时追踪快递信息。这项技术现在变得非常快捷,当卖家发货时,我不需要再去打开淘宝,点击我的,查看待收货等信息,来看看我买的东西是否发货,我只需做其他的事,一旦发货后,菜鸟裹裹会自动提醒,我快递已发货,甚至在配送途中,如果开启了相应的通知权限,菜鸟裹裹会提示到达了哪里,下一站去哪里中转,预计到达时间是多久。
而正如我提到的,支撑这一切的正是阿里所打造的菜鸟方舟(ark),菜鸟方舟(ark)是面向菜鸟所有研发的资源管理和运维平台,负责对菜鸟的基础设施资源进行管控,以支撑日常和大促的资源需求。弹性调度是菜鸟方舟的一个重要组成部分,也是方舟的一个重要的功能特性。
那么,通过阅读所知,什么是弹性调度呢?通过陈娜老所讲授的师的《操作系统》可知,在任何一个系统中,都有相应的调度管理机制,和进程管理机制,而什么是弹性调度呢,简单来说。弹性调度面向负载可变的实时系统,通过动态调整任务属性以满足系统的灵活性要求,是一种高效的任务调度策略。即,动态的根据任务大小、调整调度算法、调度机制来满足系统的任务,避免出现负载,或死锁等状况。
根据文章中提到的弹性调度,我特意查阅了相关的架构信息,在网上截取了这张图片。
在目标服务流量上涨时,服务各种指标(例如CPU)上涨,导致服务质量下降。弹性调度自动发现这种情况,并做出扩容请求。相反,在服务流量较低时,弹性调度能够自动缩容,让服务始终保持在一个健康且不浪费的容量状态。
弹性调度在实现上包含以下部分:
指标的透出:无论是服务主动汇报还是被动收集,需要有metric系统持有服务的实时指标。
决策:决策系统是整个弹性调度的大脑,决策算法需要的数据(如metrics)需要各个系统透出,并决策出扩缩容的目标,然后提交给“执行”系统
执行:执行系统真正地去完成决策目标,例如扩缩容,也可能是动态改变单容器资源
框架图如下:
对我而言,我现在的主要目标是去学习,试着去理解软件架构中的知识,通过这两年的学习,我越发越清晰,软件不只是简简单单的写代码、改bug,之所以能称得上是软件工程,他必须符合工程所有的要求。从需求分析开始,从设计架构,设计软件的功能模块,软件测试、最后才是软件代码编写。在以后的学习中我会更加努力,学习软件架构。涉略相关知识,提上自己的能力,开拓自己的眼界。
文章地址:
https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247487005&idx=1&sn=fd7db29c85eac932f2d8c86ae6f8a017&chksm=e9293312de5eba043eb6b6f745fedf1358779f821d34ab3385c46c4e527d0cd7053581ddca63&scene=21#wechat_redirect