11.1 网站架构设计5大纬度

前所未有的访问负载 -- 瞬时响应,网站的高性能架构

用户量的增长对马老板来说就是大把的钞票,对业务来说就是提成,而对运维工程师来说就是访问微信业务的负载,这个不难理解
    但是,没有访问者真的能够忍受一个打开速度极慢的网站,网页打开速度对用户行为有极大影响
    许多研究表明,用户最满意的打开网页时间是在2秒以下,用户能够忍受的最长等待时间的中位数是6-8s之间,8s是一个临界值,如果你的网站打开超过8s,那么很大可能,大部分访问者最终都会离你而去,转向竞争对手的怀抱。凡事都有例外,12306就是
    此外,研究表示,如果等待12s以上,网页还没有载入,那么99%以上的用户会关闭这个网页,不在等待,但是如果在等待载入期间,网站能够像用户显示反馈消息,比如一个进度条,那么用户可以忍受的时间会延长38s,有人认为在windows上最重要的发明就是那个进度条,由此可见,在这个日益浮躁的社会,及时反馈能多么的重要。
    另外从客户主观感觉上,访问者倾向于任务,打开速度较快的网站质量更到,更可信,也跟个有趣。
    说到这个有趣,我想起一个典故,“好看的皮囊千篇一律,有趣的灵魂二百多斤(万里挑一)”
        相反网页打开速度越慢,访问就会对网站的可信性和质量产生怀疑,这对于电子商务和支付行业尤为重要
        Google做过一个试验,显示10条搜索结果的页面载入需要0.4秒,显示30条搜索结果的页面载入需要0.9秒,结果后者使得Google总的流量和收入减少了20%。

系统如何扩展来满足不断增长的性能需求 -- 永无止境,网站的可伸缩架构

2009年,天猫商城双十一销售额为0.5亿元;
      2010年,数字提高到9.36亿元;
      2011年,天猫双十一的销售额已跃升到33.6亿元;
      2012年,“双十一”当日支付宝交易额实现飞速增长,达到191亿元,其中包括天猫商城132亿元,淘宝59亿元。订单数达到1.058亿笔。
      2013年,淘宝“双十一”交易额突破1亿只用了55秒,达到10亿用了6分7秒;50亿用了38分钟, 最终交易额352亿元
                 2016年, 全天总交易额达到1207亿元,交易峰值达到了每秒17.5万笔
            2017 1682亿
            那么淘宝是怎么做到
             2012年11月11日凌晨0点后第一分钟,超过1000万独立用户涌入天猫
        
        所谓网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力
        这个主要是为了解决访问负载的,毕竟1000用户在线的系统架构无法满足1500人同时在线一样,肯定是要扩展系统的,但是要如何扩展呢

系统如何保持7×24的可用性 -- 万无一失,网站的高可用架构

为什么需要可用性呢,为什么需要7×24呢,有人的地方就有江湖,有江湖的地方就有打架斗殴,那打伤了是不是得去医院,那医院是不是得7×24,这是生理要求的7×24;那心里呢,晚上睡不着你们会干嘛,刷朋友圈,如果朋友圈只开放8小时上班时间,大家会崩溃么,类似的行业还有银行等等,是不是还有一些夜间开放的网站。。。为什么,因为时差啊,你睡觉,别人在工作啊。
       可用性就是24小时业务可以使用,曾经GOPS(全球运维大会)组织就在运维中投票运维节日,最后毫无悬念7月24号中枪,可见7×24已经成了互联网业务的核心基因,在计算可用性上已经有专门的计算公式

更高的安全性 -- 固若金汤,网站的安全架构

