可靠性、可用性和容灾设计这些活动都是围绕 “安全” 这个核心,而性能优化,提升响应性则是围绕 “效率”

 

  「我们一直这样做开发,时间做久了,便忘了当初的本意。」

  有关软件系统开发,我们谈些什么?
  我们谈过程,编码规范、开发流程、同行评审、结对编程、持续集成,从瀑布到敏捷再到极限编程。
  我们谈架构,企业级、J2EE、容器化、SOA(面向服务架构)、Microservices(微服务化)。
  我们谈规模,大容量、高并发、大数据。
  我们还谈可靠性、可用率、n个9、响应时间等等。。。
  这一切的核心是什么?

  先讲个电力行业的一个故事,电力的项目我没做过,对电厂的原理虽有所了解,但看见那些大规模的电站还是感觉挺复杂的。 故事是这样开始的:

  记得有个给我们上培训课的主讲老师是个须发皆白的老先生,进门后掏出一堆零件放在讲台上, 一盏酒精灯、一个小水壶、一个叶片、一个铜光闪闪的小电机、一盏小灯泡。 老先生往壶里倒了些水,点燃酒精灯,不一会儿水开了,从壶嘴里喷出了蒸汽,带动叶片旋转,然后小灯泡就亮了。

  他说:这就是电厂。
  他还说:如果烧的是煤炭,这就是燃煤电厂;如果烧的天然气,这就是燃气电厂;
  如果获得热能的方式是核裂变,这就是核电厂;如果带动叶片的能量来自水从高处流向低处,这就是水电厂。
  老先生说:你们或许会问 “那我们看到的电厂怎么这么复杂”,答案其实很简单, 电力项目需要复杂系统的目的,一是为了确保安全(Safety),二是为了提高效率(Efficiency)。

  安全和效率的平衡,是所有工程技术的核心。

  看完这个故事,我就感觉到所谓 “大道至简” 大概就是这样的。

  开发软件系统的根本在于满足需求,不能满足需求的系统本身是没有意义的。 就像一个再安全、有效率的电厂不能发电又有什么意义呢。 所以软件系统开发也就是围绕根本的基础上确保安全与提高效率。

  需求作为软件的根本差异很大,需求是多样,需求也是复杂的。 一个大型 ERP 系统,一个大型仓储系统,一个大型网站系统,到底谁更复杂,没有一个定量标准,甚至都不好定性分析。 所以前面我们谈软件系统开发那么多内容都是关于 “安全” 和 “效率” 这两个围绕根本的核心。

  所有软件开发的方法论,像瀑布、敏捷到极限编程围绕的是开发活动的效率问题,而编码规范、流程制定、同行评审等等则是有关开发的安全问题。 那么 SOA 化或进一步微服务化其实同时考虑到了安全与效率,服务化拆分有利于大规模开发团队的并行开发,提升了开发效率, 但上线部署复杂了降低了运维效率,但运维效率可以通过自动化来得到弥补,而开发则不可能自动化。

  同理,可靠性、可用性和容灾设计这些活动都是围绕 “安全” 这个核心,而性能优化,提升响应性则是围绕 “效率”。 有些关键的软件系统必须同时兼顾 “安全” 和 “效率”,例如用在飞机、汽车内用于控制起落、刹车、油门的软件系统, 不安全或无效率造成事故是会死人的,而另外一大部分软件系统因为不安全或无效率造成的事故则死的是钱。

  没有人去争论建设电厂到底是不是一门艺术,但肯定有人在争论软件开发(程序设计)到底是不是一门艺术, 但终究大部分的软件系统开发还是更偏向于工程技术。

 

http://kb.cnblogs.com/page/535278/

时间: 2017-07-07

可靠性、可用性和容灾设计这些活动都是围绕 “安全” 这个核心,而性能优化,提升响应性则是围绕 “效率”的相关文章

虚拟化实战:容灾设计之四VPLEX

VPLEX等存储设备的出现,可以实现双活数据中心,最大程度的有效利用运算和存储资源. 在"容灾设计之三Stretched Cluster"中我们介绍了Stretched Cluster的概念,EMC VPLEX是Stretched Cluster支持的存储设备之一.本文大概介绍EMC VPLEX和VMware Stretched Cluster的集成.当然VPLEX也可以独立使用. 一 VPLEX简介 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://w

虚拟化实战:容灾设计之一设计方法

在容灾设计中需要有个清晰的思路,能帮助我们既能考虑大局,又能照顾到细节.以商业需求为主导是必须的,而不是一上来就谈某个产品的具体功能.我总结了以下三个步骤: 一深入了解商业需求 上图列出了一些Business Parameters.摘自此文. 我们着重谈其中的的几个要素: RTO(recovery time objective):灾难发生后要求在该时间内能恢复应用. RPO(Recoverypoint objective):灾难发生后可以容忍数据的丢失的时间段. 理论上讲当然容灾方案支持RTO和

