文档章节

软件架构总篇

c
 cssniper
发布于 2017/07/15 18:34
字数 1122
阅读 50
收藏 0

硬件 => CDN =>DNS =>接入层=>逻辑层=>数据层=>缓存层=>安全=>监控=>质量保证=>性能定位分析 =>案例
什么是架构的高可用
架构高可用重要性
架构高可用的手段都有哪些
架构高可用评价维度是什么
架构高可用的如何分级&考核
架构高可用的涉及环节
典型问题你遇到过吗?

 

什么是软件架构

系统架构两大要素

各个组件

组件见得相关关系

 

什么是好的软件架构

成本最低

满足用户需求(将来的功能需求)

系统稳定性好

架构足够灵活

数据量维度

并发量维度(同步和异步)

部署运维维度

什么是坏的架构

成本高

系统复杂,笨重

系统不稳定

        经常发生故障

系统扩展性差

系统维护性差

         维护代价高

软件架构高可用性

一、系统运行依赖的基础

硬件

机器,CPU,内存,硬盘,网卡

软件

操作系统

文件系统

软件本身

系统运行依赖的基础不可用性

硬件

生命周期,硬件故障

软件

    软件bugs

   软件间资源的争抢

  软件架构高可用

任何时间都正常提供读写服务

7*24

机器硬件故障

   -cpu,内存,硬件,网卡

机器软件故障

   -os,fileSystem

网络划分

 -机器间网络隔离

  -网络弱可用

高可用架构的重要性

-业务快速发展的支持

-系统不可用,系统频繁故障、系统不稳定

  用户体验差,用户留不住

 精力放在系统稳定性方面

无精力响应业务功能需求

-系统不可用,公司品牌、形象受影响

2011年4月12日,亚马逊云计算服务EC2宕机半天

贵公司有不可用的案例吗?

 

架构高可用的重要性

 -系统不可用,公司利益

       2010年1月12日,百度DNS被劫持

      经济损失百万到!!

     宕机时间==损失收入(金钱)

  -没有系统高可用,谈其他一切都是扯淡

   架构高可用的重要性 

 

架构高可用手段

设计无状态化

子系统冗余

幂等性设计

 

异步调用

  避免一个服务失败导致的整个服务失败

超时机制

分级管理(核心系统,非核心监控)

服务降级

 

架构高可用的手段

    服务治理

       进程

       语义

       错误

       coredump

      数据波动

     -。。

服务可管理、可视化

      日志监控系统

   

架构高可用评价维度

系统在面对各种异常时,可以提供正常服务的能力

系统的可用性可以用系统停服的时间和正常服务时间的比例来衡量

系统不可用时间(故障时间=故障修复时间点-故障发现时间点)

4个9的可用性(99.99%)

一年停机时间不能超过53分钟

365*24*60/10000=53分钟

架构高可用评价维度是什么?

    架构高可用评价维度

2个9的可用性(99%)

基本可用

一年停机的时间不能超过88个小时

365*24*60/100=88个小时

-3个99的可用性(99.9%)

较高可用性

一年停机时间不能超过9个小时

365*24*60/1000=9个小时

 

5个99的可用性(99.999%)(Google没有做到)

极高可用性

一年停机的时间不能超过5分钟

365*24*60/100000=5分钟

 

架构高可用评价维度

加多的网站可用性不足2个9

 --88个小时

Twitter网站

 

一目标

 做到4个9

具备自动恢复能的高可用

 

架构高可用涉及的环节

架构关键节点层面

负载均衡

软件质量保证

预发布

灰度发布

安全

监控

回滚方案

线上问题定位分析

高可用架构遇到问题

上线发生数据改动,格式和之前的不兼容,回滚也不正常,如何处理?

1.备份 2.生成新的一份数据,如果ok切换到新的数据,如果不ok,回滚数据

上线更新删除了数据,回滚后数据也没有了,如何处理?

该不该发生,如果发生了改怎么去处理

延迟从,悲剧。

 

© 著作权归作者所有

下一篇: DNS篇
c
粉丝 0
博文 3
码字总数 1743
作品 0
长沙
私信 提问
2014 年度开源软件排行榜计划

@红薯 说,要精不要多,四篇足矣。 总榜(收藏+点击+帖子数): 2014 年最热门的 20 款开源软件 2014 年最热门的 10 款国产开源软件 2014 年最受欢迎的 10 篇博客文章 2014 年最受欢迎的 10...

叶秀兰
2014/12/03
6
2
软件开发心得点滴记录

软件开发心得点滴记录 一见 创建日期:2013/6/27 1. 前言 自从2002年大学毕业后一直沉浸于软件开发之路,平时喜欢思考和归纳,时常会产生一点心得和想法,回想起来是一笔宝贵的财富,只可惜陆...

一见蓝天
2013/06/27
0
0
软件架构引言之项目管理的问题

软件架构引言之项目管理的问题 很多朋友都有过或者正在管理一个或者多个软件项目,那么我的文章就从这个问题开始:如果单纯从表象来说,软件项目管理过程中暴露的最大问题是什么? 不同的人的...

长平狐
2012/10/23
71
0
如何从一个优秀的Java程序员变成一个高薪架构师

做了4年的java程序员,一直考虑以后的发展方向。感觉不适合走管理路线的人,所以考虑继续在技术方面深入下去。 相信好多程序员都有相同的感觉,做了好多年代码民工,感觉自己每天都在重复着相...

禁区铁铍人
2017/12/09
0
0
成为技术老大技术管理篇5一技术演变史总结

前面十几篇,我们聊了过往很多技术变化的过程。谈的非常简略,为什么要花这么大的篇幅了解这些呢? 我们还是回到技术管理的目标上来。只要公司的业务在发展,技术系统就会不停的进行迭代,一...

铁棍山药
2018/06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

瓜哥奇遇记

庚子年秋, 瓜哥在黄石公园开枪射杀了杨耀东. 同年腊月, America 政府想要在 Montaña 审判他, 瓜哥称这违反了 America 第六修正案, 得以无罪释放. 辛丑年, 三月, 泛大洋. 一艘航船行驶在平平...

王氾超-E_Convorn_Ares
14分钟前
0
0
java对redis的基本操作

一、server端安装   1、下载     https://github.com/MSOpenTech/redis     可看到当前可下载版本:redis2.6          下载windows平台文件:               ...

boonya
15分钟前
0
0
自定义配置类

1.自定义配置类 在web开发中经常会用到配置文件,将配置文件中的属性自动注入到配置类中。 在application.properties文件中添加配置属性 com.neo.title=zabbix触发器com.neo.description=监...

贾峰uk
34分钟前
0
0
IDEA常用设置

1、鼠标悬停一秒看提示 2、自动导包 3、行号、分隔符 4、忽略大小写 5、多行线束操作 6、设置字体以及大小 7、设置注释字体颜色 8、设置文档注释信息 /** @author hll @date ${DATE} - ...

一只小青蛙
38分钟前
0
0
8.eclipse 安装 lombook插件

1.效果 2.安装过程 参考: https://blog.csdn.net/zflovecf/article/details/80178679 2.1 下载插件 https://projectlombok.org/download.html 并放入eclipse所在目录 (位置参考下图) 2.2 ......

20190513
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部