For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
高可用性编程开发是目前大多数程序员都需要熟练掌握的一种编程开发方法,而本文我们就通过案例分析来简单了解一下,高可用性编程实践分享。
架构设计
架构设计往往影响着系统的前期实现成本(即ROI)和后续运维难度,属于软件的顶层设计,这里面既包含宏观的设计方案,也包含落地细节里的范式约束。
•流程保障
邀请架构师参与:核心交易节点、重大需求改动邀请架构师参与,这是闭坑直接有效的方式;
重视设计文档:方案描述清楚了,并取得相关利益者的认可,是走在正确道路上的前提。
•设计保障
容灾设计:要预留后路,提前想清楚,做好容灾设计。可回滚,可熔断,可重试,可降级。
鲁棒性设计:无状态设计,防重设计,幂等设计,数据一致性设计
编码实现
如果说架构设计是骨架,那么编码实现就是神经,血管和肌肉。前者决定了能走多稳,走多久,后者决定着走多快,走多远。落实到编码层面,就是代码的衰老腐败程度。
•流程规范
代码评审机制:代码评审不仅仅是发现系统中存在的问题这么简单。它是一种长期行为,是进行组织文化贯彻和传承的一种形式和载体。评审的过程中,明确了业务职责边界,设计与编码共识,优秀的标准导向等研发共识。相当于通过具象化的案例,给出针对性的指导,这些都是保证团队战斗力的基石。
安全上线
线上70%的故障都是由某种变更而触发的,其中相当一部分占比是不规范的上线引起的。所以安全上线这一环节至关重要。
•流程规范
◦严禁频繁上线:比如,每周不大于2次;
◦严禁高峰期上线:降低问题影响范围;
◦严禁私自上线:有改动,必须通过测试验证,产品回归确认;
•过程规范
◦摘流量:选择一批机器jsf下线/np摘流量(选为冷备);
◦看日志:观察日志确认摘除机器无流量;
◦服务预热:确认机器启动成功,核心业务接口需要接口预热;
◦挂流量:挂载上线机器流量;
◦看指标:观察上线机器mdc指标是否异常(cpu、内存、负载)、日志是否有异常
部署运营
实现高可用的一个很重要的手段就是能力冗余。下面给出方向和思路,具体落地细节和策略,可以根据具体情况各自延展。
•网络
◦运营商层面,联通,电信,移动等;
◦链路节点方面,VIP,CDN,路由器/交换机,反向代理,客户端,浏览器等;
•存储
◦无论是数据库主从架构,还是ES的副本架构,都是实现存储高可用的手段,重要数据要利用好相关特性;
◦在进行数据结构设计时,同样也需要做好分流策略,容量规划,数据拆分或异构。比如:避免缓存热key,数据库表吞吐量瓶颈,数据库连接数限制等各种影响高可用的问题出现。
•服务
◦横向扩容:服务要保证可以通过添加资源的方式进行能力扩容,这一点非常重要;
◦服务分组:按照业务方或使用场景,对服务进行不同粒度的隔离,防止极端情况导致服务相互影响;
◦极限策略:主要是一些极端异常情况下的防御策略,目的是意外发生后,尽量保持服务的可靠性。比如:限流,熔断,重试,快速失败等;
◦灰度策略:新功能上线,往往是容易出现问题的时候,拥有成熟的流量灰度能力,是控制问题影响范围的关键;
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音达内三江区域学习了解。