技术运维操作的7个原则

文摘   科技   2023-08-08 10:58   日本  

技术运维的操作的范围包括应用、系统、网络和数据库的变更,这是一项非常复杂的工作,需要在操作过程中保持系统的稳定性、安全性、高效性和可维护性。在面对复杂多变的问题和挑战时,只有深入理解和掌握运维操作的基本原则和理论,才能保持冷静,找到最佳的解决方案,确保系统的稳定运行。以下是从长期的技术运维操作实践中总结出的七个原则,希望这些操作原则能为技术运维工作带来一定的指引作用。
一、最小化原则
应该尽量保持最小的变更范围和深度。这个逻辑就是要尽最大可能控制操作所带来变化的目标数量,这样在变更过程中或者变更完成后出现任何问题,不仅可以立即回滚,还能很快定位错误。例如,Google在更新其搜索算法时,首先在部分用户群体中进行试运行,并逐步根据反馈进行调整,最终将改动推广到全网,而不是一次性对所有用户进行全面更新。Knight Capital是一家美国的金融服务公司。201281日,该公司在软件更新过程中发生了重大错误,一个未经充分测试的新交易软件被部署到了生产环境,导致在45分钟内进行了大约4.4亿美元的错误交易,公司最终损失了4400万美元,并在事故发生后的两天内被迫出售。

二、自动化原则

应该尽量将手动操作转化为自动化操作。人的体力是有限的,人的知识和技能是有限的,人的精力和注意力也是有限的,最关键的是人是有情绪的。任何运维操作高手都无法确保不犯错误,因此要采用自动化操作替代人工操作。Netflix使用Chaos Monkey自动化工具来模拟各种故障,以此来测试系统的健壮性,所以其应用的质量很高,系统运行平稳可靠。相反,20172月,GitLab的数据库在进行手动操作时发生了人为错误,由于操作失误,删除了大量重要数据。致使该公司的线上服务中断了将近6小时,对公司声誉造成了严重的影响。

三、 标准化原则

应该尽量采用标准化的工具和流程。标准化的工具可以让所有运维操作人员积累经验,这里并不是说自研系统不可取,而是说所有自研工具都需要在生产过程中逐渐成熟完善,是需要以系统宕机为代价缴学费的。标准化的流程可以为技术运维人员提供有效的行动指引,知道每一步应该怎么做,做到什么程度?而不是老中医凭经验干活,稍有不慎就会出现人命风险。例如,Amazon Web Services提供了一整套标准化的云计算服务,让运维更加稳健和方便。2014年,一家电商公司因为使用了自研的订单处理系统,结果在双十一当天出现了严重的订单延迟和丢失问题,给公司的运营和客户服务带来了巨大压力。

四、安全原则

应该始终把安全放在首位。再好的业务,再牛的技术,再稳健的操作都抵不过安全问题。不重视安全风险,不采取有效的安全管控措施,不仅仅会影响系统的稳定性,更严重的是对整个公司带来巨大的破产和倒闭风险。20175月,全球爆发了WannaCry勒索病毒事件,在这次事件中,那些经常进行安全更新的组织成功避开了袭击。当然也有不少公司没有那么幸运,英国国家卫生服务体系(NHS)是受攻击最严重的组织之一,因为他们在事件发生前,没有及时按照Microsoft的安全补丁,导致了大量计算机被病毒感染,影响了数千名患者的治疗。 

五、可恢复原则

应该确保系统在遇到故障时,可以快速恢复到正常状态。就是说系统要有能力保持应用和数据在某个时间点的拷贝,确保在发生系统故障或者数据出现问题的时候,能够迅速取得应用和数据的备份并完成恢复。GitLab2017年的数据丢失事件中,由于有备份策略,成功恢复了大部分数据。而在2014年,一家名为Code Spaces的代码托管公司,遭到了一次严重的DDoS攻击和数据删除。由于公司没有有效的数据备份和恢复计划,最终无法恢复丢失的数据,导致公司不得不宣告关闭。

六、 可扩展原则

应该考虑系统的可扩展性,以应对业务增长或变化的需求。任何一间公司都怀着向全世界甚至宇宙无限扩展的理想,这是企业家的本性。所以运维操作过程中必须认真考虑系统的可扩展性,也就是能够在业务真正飞速发展的时候提供足够的运行空间。黑色星期五购物节期间,许多零售商会提前增加服务器资源,以应对可能的流量激增。在2014年的世界杯期间,一家著名的在线直播网站在比赛高峰期间突然崩溃,因为他们没有提前预估和扩展服务器资源来应对突然激增的流量,导致大量用户无法观看比赛。

七、 透明化原则

应该尽可能让运维操作透明化。这个原则要求技术运维操作必须要先有详细的预案,而且这些预案必须要经过变更委员会的严格审查。同时保持专业和完善的文档,另外操作的过程,验证的结论也要记录在案,以备日后的复盘,让其他的团队和后续的技术人员有学习的基础。在GitHub,所有的运维操作都会被详细记录并公开,这为其他团队提供了宝贵的学习资源。在一次著名的AWS S3故障中,部分服务的运维操作记录丢失,导致AWS的工程师花费了大量的时间来追踪和解决问题。如果他们有详细的运维操作记录,可能可以更快地找到问题和解决方案。

以上所总结的技术运维操作的七个原则以及各自的实践案例,希望能为大家的运维操作工作提供一些参考和启发。这些原则并非孤立存在,而是相互关联,相互影响。在运维工作中,我们需要灵活运用这些原则,根据具体情况制定最适合自己的策略。

最后要强调的是,理论和实践的相互作用在技术运维中尤其突出。缺乏理论武装,我们的工作就只能依赖经验和直觉,而这往往容易犯错误,无法保持效能的持续提升。没有实践,理论便只是空谈,无法解决实际问题。只有将理论与实践紧密结合,我们才能提高工作效率改善工作效果。

-----------------------------------

想要了解更多关于支付的故事,请阅读《一本书读懂支付》---扫描下方↓二维码,即可获得!

-----------------------------------
作者介绍




陈 斌
NETSTARS
首席技术官(CTO)

架构决定未来
Netstars技术分享
 最新文章