当我们的架构方案只涉及几台或者十几台服务器时,一般情况下成本并不是我们重点关注的目标,但如果架构方案设计几百甚至上千上万台服务器,成本就会变成一个非常重要的架构设计考虑点。例如,A方案需要10000台机器,B方案只需要8000台机器,但从比例上看,就节省了20%的成本。
关于低成本,还有就是联系我实际开发,对于一些OA方面的开发,目前的码云上有不少示例可用做参考,甚至拿来即用,当然了,有一点不可忽略的是,Java的Web方面开源的程度和功能的强大并没有Python的Djaogo来的爽快。
OA开源项目地址:https://gitee.com/aaluoxiang/oa_system
运行效果,如下图所示:
可以说,基本上满足了OA常用功能,当然对于其他方面的个性化功能,可能需要在此基础上扩展开发。不过,你要知道这个模板已经为你省了很多事情。正常来说,开发这个OA项目,要达到这种规模,以三个人来说,可能需要两个月到三个月左右。
当然了,现成的解决方案也有其一定的局限性:
比如现成的解决方案中可能包含你之前尚未接触过的新技术,熟悉这个新技术你可能需要一段时间。
二、安全
安全本身是一个庞大而又复杂的技术领域,并且一旦出问题,对业务和企业形象影响非常大。
例如:
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.架构安全
如果说“功能安全”是为了防小偷,那么架构安全就是为了防强盗。
强盗会直接用大锤将门砸开抢东西顺便加搞破坏,而小偷是偷东西也会搞破坏。一般情况,强盗相对于小偷,危害更大。
因此架构设计时需要特别关注架构安全,尤其是互联网时代,理论上来说,系统部署在互联网上时,全球任何地方都可以发起攻击。