数据库"负载均衡,备份,异地容灾"设计

数据库"负载均衡,备份,异地容灾"设计 Author: DigoalPS - 纯属个人看法,仅供参考. 1. 数据对象按分类放到不同的SCHEMA  为了方便实施数据库层面的备份和容灾,必须将数据对象按内容进行逻辑分类设计.  例如:  (某下载系统)    1.tbl_app_info 表 - 存储应用信息,新应用部署时需要插入该表,应用下线时需要更新或删除该表的记录,用户下载时需要查询该表,还有等等一些其他操作;数据增长缓慢,数据量视应用数决定.    2.tbl_download

虚拟化实战:容灾设计之三Stretched Cluster

Stretched Cluster是一把双刃剑,会用的如行云流水,用不好反而受其限制. 传统的vSphere Cluster是指一个Cluster内的所有ESXi主机都在一个物理机房内.Stretched Cluster顾名思义是把Cluster的概念扩展到了不受物理位置的限制.主机可以是在同一个数据中心的不同物理机房,甚至可以分布在不同城市的数据中心.听上去很酷吧, 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Servers

虚拟化实战:容灾设计之二VR vs SRM

从本文开始,我们将介绍一系列的关于容灾的解决方案.先探讨应用的场景,然后再深入介绍技术架构. 情景一: 某小型公司的虚拟化环境中,在5台ESXi服务器上运行100台虚拟机.采用NFS存储.其中需要异地恢复的虚拟机10台.对于异地容灾RPO的要求是30分钟,RTO是1小时.已经使用vSphereStandard 许可.软件购买成本有限. 建议: 采用vSphere Replication (VR) VR对于已经使用vSphere essential 以上许可的用户是免费的. VR能够满足RPO30

表格存储如何实现跨区域的容灾

系列文章 表格存储如何实现高可靠和高可用表格存储如何实现跨区域的容灾 前言 上一篇文章介绍了表格存储如何实现高可靠和高可用,本文会介绍表格存储如何做跨区域的容灾.容灾跟高可用在概念上有一些交叉,但是场景和相关技术体系有很多不同,所以单独写一篇介绍容灾的文章.容灾是在集群本身的高可用基础上,再提供一层保障,防止罕见但却严重的故障发生,因此,读者可以先阅读上一篇高可用的文章,对表格存储如何保障高可靠和高可用有一个了解. 本文首先会介绍容灾的一些背景和相关场景,以及实现数据库容灾的两个重要能力,即数据

浅析单点故障以及云上高可用和容灾

引言 故障,不管它发生的概率有多低,终归还是会发生的.                                                                                     --墨菲定律 概念 单点故障 顾名思义,单个点发生的故障,扩展到云上的环境,指的就是单个节点发生的故障导致整个链路瘫痪.这里的节点可以是一台服务器,一个数据库,一台网络设备,乃至一个应用程序. 打个简单的比方,一个加工厂流水线只有甲乙丙丁四名员工,一个加工需求进来,需要甲乙丙

福岛灾难六年祭:容灾前线,警钟长鸣

3月11日是东日本地震海啸灾难6周年纪念日.在这次人类历史上罕见的浩劫中,福岛核电站事故造成的损失最为惨重.与前苏联的切尔诺贝利核电站事故相比,福岛的灾难最初是由地震和海啸的天灾引起,似乎不应该算作人为事故. 但是,静下心来仔细研究,发现这个事故发生得实在蹊跷: 日本作为一个世界上自然灾难发生最频繁的国家,地震与其说是一种灾难不如说是一种常见的自然现象.就算是这次地震的震级很强,作为世界上最大的核电站,难道没有应对的预案?还是说应对预案不起作用? 相比切尔诺贝利事故从开始到爆炸只有8分钟的时间,

和力记易促进容灾行业发展显女排精神

  里约奥运会已经闭幕一个星期了,然而中国女排姑娘们上演的酣畅淋漓的比赛依然让大家觉得意犹未尽.回味无穷.对战东道主的这场胜利让人振奋不已.泪流满面,更重新唤醒了国人的热血和对女排精神的深厚情感.女排精神从来都不只局限于体育界.在国外知名厂商云集的容灾备份领域,北京和力记易科技有限公司作为国产容灾备份厂商的领军企业,不断推动并促进国产容灾备份行业的发展,从最初的核心CDP持续数据保护技术外到现在的全平台全需求产品与服务体系,凭借女排精神般的拼搏书写了12年的坚守与创新. 与发达国家相比,我国各行