热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

由某CDN故障引发的思考2:业务方如何应对那些坑爹的第三方故障

大部分公司的业务规模应该还没有达到所有服务都能够自给自足的程度,而且就算是BAT这些巨头们,很多服务也完全没有必要所有东西都自己做,一是效率问题,二是成本问题。喜欢喝牛奶未必就要自己养


  大部分公司的业务规模应该还没有达到所有服务都能够自给自足的程度,而且就算是BAT这些巨头们,很多服务也完全没有必要所有东西都自己做,一是效率问题,二是成本问题。喜欢喝牛奶未必就要自己养头奶牛,所以大部分公司的业务或多或少都会依赖一些第三方公司的服务,尤其是需要和第三方合作的业务,这种依赖就比较普遍,与业务的关联度也比较大了。


  CDN服务算是第三方服务的一种,还有很多其他服务,比如短信发送服务,声讯服务,关键词过滤服务,第三方合作数据接口,酒店ota服务,运营数据统计服务,DNS解析服务 ,安全防范平台服务等。如果要给这些第三方服务分个类的话可以将其分为三大类:基础类,比如CDN服务,DNS解析,安全防范服务,这一类第三方服务属于基础服务,与具体的业务没有关系,也不直接与用户产生关联,但是一旦基础服务出现异常往往会导致整个业务完全不可用;业务类,比如酒店ota服务,短信发送服务,,声讯服务,第三方数据合作接口(比如点评信息的引用,第三方登录),业务类的服务会与业务紧密联系在一起,必要的时候还是会业务密不可分的一部分,这一类服务出现异常,只会导致部分业务功能异常或者逻辑异常,将此类异常做好降级工作,业务的其余功能理论上是不受影响,继续能够为用户提供服务的;第三类服务,运营辅助类服务,其实也可以归为基础类,但是第三类服务的重要性对于大部分网站远远没有其他基础类服务的重要性高,一旦出现异常顶多是运营数据的异常,对于用户而言,这部分的异常是无感知的。很多公司在能力所及的范围下都会将这一部分作为自身的运营工具来开发,对于一些业务规模还比较小的网站而言,这部分还是需要依赖一些专业的第三方数据运营平台的,比如GA,站长工具,还有一些点击统计的工具。


  在实际的工作场景中,想必大家多数人和我一样,多多少少都会遇到这三类服务中某些或者全部服务出现过异常从而影响到自身业务的可用性。

  对此,我们也想过很多方法来规避这些第三方服务发生故障时对我们的业务造成不必要的影响,很多时候,对于基础或者非常重要的服务,要做好备份,容错,降级等准备工作,而且要定期对这些异常备用方案进行演练,切实验证这些准备工作的可用性以及切换效率,避免出现关键时刻准备工作完全不起作用的情况。


   针对基础类的第三方服务,我们应该从系统架构着手去支持服务的冗余与高可用,尽量将基础类的服务冗余散列在多个服务商处,就算是其中部分的服务商出现问题,我们也可以及时屏蔽掉这些有问题的服务,从而有效的保证业务的高可用。同时,最好相应基础服务的监控也是非常有必要的,因为基础服务一旦出问题,对整个业务的影响那是非常严重的,基础服务与业务的关系更像冰面上行走的人,一旦冰面破了,人就会掉到冰窟里面去了。比如DNS解析异常,那就会导致用户完全无法访问我们的站点,当然也就无法完成其他业务的处理了;CDN服务出现异常,那放在CDN服务上的静态文件,影音文件无法正常访问的话,就会导致用户看不到正常的内容或者无法完成相关的交互操作,比如登录,比如购买,整个业务站点基本上就处于全部瘫痪状态了。基础服务很多后尾效应比较严重,比如DNS服务出现异常后,我们自身是切换到正常的服务方了,但是有可能局部地区的DNS会很长时间出现异常;比如CDN服务异常,很多时候这些异常会被用户或者一些小的运营商的内部代理服务器缓存掉。及时发现,处理基础服务的异常,就是给我们的业务争取可用的时间。


   针对业务类的第三方服务,我们应该从业务设计出发,去掉强依赖,做好服务的降级和容错,以便当部分第三方服务异常的时候可以保证业务的其他部分是可用的。业务类第三方服务往往存在着类似“握手”的关系,所以很少能够做备份冗余的工作,而且这种备份冗余也最好是第三方服务来做的,对于业务方而言,出现握手失败的话就只能自己处理相关异常并做适当的降级,做到异常部分功能隐藏,同时其他部分的功能不受异常影响能够继续为用户提供服务。



   针对运营辅助类的第三方服务,我们首要要做的是,不要让这类异常影响到任何业务功能,同时不要让用户感知到。对于运营工具服务的异常,完全可以临时将此类服务关闭,相关数据可以用过往的数据进行填充,毕竟运营数据一时的异常不会对长远的运营工作造成任何大的影响,但是如果影响到业务的可用性就得不偿失了。



   尽量找靠谱,质量有保证的第三方服务提供商,成本不是这么省的,有的时候为了节省成本而选择了一家质量无保证的服务商最后损失的也许比我们节省的要多得多。

   第三方服务商的责任心与沟通渠道也很重要,需要我们关注的,除了服务商服务质量保证外,我们也需要关注服务商的责任心,出问题后是否会主动,及时通知以及迅速降低第三方服务异常对客户造成的影响。另外,沟通渠道是否顺畅,客服与技术人员是否可以及时有效处理用户的问题也是非常重要的。服务商的改进是不是灵活可变的,对于客户提出的需求,能否尽可能地去实现,很多第三方服务商要么需要花钱定制,要么直接告诉你我们系统就是这个样子的,没的改,虽然他也知道自己系统存在着诸多的不合理之处。


    不要把鸡蛋放在一个篮子里,对于大多数的网站,如果成本压力不是很大的话,非常建议不要把所有的服务放在一家服务商身上,必要的时候要做好冗余备份,而且尽可能的在平时就利用其这些备份措施,以保证其可用性。


本文出自 “运维者说:从菜鸟到老鸟” 博客,请务必保留此出处http://liuqunying.blog.51cto.com/3984207/1422341


推荐阅读
  • 本文提供了一套实用的方法论,旨在帮助开发者构建能够应对高并发请求且易于扩展的Web服务。内容涵盖了服务器架构、数据库管理、缓存策略以及异步处理等多个方面。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 腾讯视频 Node.js 服务国庆阅兵直播高并发实战
    本文分享了腾讯视频团队在国庆阅兵直播项目中,如何利用Node.js服务成功应对2.38亿次观看的高并发挑战。文章将从服务架构、可用性保障、缓存策略、日志与告警等方面详细解析。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • 7-Data Recovery数据恢复工具绿色版免费下载
    在日常生活与工作中,文件丢失或误删的情况时有发生,严重影响工作效率和个人生活。为此,推荐使用7-Data Recovery数据恢复套件,这是一款功能强大且易于使用的数据恢复软件。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
author-avatar
Dark-胡俊賢
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有