一开始提到,现如今很多应用程序都是“数据密集型”,而非“计算密集型”。其实想想,对于我们普通群体来说,确实是这样的。就拿你自己手机上的大部分应用,社交,娱乐(游戏除外)类型基本都是“数据密集型”应用,而那些稍微专业点,涉及到图像处理,大型游戏等应用属于“计算密集型”了。因此,在可预见的时间内,我个人感觉数据密集型应用的使用频率和数量应该是更高的。
可靠性
-
硬件故障
断电,洪水,地震,磁盘损坏等等非人为可控的因素,都会对系统造成影响。大家会使用“容灾性”这个词来考量这个系统能够经受故障的容忍程度。比如数据中心设置在不同的地点,为了防止某个地点发生不可避免的自然灾害,增加数据的备份,来防止单节点故障对系统的影响。硬件故障发生的可能性虽然不是那么大,但是这个因素必须要考虑。
-
软件错误
是人多少都会犯错误,你或许会说只要经验足够,那么就可以减少去踩之前遇到的坑。你说的不错,但是业务需求是不断变更的,所以经常还是会遇到新的东西的。这个时候,编码过程细节就考虑不到位了,这个就得充分做好自检和程序上线之前做好测试工作。
-
人为错误
比如安装部署,参数配置,以及使用过程中,无法确定用户的输入,这些需要后台代码里面做好校验工作&