这篇继上篇架构设计之六个复杂度来源 没有讲完的剩下的三个内容低成本、安全、规模等。html
1、低成本git
当咱们的架构方案只涉及几台或者十几台服务器时,通常状况下成本并非咱们重点关注的目标,但若是架构方案设计几百甚至上千上万台服务器,成本就会变成一个很是重要的架构设计考虑点。例如,A方案须要10000台机器,B方案只须要8000台机器,但从比例上看,就节省了20%的成本。web
关于低成本,还有就是联系我实际开发,对于一些OA方面的开发,目前的码云上有很多示例可用作参考,甚至拿来即用,固然了,有一点不可忽略的是,Java的Web方面开源的程度和功能的强大并无Python的Djaogo来的爽快。数据库
OA开源项目地址:https://gitee.com/aaluoxiang/oa_system安全
运行效果,以下图所示:服务器
能够说,基本上知足了OA经常使用功能,固然对于其余方面的个性化功能,可能须要在此基础上扩展开发。不过,你要知道这个模板已经为你省了不少事情。正常来讲,开发这个OA项目,要达到这种规模,以三我的来讲,可能须要两个月到三个月左右。网络
固然了,现成的解决方案也有其必定的局限性:架构
好比现成的解决方案中可能包含你以前还没有接触过的新技术,熟悉这个新技术你可能须要一段时间。性能
2、安全网站
安全自己是一个庞大而又复杂的技术领域,而且一旦出问题,对业务和企业形象影响很是大。
例如:
2013年10月,为全国4500多家酒店提供网络服务的浙江惠达驿站网络有限公司,因安全漏洞问题,致2千万条入住酒店的客户信息泄露,为此致使不少敲诈、家庭破裂的后续事件。
正由于常常可以看到或者听到各种安全事件,因此大部分技术人员和架构师,对安全这部分会多一些了解和考虑。
从技术的角度来说,安全能够分为两类:
一类是功能上的安全;
另外一类是架构上的安全。
1.功能上的安全
例如:常见的XSS攻击、CSRF攻击、SQL注入、Windows漏洞、密码破解等,本质上是由于系统实现有漏洞,黑客有了可乘之机。黑客会利用各类漏洞潜入系统,这种行为就像小偷同样,黑客和小偷的手法都是利用系统或家中不完善的地方潜入,并进行破坏或者盗取。所以,形象地说:功能安全其实就是“防小偷”。
XSS攻击是什么?
XSS是一种常常出如今web应用中的计算机安全漏洞,它容许恶意web用户将代码植入到提供给其它用户使用的页面中。好比这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞因为被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。
CSRF攻击是什么?
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,一般缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS很是不一样,XSS利用站点内的信任用户,而CSRF则经过假装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击每每不大流行(所以对其进行防范的资源也至关稀少)和难以防范,因此被认为比XSS更具危险性。
SQL注入是什么?
所谓SQL注入,就是经过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来讲,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它能够经过在Web表单中输入(恶意)SQL语句获得一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。 [1] 好比先前的不少影视网站泄露VIP会员密码大多就是经过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。
关于Window漏洞和密码破解,Window漏洞太多了,就很少说了,密码破解,好比对QQ密码破解或者是其余游戏或者社交网站帐号破解等。一般对此的解决方案是,从用户的角度是少点击一些无关的连接,这样能够在必定程度上减小被破解的机会;从企业的角度上看,提升系统安全系数,提升核心安全方面的技术。
2.架构安全
若是说“功能安全”是为了防小偷,那么架构安全就是为了防强盗。
强盗会直接用大锤将门砸开抢东西顺便加搞破坏,而小偷是偷东西也会搞破坏。通常状况,强盗相对于小偷,危害更大。
所以架构设计时须要特别关注架构安全,尤为是互联网时代,理论上来讲,系统部署在互联网上时,全球任何地方均可以发起攻击。
传统的架构安全主要依靠防火墙,防火墙最基本的功能就是隔离网络,经过将网络划分红不一样的区域,制定出不一样区域之间的访问控制策略来控制不一样信任程度区域间传送的数据流。
3、规模
不少企业级的系统,既没有高性能要求,也没有双中心高可用要求,也不须要什么扩展性,但每每咱们一说到这样的系统,不少人都会脱口而出:这个系统好复杂。为何这么说呢?关键就在于这样的系统每每功能特别多,逻辑分支特别多。特别是有的系统,发展实际比较长,不断地往上面叠加功能,后来的人因为不熟悉整个发展历史,可能连不少功能的应用场景都不熟悉,或者细节根本没法掌握,面对的就是一个黑盒系统,看不懂、改不动、不敢改、修不了,复杂度天然就感受很高了。
规模带来的复杂度主要缘由在于“量变引发质变”,当数量超过必定阈值后,复杂度会发生质的变化。常见的规模带来的复杂度有:
1.功能愈来愈多,致使系统的复杂度指数愈来愈高;
2.数据愈来愈多,系统的复杂度发生质变;
问:结合你所在的业务,分析一下注意的复杂度是这其中的哪些部分?是否还有其余复杂度缘由?
个人回答是:就目前而言,注意是功能愈来愈多,致使复杂度指数上升。
小结:
本篇是上一篇文章的续,上篇文章主要讲了高可用、高性能、可扩展性等三个方面。本篇主要是围绕低成本、安全、规模等方面。
其实仔细想来,不论是高可用、高性能、可扩展性,仍是低成本、安全、规模等。关键仍是取决于业务。