河北省重大****征集系统的可用性可修改性战术分析
河北省重大****征集系统的可用性可修改性战术分析
我完成的系统仅仅能在没有破坏性输入的情况下使用,完全不具有可用性,可修改性。是一个失败的作品。对此我也会深度解析我的失败,接下来引以为戒。
河北省重大****征集系统作为一个线上网站最大的价值就是可用性,而网站可用性度量业界通常用多少个9来衡量网站的可用性,如qq的可用性为99.99%,也就是一年最多有53分钟不可用,为了更高的可用性除了需要过硬的技术,大量的设备资金投入,工程师的责任心还要有个好运气。我做的河北省重大****征集系统仅仅能完成基本的操作,没有合适的安全保证。
可用性指标是网站架构设计的重要指标,对外是服务承诺,对内为考核指标,使用故障分计算 不同公司的企业文焕和市场策略,也会影响到系统的可用性架构决策,崇尚创新和风险的企业对可用性要求稍低,不同的企业对网站的要求不同不能一概而论。我们的河北省重大****征集系统对可用性要求很高,需要网站能够稳定运行,不能宕机过长时间
一个高可用的网站架构是能保证在服务器硬件故障的时候依然可以用,数据依然保存并能够被访问,实现高可用架构的主要受手段是数据和服务的冗余备份以及失效转移,一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏则从备份的磁盘读取数据。而我完成的河北省重大****征集系统没有建立有效的数据安全备份,只能依靠数据库的数据保存备份。
一个典型的网站设计通常先分为应用层 服务层和数据层。每层之间具有相对独立性,应用层主要负责具体业务逻辑处理,服务层负责提供氪服用的服务,数据层负责数据的存储和访问。小型网站可以将应用层和服务层部署在一起,数据层单独部署,但在大型网站中每一个功能都对被划分成粒度更小的更详细的结构更复杂的模块分别部署在不同的服务器群钟,以满足对大量数据的同时访问。由于我们的网站是个人开发,没有更多的访问量,就没有做更加细分的处理,仅仅完成了3层的分层。
高可用的应用对无状态的服务的失效转移,对应用服务器群的session管理,高可用的服务 分级管理 超时管理 异步调用 服务降级 幂等性设计,高可用的数据 利用缓存服务群经选哪个部署。我们的项目完全依靠浏览器的cookie,没有用其他的无状态服务管理。
Cap原理 数据一致性 数据可访问性 一个提供数据服务的存储系统无法同时满足数据一致性 数据可用性 分区耐受性 这三个条件 网站通常会综合成本 技术业务场景的条件结合应用服务的数据监控与纠错的功能使存储系统达到用户一致性 保证最终用户访问的数据正确性,数据。
数据备份 异步热备方式 同步热备方式。
失效转移 失效确认 访问转移 数据恢复 。
高可用的网站的软件质量保证 先要自动化测试 预发布测试还要 进行代码控制 自动化发布 灰度发布 。
网站运行监控 监控数据采集 服务器性能监控 运行数据报告 。
监控管理 系统报警 失效转移 自动优雅降级 。
由于我们的能力有限,这些可靠性保证全部没有完成。但是这些都是工程上线可靠性运行的保证。
网站的伸缩性 网站的伸缩性设计就是不断地向网站添加服务器以保证网站的平稳高效的运行,先要根据不同服务器部署不同的服务 提供不同的功能 再者就是在使用集群部署相同服务提供相同服务的服务器。,扩大网站规模就需要从不同的方面对网站进行分割,先对不同的功能进行物理分割实现伸缩 然后同队分割业务进行分割部署实现系统的伸缩。网站的可扩展架构,网站的扩展性符合系统架构设计层面的开闭原则,架构设计考虑未来功能的扩展,当系统增加新功能时不需要对现有系统的结构和代码进行修改。
伸缩性 构建可扩展阿德网站架构 开发低耦合的系统是软件设计的终极目标之一
方法 利用分布式消息队列降低系统耦合性
事件驱动架构 分布式消息队列 利用分布式服务打造可服用的业务平台
大型网站分布式服务的需求和特点 负载均衡 失效转移 高效的远程通信 整合异构系统
对应用最少的侵入 高效的版本管理 实时监控
分布式服务框架设计 可扩展的
我们的系统对开闭原则无法完全支持,我们设计的河北省重大****征集系统完全没有相应的能力,每个业务和功能是混合在一起的,不具备扩充的能力。