北京健康宝被攻击之高可用架构思考

近日看新闻,得知一个消息:

北京健康宝遭受境外网络攻击!4月28日,在北京召开的第318场疫情防控新闻发布会上,北京市委宣传部对外新闻处副处长隗斌通报,4月28日,北京健康宝使用高峰期遭受网络攻击,经初步分析,网络攻击源头来自境外,北京健康宝保障团队进行及时有效应对,受攻击期间,北京健康宝相关服务未受影响。在北京冬奥会冬残奥会期间,北京健康宝也遭受过类似网络攻击,均得到有效处置。北京市将做好网络安全服务,保障首都防疫工作大局。

于是展开对应的高可用架构思考!!!

一、什么是高可用?

高可用指的是通过尽量缩短因日常维护操作(计划)和突发系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。

二、影响高可用的因素有哪些?

  • 1.服务器磁盘空间耗尽。
  • 2.性能糟糕的SQL。
  • 3.表结构与索引没有优化。
  • 4.主从数据不一致。
  • 5.人为操作失误。

三、如何做出一套高可用架构?

1.陈皓的看法

陈皓从自己的经验出发,这样看:

“如果你没有一套科学的牛逼的软件工程的管理,没有牛逼先进的自动化的运维工具,没有技术能力很牛逼的工程师团队,怎么可能出现高可用的系统啊。”

要做出一套高可用架构的系统,包括但不限于如下:

  • 1.软件的设计、编码、测试、上线和软件配置管理的水平。
  • 2.工程师的人员技能水平。
  • 3.运维的管理和技术水平。
  • 4.数据中心的运营管理水平。
  • 5.依赖于第三方服务的管理水平。

深层交的东西则是——对工程这门科学的尊重:

  • 1.对待技术的态度。
  • 2.一个公司的工程文化。
  • 3.领导者对工程的尊重。

2.Bob大叔的看法

结合《架构整洁之道》的一部分内容,提炼相关核心内容:

  • 1.架构应当是简单且干净的。
  • 2.遵循和动态灵活运用设计原则(如单一职责原则、开闭原则、里氏替换原则、接口隔离原则、依赖反转原则等)。
  • 3.应当结合实际情况,充分利用复用/发布等同原则、共同闭包原则、共同复用宇宙等组件构建基本原则。
  • 4.软件架构具有独立性与边界性。
  • 5.行为价值与架构价值。

四、高可用架构常规的方案有哪些?

  • 1.服务冗余。
  • 2.无状态化。
  • 3.数据存储高可用(主从复制、主从切换、数据分片等)。
  • 4.柔性化/异步化。
  • 5.容错。
  • 6.负载均衡(Nginx负载均衡故障转移、Zookeeper负载均衡故障转移)。
  • 7.服务限流降级熔断。
  • 8.服务治理(服务模块划分与监控)。

上述八点不同搭配组合均可用于高可用架构方案,搭配组合的大前提便是实际应用场景是否真正需要。

文章目录
  1. 一、什么是高可用?
  2. 二、影响高可用的因素有哪些?
  3. 三、如何做出一套高可用架构?
    1. 1.陈皓的看法
    2. 2.Bob大叔的看法
  4. 四、高可用架构常规的方案有哪些?