精华内容
下载资源
问答
  • 《京东数据中心网络高可用架构》.pdf 《京东数据中心网络高可用架构》.pdf 《京东数据中心网络高可用架构》.pdf 《京东数据中心网络高可用架构》.pdf
  • 高可用架构(转)

    万次阅读 2018-06-22 17:51:49
    一、可用性度量与考核 首先,不得不说:要保证一个网站永远完全可用几乎是一件...例如QQ可用性达到了4个9:99.99% ①2个9=基本可用 ②3个9=较高可用 ③4个9=具有自动恢复能力的高可用 ④5个9=极高可用->...

    一、可用性度量与考核

      首先,不得不说:要保证一个网站永远完全可用几乎是一件不可能完成的任务(Mission Impossible,是不是有点碟中谍的感觉)

       (1)如何度量网站可用性?

      一个神奇的数字—9!你有几个9,就代表了你的可用性。例如QQ可用性达到了4个9:99.99%

      ①2个9=基本可用  ②3个9=较高可用  ③4个9=具有自动恢复能力的高可用  ④5个9=极高可用->理想状态

      那么,可用性的9又是怎么计算出来的呢:

      ①网站不可用时间=故障修复时间点-故障发现时间点

      ②网站年度可用性指标=(1-网站不可用时间/年度总时间)*100%

      (2)如何考核网站可用性?

      广泛采用故障分的,它是对网站故障进行分类加权计算故障责任的方法。一般会给每个分类的故障设置一个权重(例如事故级故障权重为100,A类为20等),其计算公式为:故障分=故障时间(分钟)*故障权重。公司对技术团队的考核一般会参考故障分,例如某团队今年发生了几个事故级故障,那么其绩效考核估计受到很大影响,年终奖什么的就悲剧了。

    二、高可用的架构

      目前,通常企业级应用系统(特别是政府部门和大企业的应用系统)一般会采用安规的软硬件设备,如IOE(IBM的小型机、Oracle数据、EMC存储设备)系列。而一般互联网公司更多地采用PC级服务器(x86),开源的数据库(MySQL)和操作系统(Linux)组建廉价且高容错(硬件故障是常态)的应用集群。

      (1)设计的目的?

      保证服务器硬件故障服务依然可用,数据依然保存并能够被访问

      (2)主要的手段?

      数据和服务的①冗余备份以及②失效转移

      对于服务而言,一旦某个服务器宕机,就将服务切换到其他可用的服务器上;

      对于数据而言,如果某个磁盘损坏,就从备份的磁盘(事先就做好了数据的同步复制)读取数据。

    三、高可用的应用

      应用层处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性

    PS:提到无状态特性,不得不说下Http协议。我们常常听到说,Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。之所以我们在使用ASP.NET WebForm开发中会感觉不到Http的无状态特性,完全是因为Microsoft帮我们实现了ViewState,它是ASP.NET WebForm中保存页面信息的基本单位,本质是一个HTML中的隐藏域,回调时会将这个隐藏域中的数据提交到服务器端。  

      (1)通过负载均衡进行无状态服务的失效转移

      (2)应用服务器集群的Session管理

      首先,不得不说的是:Web应用中将上下文对象称为会话(Session),单机情况下由部署在服务器上得Web容器(如IIS、Tomcat、JBoss等)管理。在使用了负载均衡的集群环境中,由于请求的分发是随机的,所以保证每次请求依然能够获得正确的Session比单机时要复杂得多

      其次,我们来看看在集群环境中,Session管理的几种常见手段。

      ①Session复制:该方案简单易行,集群中的几台服务器之间同步Session对象,任何一台服务器宕机都不会导致Session对象的丢失,服务器也只需要从本机获取即可。但是,该方案只适合集群规模较小的情况下。当规模较大时,大量的Session复制操作会占用服务器和网络的大量资源,系统不堪重负

      ②Session绑定:利用负载均衡的源地址Hash算法,总是将源于同一IP地址的请求分发到同一台服务器上。这样的话,在整个会话期间,用户所有的请求都在同一台服务器上进行处理,即Session绑定在某台特定服务器上,保证Session总能在这台服务器上获取。(这种方案又叫做会话粘滞)。

      但是,这种方案不符合高可用的需求。因为一旦某台服务器宕机,那么该机器上得Session也就不复存在了,用户请求切换到其他机器后因为没有Session而无法完成业务处理。因此,很少有网站采用此方案进行Session管理。

      ③Cookie记录Session:利用浏览器支持的Cookie记录Session简单易行,可用性高,并且支持服务器的线性伸缩,因此,许多网站都或多或少地使用了Cookie来记录Session。但是Cookie记录Session有缺点:比如受Cookie大小限制、每次请求响应都要传输Cookie影响性能、用户关闭了Cookie会造成访问不正常等。

      ④Session服务器:利用独立部署的Session服务器(集群)统一管理Session,应用服务器每次读写Session时,都访问Session服务器。这种方案实际上是将应用服务器的状态分离,分为无状态的应用服务器有状态的Session服务器

      对于,有状态的Session服务器,一种较简单的方法是利用分布式缓存(如Memcached、Redis等,有关Redis的简单介绍可以阅读我的博文:NoSQL初探之人人都爱Redis)、数据库等,在这些产品的基础上进行封装,使其符合Session的存储和访问要求。

    四、高可用的服务

      高可用的服务模块为业务产品提供基础公共服务,在大型站点中这些服务通常都独立分布式部署,被具体应用远程调用。

      在具体实践中,有以下几点高可用的服务策略可以参考:

      ①分级管理:核心应用和服务具有更高的优先级,比如用户及时付款比能否评价商品更重要;

      ②超时设置:设置服务调用的超时时间,一旦超时后,通信框架抛出异常,应用程序则根据服务调度策略选择重试or请求转移到其他服务器上;

      ③异步调用:通过消息队列等异步方式完成,避免一个服务失败导致整个应用请求失败的情况。

    PS:不是所有服务都可以异步调用,对于获取用户信息这类调用,采用异步方式会延长响应时间,得不偿失。对于那些必须确认服务调用成功后才能继续进行下一步的操作的应用也不适合异步调用。有关具体使用消息队列实现异步调用的案例,请阅读我的博文:《使用Redis作为消息队列服务场景的应用案例》。

      ④服务降级:网站访问高峰期间,为了保证核心应用的正常运行,需要对服务降级。

      降级有两种手段:一是拒绝服务,拒绝较低优先级的应用的调用,减少服务调用并发数,确保核心应用的正常运行;二是关闭功能,关闭部分不重要的服务,或者服务内部关闭部分不重要的功能,以节约系统开销,为核心应用服务让出资源;

      ⑤幂等性设计:保证服务重复调用和调用一次产生的结果相同;

    五、高可用的数据

      对于大多数网站而言,数据是其最宝贵的物质资产。

      保证数据高可用的主要手段有两种:一是数据备份,二是失效转移机制;

      ①数据备份:又分为冷备份和热备份,冷备份是定期复制,不能保证数据可用性。热备份又分为异步热备和同步热备,异步热备是指多份数据副本的写入操作异步完成,而同步方式则是指多份数据副本的写入操作同时完成。

      关系数据库的热备机制就是通常所说的主从同步机制,实践中通常使用读写分离的方法来访问Master和Slave数据库,也就是说写操作只访问Master库,读操作均访问Slave库。

    PS:在MS SQL Server中,可以通过发布订阅功能实现主从分离。关于发布订阅,可以参考MSDN的这篇文章:http://technet.microsoft.com/zh-cn/ff806143.aspx

      ②失效转移:若数据服务器集群中任何一台服务器宕机,那么应用程序针对这台服务器的所有读写操作都要重新路由到其他服务器,保证数据访问不会失败。

    六、高可用的QA

      ①网站发布:在柔性的发布过程中,每次关闭的服务都是集群中的一小部分,并在发布完成后立即可以访问;

      ②自动化测试:使用自动测试工具或脚本完成测试;

      ③预发布验证:引入预发布服务器,与正式服务器几乎一致,只是没有配置在负载均衡服务器上,外部用户无法访问;

      ④代码控制:目前大多数网站采用SVN,分支开发,主干发布模式;另外,目前开源社区广泛采用Git作为版本控制工具,正逐步取代SVN的地位;

    七、网站运行监控

      ”不允许没有监控的系统上线“

      (1)监控数据采集

      ①用户行为日志收集:服务器端的日志收集和客户端的日志收集;目前许多网站逐步开发基于实时计算框架Storm的日志统计与分析工具;

      ②服务器性能监控:收集服务器性能指标,如系统Load、内存占用、磁盘IO等,及时判断,防患于未然;

      ③运行数据报告:采集并报告,汇总后统一显示,应用程序需要在代码中处理运行数据采集的逻辑;

      (2)监控管理

      ①系统报警:配置报警阀值和值守人员联系方式,系统发生报警时,即使工程师在千里之外,也可以被及时通知;

      ②失效转移:监控系统在发现故障时,主动通知应用进行失效转移;

      ③自动优雅降级:为了应付网站访问高峰,主动关闭部分功能,释放部分系统资源,保证核心应用服务的正常运行;—>网站柔性架构的理想状态

    本章思维导图

    展开全文
  • 数据中心网络高可用架构

    万次阅读 2016-09-09 15:30:27
    文章不错,转来了 http://www.h3c.com.cn/Solution/Operational/DataCenter/Solutions/201003/802841_30004_0.htm相比传统的高可用技术,新技术的出现为构建数据中心网络高可用架构提供了更优的部署方式。...

    文章不错,转来了 http://www.h3c.com.cn/Solution/Operational/DataCenter/Solutions/201003/802841_30004_0.htm


    相比传统的高可用技术,新技术的出现为构建数据中心网络的高可用架构提供了更优的部署方式。

    一、 高可用性的定义

    传统意义上的可用性(AVAILABILITY )定义为系统正常运行时间占总运行时间的比例(当前的总运行时间包括出问题以后修复所耗费的时间)。高可用性由两个基本概念组成:
      MTBF(Mean Time Between Failure),系统平均正常运行时间
      MTTR(Mean Time to Repair),系统平均恢复时间
      可用性的计算公式: AVAILABILITY = MTBF / ( MTBF + MTTR ) × 100%

    可用性(每年)

    故障时间(每年)

    备注

    98.000000%

    7.3天

    99.000000%

    3.65天

    99.900000%

    8.76小时

    99.990000%

    52.56分钟

    99.999000%

    5.256分钟

    即"5个9的可用性"

    99.999900%

    31.536秒

    99.999990%

    3.1537秒

    99.999999%

    0.31538秒

        表1. 以一年为时间段的不同等级的可用性与一年内的总故障时间的对应关系表

    网络节点与网络链路的故障无法完全避免,所以提升网络可用性的重要方法之一是尽量降低系统的故障恢复时间。

    二、 高可用技术

    应用于数据中心传统高可用技术主要包括:

    物理设备:冗余电源、冗余风扇、冗余主控、板卡支持热插拔;

    链路层面:以太网链路聚合(手工聚合、LACP);

    二层多路径:STP、MSTP、SmartLink;

    三层多路径:VRRP、ECMP、动态路由协议多路径;

    故障检测:NQA、BFD、OAM、DLDP;

    不间断转发:GR、热补丁升级;

    L4-L7多路径:状态热备、非对称路径转发;

    在传统的数据中心三层网络结构中(如图1所示),由于存在多设备多路径冗余,就会存在环路结构,因此MSTP/VRRP/OSPF等处理多路径冗余的协议部署至关重要。一般在数据中心的核心到汇聚层间部署OSPF等动态路由协议,在汇聚层网关设备上部署VRRP处理多网关冗余,在汇聚层到接入层之间部署STP/MSTP解决二层网络环路冗余。当在汇聚层或核心层部署防火墙等基于4-7层的状态处理设备时,同时需要在多台设备间部署状态热备等特性。

    为了保证数据中心的设备和链路发生故障时业务流量能够快速收敛,还需要部署NQA、BFD、OAM和DLDP等路径检测协议以降低故障检测响应时间。同时可以部署GR等不间断转发协议协助动态路由协议在主备板切换情况下快速完成业务流量收敛。

    图1 传统数据中心的高可用部署

    新一代数据中心虚拟化网络架构中(如图2所示),通过IRF(Intelligent Resilient Framework)智能弹性架构技术将多台网络设备虚拟化成一台设备,并将这些设备看作单一设备进行管理和使用。这种"联合设备"被称为Fabric,组成Fabric的每台设备为一个Unit。IRF技术特性包含分布式设备管理(Distributed Device Management,DDM)、分布式弹性路由(Distributed Resilient Routing, DRR)和分布式链路聚合(Distributed Link Aggregation, DLA)功能。

    DDM:用户可以将整个Fabric作为一台整体设备进行管理。通过连接到Fabric中任何一个端口、任何一个IP地址来管理整个Fabric,而不需要关心自己具体连接到了哪个Unit上。

    DRR:Fabric的多个Unit在外界看来是一台单独的三层交换机。整个Fabric作为一台设备进行路由功能和报文转发功能,具有统一的VLAN接口、路由表和三层转发表。在某一个Unit发生故障时,路由协议和数据转发不受影响,从而减少业务中断。

    DLA:用户可以将Fabric中不同Unit的多个端口进行聚合,实现对Fabric内统一的聚合管理。这不仅可以使聚合的设置更加方便,而且跨越设备的链路聚合也有效地避免了单点故障的发生。

    图2 IRF组网结构示意图

    与传统的L2/L3网络设计相比,IRF技术构建的虚拟化网络架构主要有四个优点:

      运营管理简化:网络虚拟化能够提高运营效率,虚拟化的每一层交换机组被逻辑化为单管理点,包括配置文件和单一网关IP地址,无需VRRP。

      整体无环设计:跨设备的链路聚合DLA创建了简单的无环路拓扑结构,不再依靠生成树协议(STP/SMTP)或动态路由协议进行环路冗余路径处理。虚拟交换组内部经由标准万兆以太网接口相连,无需特殊电缆,在总体设计方面提供了灵活的部署能力。

      进一步提高可用性:虚拟化能够优化不间断通信,当其中一台虚拟交换机发生故障时,不再需要进行L2/L3重收敛,能快速实现业务通信流量的中断恢复。

      增强的可扩展性:与MSTP+VRRP设计收敛不同,通过虚拟化能在更短时间内完成确定性L2链路恢复,同时不影响L3链路。通过虚拟化能够实现网络各层的横向扩展,有利于服务器群的规模增大,设计更简单,完全不影响网络管理拓扑。各层之间通过增加捆绑链路单元即可平滑增加带宽,灵活性极强。

    三、 数据中心高可用架构

    1. 服务器接入

    服务器接入的高可用设计也就是服务器多网卡接入。为了实现接入的高可用性,服务器通常采用多链路上行,即服务器采用两块或两块以上的网卡接入,服务器中的网络驱动程序和高可用集群软件可将两块或者多块网卡捆绑成一个虚拟的网卡,如果一个网卡失效,另一个网卡会接管它的MAC 地址,两块网卡使用同一个IP 地址,而且必须位于同一广播域,即同一子网下。

    图3 服务器和接入交换机之间的连接方式

    服务器和接入交换机之间的连接方式(如图3所示),标号从1至4,拓扑的可用性依次降低。标号1采用接入层框式双机拓扑的网络可用性最高,标号2的框式多板卡冗余要比标号3的盒式多机冗余拓扑可用性更高,而标号4中单机盒式设备双网口冗余的网络可用性最低。因此推荐采用第1种接入方式,这种连接方式的服务器采用交换机容错模式分别接入到两台机柜式交换机上,并且将VLAN Trunk 到两台设备上,实现服务器的高可用接入。

    2. 接入层

    接入层到汇聚层共有4种连接方式,分别为倒U型接法、U型接法、三角形接法和矩形接法,这里所谓不同类型的接法是以二层链路作为评判依据,比如说矩形接法,从接入到接入,接入到汇聚、汇聚到汇聚均为二层链路连接,因此形成了矩形的二层链路接法。

    图4 接入层的高可用拓扑比较

    拓扑

    优点

    缺点

    1

    倒U型

    不启用STP,好管理

    VLAN 可以跨汇聚层交换机,服务器部署灵活

    必须通过链路聚合保证高可用性

    汇聚交换机故障时,服务器不可达,无法实现高可用接入

    2

    U型

    不启用STP,好管理

    双active链路,接入交换机密度高

    不能使VLAN跨汇聚层,服务器部署不灵活

    接入交换机间链路故障,VRRP心跳报文无法传递,整机做VRRP主备切换,故障收敛时间长。

    3

    矩形

    双active链路,接入交换机密度高

    VLAN可以跨汇聚层交换机

    有一半的接入层流量要通过汇聚交换机之间的链路。当接入交换机上行链路故障时,所有流量将从一侧的交换机上行。收敛比变小,网络易拥塞,降低网络高可用性。

    4

    三角形

    链路冗余,路径冗余,故障收敛时间最短

    VLAN 可以跨汇聚层交换机,服务器部署灵活

    接入交换机的密度小

    表2. 四种拓扑连接方式的对比

    由表2可以看出,三角形组网提供了更高的接入可用性以及更灵活的服务器扩展能力,所以常见推荐的组网采用第4种拓扑方式。

    需要指出,接入交换机直接双上行与汇聚层设备相连,冗余连接并不是越多越好,而最小的三角形环能够提供最快的收敛速度和最高的可用性。例如图5中右侧图组网拓扑在接入层交换机和汇聚层交换机之间采用全交叉冗余,是一种过度冗余组网,反而增加交换机的生成树计算的复杂性以及故障排错的复杂性,所以不建议按这种方式部署。

    图5 接入层推荐组网方式

    3. 路由层面

    传统数据中心汇聚层到核心层间采用OSPF等动态路由协议进行路由层面高可用保障。常见连接方式一般分为以下2种(见图6):

    图6 路由高可用拓扑比较

    两种组网拓扑实际部署中可根据需求而定,第一种"倒三角"式组网适合对网络延迟较敏感,故障收敛速度要求较高的场景,缺点是网络的复杂度与维护难度较高;第二种"口字形"结构适用于冗余收敛要求较低场景,组网简单易于维护,缺点是故障收敛较慢。与接入层组网类似,这里不推荐使用全连接方式过度冗余,同样会导致组网设计的复杂度并增加排障难度。

    4. IRF高可用架构

    图7 IRF架构与传统架构比较

    传统架构服务器群网络拓扑与IRF架构服务器群网络拓扑相比(如图7所示),对于接入层而言,传统架构为保证网络高可用性通常采用服务器双网卡接入+MSTP+VRRP,服务器通过双网卡接入到两台交换机上,两台接入交换机采用双归属三角形拓扑接入到汇聚交换机,接入交换机与汇聚交换机之间需要运行MSTP协议,管理和维护比较复杂。但当接入交换机和汇聚交换机都采用IRF架构之后,可将每两台交换机(也可以是多台)配置成一个IRF堆叠组,两台汇聚交换机也配置成一个堆叠组,接入交换机与汇聚交换机之间通过捆绑链路连接。从逻辑上看,一个堆叠组就是一台设备,因此接入交换机和汇聚交换机间不存在二层环路,可以避免MSTP的配置管理,简化网络设计。

    对于服务器的高可用接入方式,在IRF架构下,基本原则是服务器的双网卡接在不同交换机上,从而实现高可用性接入。

    对于汇聚层交换机来说,设计方式与接入IRF是一致的,进行汇聚层交换机堆叠后,将两层交换机用多条链路进行捆绑连接,一般原则建议为偶数链路数,有利于将数据流量均衡到各链路。

    图8给出了IRF二层接入设计下的HA考虑。基于虚拟化网络交换结构,服务器流量经过网络接入与汇聚层的路径十分清晰,简化为单条逻辑链路转发。对于情况B,当接入IRF架构的其中一台交换机出现故障,服务器网卡进行切换,通过另一台交换机即可恢复网络通信,而汇聚层设备无需任何变化,数据流仍从同一聚合链路进入网络。对情况C,汇聚层设备出现单台故障,服务器不感知,只由接入交换机将流量转发到聚合链路,汇聚层存活的交换机感知的仍是从现有聚合链路接收数据流。对于情况D,发生捆绑链路故障,交换机会将数据流转发到捆绑组存活链路上,对于IRF交换机组来说,数据流转的逻辑接口并未改变。

    图8 IRF接入层故障切换

    IRF对外体现为一个整体交换系统,也存在由于意外原因导致IRF分裂的可能。RF分裂后,形成两个或多个相同的逻辑设备:地址相同、配置相同,需要进行检测和进一步处理以消除对网络的影响。

    IRF系统作为逻辑单台设备,对外具有唯一的桥MAC(和三层MAC),IRF建立时,Master设备桥MAC同步到其它成员设备,分裂后,对于非Master所在系统,IRF中其它设备维持该桥MAC不变并选举新的Master,此机制可避免当原Master故障时网络中的邻居设备重新学习MAC。但IRF也有比较灵活的桥MAC处理方式以便于组网变通,目前一共提供了三种用户可以配置IRF系统MAC变化的方式:

      Master离开后,桥MAC立即变化

      保留6min变化

      始终不变

    IRF系统分裂后,会在网络中形成两组或多组"完全相同"的设备组,均有相同配置的Active Master,IRF附加了检测和冲突处理,称为多Active检测(Multi-Active Detection,简称MAD)。

    图9 IRF分裂检测方式

    检测:通过LACP(Link Aggregation Control Protocol,链路聚合控制协议)或者BFD(Bidirectional Forwarding Detection,双向转发检测)协议来检测网络中是否存在多个从同一个IRF系统分裂出去的全局配置相同的IRF(如图9所示)。

    LACP方式下,H3C进行了扩展开发,在LACP协议报文中增加IRF Master ID ,当系统分裂后,分裂后的IRF系统有各自的Active Master ID,可通过LACP进行传递检测。

    BFD方式下,也通过在BFD中扩展Master ID来检测冲突。

    冲突处理:IRF分裂后,系统会检测到网络中存在多个处于Active状态相同的IRF。此时Master成员编号最小且处于Active状态的IRF系统会继续正常工作;Master成员编号较大且处于Active状态的IRF系统会迁移到Recovery状态,关闭该系统所有成员设备上除保留端口以外的其他全部物理端口。

    故障恢复:IRF系统通过日志提示用户修复IRF互联链路,链路修复后,冲突的设备重新启动恢复IRF系统,被Down掉的端口将重新恢复业务转发。

    四、 结束语

    对数据中心而言,高可用性永远是必不可少的重要需求。数据中心的核心是业务数据,网络作为承载层需要保证运行于其上的数据的安全性与可用性,尤其是在网络节点链路发生故障情况下要确保业务可用与数据零丢失。从传统的环路冗余到现在的IRF堆叠,数据中心网络高可用技术将会不断优化进步,更好的满足高速发展的数据中心业务应用需求。



    展开全文
  • 在具备完善的理论知识后,本书又从实战角度讲解了如何对OpenStack的基础架构软件和核心组件项目进行高可用集群部署,并在成功部署OpenStack高可用集群后,介绍了如何在实际应用中对OpenStack高可用集群进行运维分析...
  • 【编者按】本文从OpenStack架构入手,剖析了IaaS的云平台最核心的主要是这三部分:计算、网络、存储,作者指出OpenStack这样一个复杂系统,高可用更涉及到多个层面,只要有一个层面做不到高可用,那么整个OpenStack...
  • 本文来自于csdn,本文主要讨论了高可用的概念和实践,希望大家对互联网架构高可用有个系统的认识。高可用HA(HighAvailability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供...
  • 部分架构为综述。第 2-8 部分各个端用到的技术,点到为止,没有详述。第 9 和 10 部分是监控和部署,排查问题和解决问题时配合使用。      一:服务器总体架构综述   经历的阶段: 1 :应用服务和...

             其中第1部分架构为综述。第2-8部分各个端用到的技术,点到为止,没有详述。第910部分是监控和部署,排查问题和解决问题时配合使用。

                           

         一:服务器总体架构综述

     

    经历的阶段:

    1:应用服务和数据服务,应用专门的图片服务器,视频服务器。

    2:缓存改善网站性能,redis,memcached缓存。

    3:应用服务器集群改善网站的并发处理能力,这个时候就应该读写分离或双主读写分离。

    4:使用反向代理和 CDN加速网站

    5:分布式数据库系统,数据库分表分区阶段

    6NoSQL服务器,减轻应用程序管理诸多数据源的麻烦。

    7:业务拆分,将一个网站拆分成许多不同的应用,每个应用独立部署。

     

       经历上面七个阶段后,大体服务器架构如下图:

                               



    二:数据库技术

    应用服务和数据服务分离;

    数据库读写分离

    分布式数据库系统
    分库分表

    数据库索引

    数据库连接池
    SQL
    优化

    数据库相关设置


    三:缓存技术

    使用缓存改善网站性能;

    提高缓存命中率;

    redis集群相关设置

     

    四:后端技术

    重定向

    使用反向代理

    DNS轮询,不能按服务器能力分配任务
    CDN,
    而且按流量计费,价格也比较昂贵。
    IP
    负载均衡:F5VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)

    镜像(同学所在的教育行业在用)

                       五:业务拆分

    将一个网站拆分成许多不同的应用,每个应用独立部署。应用之间可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系

    六:前端

    页面静态化
    前端缓存
    IOS
    ,安卓自身数据库使用

    IOS,安卓自身文件使用

    八:其他

    替换ApacheNginx
    队列系统就出场了,就以RabbitMQ为例时

    mysql硬件设置

     

    九:监控软件

    najios  监控服务运行状态和网络信息;
    zabbix
    监控服务运行状态和网络信息;
    cactic
    把机器信息和数据信息图表化地展现给用户。

    十:部署软件

    saltstack
    chef

    puppet
    ansibel


    展开全文
  • 云上搭建性能和高可用架构

    千次阅读 2018-04-03 14:53:36
    云上搭建性能和高可用架构2017-12-20转载请注明出处!本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900本文转载至 Prof.Wang站点...

    云上搭建高性能和高可用的架构

    转载请注明出处!

    本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900
    本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900
    本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900

    云上架构的概述

    在云上搭建架构的时候,需要从以下五点来进行考虑:

    Alt text

    • 弹性:架构能够根据系统的需求进行弹性的伸缩;
    • 可用:要能够保证系统运行的连续性,避免出现业务中断的情况;
    • 性能:要确保系统能够高效、快速地响应用户的请求;
    • 安全:能够保证云上系统的安全,以防止被黑客攻击;
    • 可管理性:搭建的架构能够便于后续的管理,节省管理的时间和成本;

    传统架构和云上架构的设计方法是有明显不同,主要包括:

    Alt text

    • 传统架构:解决有、无的问题,相对厚重,不连续
    • 云上架构:解决多、快、好、省的问题,相对轻便,平滑

    云上的高性能架构

    性能是非功能需求,描述了系统传递服务的实时性:

    • 狭义的性能指运行速度的快慢;
    • 广义的性能涉及很多内容,如功耗、利用率、性能价格比、速度等;

    不同视角看到的性能也是不同的:

    Alt text

    高性能架构设计的基本步骤是:性能目标->分析问题->解决问题->性能评估

    Alt text

    1.性能目标:制定性能的目标

    Alt text

    2.分析问题:分析系统中有哪些问题会影响性能目标的实现

    Alt text

    3.解决问题:从硬件和架构两个层次解决影响性能目标的问题

    Alt text

    4.性能评估:通过测试工具或者服务验证是否满足性能目标

    Alt text

    某客户在阿里云上的高性能架构如下所示:

    Alt text

    架构解读:

    • 使用CDN加速用户的访问,解决网络延迟的问题
    • 对热点数据进行缓存,加快数据的访问速度,并减轻数据库的压力
    • 通过DRDS实现数据库的水平扩容,提升数据访问的并发量

    云上的高可用架构

    高可用是为了减少停工时间,保持服务高度可用性;为了实现高可用,系统应该具备的能力有:自动侦测、自动切换和自动恢复。

    Alt text

    • 自动侦测:通过冗余侦测发现运行的情况,将所汇集的讯息记录下来,以供维护参考。
    • 自动切换:确认对方故障,则正常主机代替故障主机工作。
    • 自动恢复:故障主机修复后,自动切换回修复完成的主机上

    层次化和模块化设计是高可用设计的前提:

    Alt text

    高可用设计包括三种不同的方式,分别是:主从方式、双机互备和集群工作方式。

    Alt text

    高可用架构设计的主要原则包括:

    1. 假定失效设计:假定任何环节都会出问题,然后倒推设计;
    2. 多可用区设计:尽最大可能避免架构中的单点故障;
    3. 自动扩展设计:不进行设计调整,就能满足业务量增长;
    4. 自我修复设计:内建容错及检查能力,应用能够在部分组件失效时自我修复继续工作;
    5. 松耦合设计:耦合度越小,扩展性越好,容错能力越强

    多可用区设计:

    Alt text

    • 在SLB实例下绑定不同可用区的ECS,从而避免因为单个可用区的故障而导致对外服务的不可用
    • 多可用区的云服务器RDS可以实现同城的数据灾备
    • OSS存储的数据默认会保存在多个不同可用区中

    健康检查自我修复:

    Alt text

    • 某台ECS实例不健康,导致健康总实例数低于最小值,弹性伸缩(原ESS)会自动创建健康的ECS实例代替不健康的实例

    松耦合设计:

    Alt text

    • 耦合度与灵活性相反,耦合度越小,扩展性越好,容错能力越大
    • 消息解耦将原应用拆分独立的模块,模块间影响小,不会因为部分失效导致整体的不可用

    某客户在阿里云上的高可用架构:

    Alt text

    架构解读:

    • 在阿里云两个不同地域的三个可用区中部署业务系统,实现云端的两地三中心架构
    • 通过集群的方式提升系统的可用性:SLB本身是主备的架构、SLB后面挂载多个ECS实例等
    • 业务和应用系统分开部署实现系统的解耦
    • 通过数据同步的方式将数据备份到异地的存储服务中,提升数据的可靠性

    本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900

    本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900

    本文转载至 Prof.Wang站点 https://solution.cloudcare.cn/?p=900

    如有版权问题,请给博主留言,博主将第一时间解决。

    展开全文
  • 云端高可用应用架构

    千次阅读 2018-09-26 09:28:44
    之前的几篇文章介绍了高可用应用,以及说明了高可用架构是云端应用的重要特点。今天的文章介绍一些高可用应用架构框架,大家可以从中作为云端应用设计方面的借鉴。   我将通过一个web应用的架构设计来说明这些...
  • 说说如何实现高可用的网站架构

    千次阅读 2017-10-20 16:47:25
    1 可用性的度量与考核1.1 可用性度量网站不可用时间(故障时间) = 故障修复时间点 - 故障发现(报告)时间点网站年度可用性指标 = (1 - 网站不可用时间/年度总时间 ) * 100%业界通常用多个 9 来衡量网站的可用性...
  • 高可用分布式系统架构

    千次阅读 2019-09-18 16:23:32
    最近画了张分布式系统架构图,请教下各位小伙伴,不足之处还望指出来。
  • 本文来自于网络,文章详细介绍了支付宝架构的发展历程,以及如何使支付宝系统架构具有很强的高可用性和容灾能力等。企业服务、云计算、移动互联网领域中,高可用的分布式技术为支撑平台正常运作提供着关键性的技术...
  • 文件中为百度云地址+密码 亿级流量电商详情页系统的大型并发与高可用缓存架构实战-未加密
  • 高可用的系统架构

    千次阅读 2018-04-11 17:05:41
    一、什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每...
  • 本文来自于博客园,本文重点讨论...在不考虑外部依赖系统突发故障,如网络问题、三方支付和银行的大面积不可用等情况下,付钱拉的服务能力可达99.999%。本文重点讨论如何提高应用自身的可用性。为了提高应用的可用
  • 软件架构中的高可用设计

    千次阅读 2019-06-07 13:34:48
    昨天写了一篇关于集中式配置中心的博客(杨波架构师的课程笔记),提到了apollo组件的高可用性,因此找到了这篇非常好的博客,收藏保存,同时分享给大家 原文作者: 施智沂 博客地址: 高可用 一、什么是高可用 高可用HA...
  • 高可用架构详解

    千次阅读 2017-01-17 17:09:38
    一、什么是高可用 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如果...
  • 在本文,我向大家介绍如何构建一个并发高可用的电商平台。 一、 设计理念 1. 空间换时间 1)多级缓存,静态化  前端页面缓存(HTTP Header中包含Expires/Cache of Control,Last Modified(304...
  • DRBD(DistributedReplicatedBlockDevice)是一个基于块设备级别在远程服务器直接同步和镜像数据的开源软件,类似于RAID1数据镜像,通常配合keepalived、heartbeat等HA软件来实现高可用性。 DRBD是一种块设备,可以被...
  • 在具备完善的理论知识后,本书又从实战角度讲解了如何对OpenStack的基础架构软件和核心组件项目进行高可用集群部署,并在成功部署OpenStack高可用集群后,介绍了如何在实际应用中对OpenStack高可用集群进行运维分析...
  • 数据中心高可用网络系统设计; 高可用数据中心网络设计思路; 数据中心网络架构高可用设计; 层次化设计; 设备层高可用设计; 链路层(L2)可用设计; 协议层(L3)可用设计; 应用层(L4~L7)可用设计; 此方案对安全性...
  • 『大型网站技术架构』(三):高可用架构 一、可用性度量与考核 度量 衡量方式:多少个9。 网站不可用时间(故障时间) = 故障修复时间点 - 故障发现(报告)时间点 网站年度可用性指标 = (1-网站不可用...
  • 以前我在学习阅读总结(系统架构师)文章中推荐过涛哥的《亿级流量-并发高可用架构实战》这本书,如果缺少这方面的相关知识,你可以去读一读这本书,系统性学习一下,同时,我也相信这篇文章能帮你梳理一下整体的...
  • 高可用基本架构

    千次阅读 2019-02-11 22:45:06
    一、什么是高可用集群 高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的...
  • 高可用架构高可用的应用和服务

    万次阅读 2017-10-28 11:28:27
    高可用的网站架构需要网站应用每个层面的支持,本文着重介绍应用层和服务层的高可用的解决方案。 1、高可用的应用 应用层主要处理网站应用的业务逻辑,因此有时也被称作业务逻辑层,应用的一个显著特点是应用的...
  • 1、高可用性:将停止服务时间降低到最低甚至是不间断服务2、可扩展性:随着访问的增加,系统具备良好的伸缩能力3、可视性:系统、服务的状态处于一个实时的监控之下4、性能可靠性:经过优化的体系结构及合理的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 510,053
精华内容 204,021
关键字:

高可用网络架构