随着网络安全法的发布,足以说明互联网的重要程度,用户数据和隐私已经成为更多人关注的焦点,比如2013年6月,美国前中情局(CIA)职员斯诺登揭秘的棱镜门,大意是,美国国家安全局有一项代号为"棱镜"的秘密项目,要求电信巨头威瑞森公司必须每天上交数百万用户的通话记录,过去6年间,美国国家安全局和联邦调查局通过进入微软、谷歌、苹果、雅虎等九大网络巨头的服务器,监控美国公民的电子邮件、聊天记录、视频及照片等秘密资料。美国舆论随之哗然。
    在网上公开的专访中, 斯诺登:你什么错都没有,但你却可能成为被怀疑的对象,也许只是因为一次拨错了的电话。他们就可以用这个项目仔细调查你过去的所有决定,审查所有跟你交谈过的朋友。一旦你连上网络,就能验证你的机器。无论采用什么样的措施,你都不可能安全。
    2016年被国外评为全球最具价值品牌百强榜第三名的facebook今日爆出泄密丑闻,其提供给开发者的用户信息被用于左右美国大选,其实这也给我们敲响了警钟,免费的东西其实更贵,
互联网越来越多的免费,其背后用户信息安全,用户行为泄漏,误导用户等问题已经逐渐浮出水面,
    另外还有很多威胁安全的攻击,比如XSS攻击,注入攻击,CSRF攻击,其它攻击和漏洞,DDOS攻击,信息窃取攻击等。

     总结:这个世界没有绝对的安全,正如没有绝对的自由一样,网站的相对安全性是提高攻击门槛达到的(比特币的防篡改也是通过改变51%账本这种提高篡改门槛大达到的),让攻击者为了获得优先的利益必须付出更大的代价,致使其得不偿失,望而却步
同时,攻击与防护技术作为一对矛盾共同体,彼此不断此消彼长,今天的高枕无忧,明天可能就成了知名的漏洞
* 5月9号,腾讯的聊天系统故障
* 所以很遗憾,这个时间没有固若金汤的网站安全架构

随需应变,网站的可扩展架构

    现在是一个快的社会,天下武功,为快不破,
       2017年10 月 30 号那一天, 在游戏界没有什么名气的一家公司, 小米公司, 发布了一款游戏--叫小米枪战。,这款游戏的类型, 现在我们都知道了, 叫吃鸡游戏, 简单说就是一百个人, 参加一场生存竞争淘汰戏, 最后只剩下一个人能够活下来, 就是这么一种枪战游戏。这不是最重要的, 最重要的是两天后, 网易公司, 就是号称去养猪的丁磊那家公司,居然发布了两套同等类型的吃鸡游戏。
       不到一个星期之后, 腾讯宣布自己公司的吃鸡游戏, 马上上线
微信从发布到拥有1亿用户,仅仅用了一年时间,据说摇一摇这个功能是两个实习生一个星期开发完成上线的。
过去我们都知道, 互联网公司的作息是 996, 什么意思, 上午九点, 干到晚上九点,一周干六天, 这已经是很不人道了。但是据说腾讯的吃鸡游戏团队, 工作时间是 247。 一天干 24 小时, 一周干 7 天。 当然,人家是三班倒, 就这么快。
如此轻易地开发一个新产品,如此快速地就可以实现一个新功能,他们是如何做到的?为什么有的网站必须规定系统发布日,一到发布日就如临大敌,整个技术部加班通宵达旦,而有的网站那就可以临时发布,  新功能可以随时快速上线

     以上的这些都有赖于网站的扩展性架构设计,就是在对现有系统影响最小的情况下,系统功能可持续扩展及提升的能力,
     接下来,我们说下 扩展性和伸缩性两个概念       扩展性:(Extensibility)
           指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。表现在系统基础设施稳定不需要经常变更,应用之间较少依赖和耦合,对需要变更可以敏捷相应。它是系统架构设计层面的开闭原则(对扩展开放,对修改关闭),架构设计考虑未来功能扩展,当系统增加新功能时,不需要对现有系统的架构和代码进程修改
       伸缩性:(Scalability)
               指系统能够通过增加(减少)自身资源规模的方式增强(减少)自己计算处理事务的能力。如果这种增减是成比例的,就被称作线性伸缩性。在网站架构中,通常指利用集群的方式增加服务器数量,提高系统的整体事务吞吐能力。
            
    开发低耦合系统是软件设计的终极目标之一。

 

posted @ 2021-04-16 19:30  huakai201  阅读(112)  评论(0编辑  收藏  举报