写点什么

架构师训练营 - 学习总结 第 4 周

用户头像
水边
关注
发布于: 2020 年 07 月 01 日

这一周的课程,主要讲了互联网项目的架构演进过程。



对于典型的互联网应用,面对的挑战大致有以下这些:

1、高并发用户访问,同时在线用户会有上亿,QPS都至少几十亿级别;

这么大的访问量,传统应用很难扛得住,记得我公司在之前参加过双12的活动,从当天的0点崩溃,直到晚上的0点还没有恢复,

因为系统重启,流量又冲击进来,系统根本反应不过来就崩了;



2、应用要提供高可用,7*24小时在线是常态;

一般传统型应用,就算正常运行,也经常要找一个半夜的时间点,停机维护,而互联网应用就会收到投诉;

更不要说机器硬件故障死机等情况导致不可用了;



3、海量数据和存储和检索;

记得以前在电信一个子公司,单表上千万数据,就很慢了,一次检索几十秒,甚至几小时都有,这种服务哪个用户愿意使用?



4、用户操作习惯的多样性、网络的复杂性;

传统行业一般硬件是固定的,客户的终端或网络情况也相对固定,出问题的概率较小;

而互联网,你无法限制用户使用什么样的设备,什么样的终端;

我之前碰到的问题,用户访问始终报错,后面远程到用户电脑上一看,发现是WinXP+IE8,……

因为用户说他们大部分都是这种机器和系统,不可能升级,而阿里云也明确回复:不支持IE8……

只好重新开发适配WinXP的终端来解决问题。



5、安全问题;

因为互联网的开放性,较大的网站都会被黑客攻击,

我之前所在的公司,业务量较小,后面被百度收购后,短短1,2个月,受到了以往上百倍的攻击,几乎每天都有漏洞上报……



6、需求迭代快;

互联网产品为了应对市场的变化,需要小步快跑,常常先出一个最小可用品推出市场,然后根据反馈频繁迭代和发布,一般1,2周都有一个发布,所以对团队的项目管理、发布管理要求很高,DevOps的要求也高的多。



互联网的技术也不是一蹴而就的,也是跟着时代慢慢演进而来的:

1、最早的产品,通常是纵向扩展;

比如升级更好的CPU、更大的内存、更快速的硬盘、更高速的网络适配器等等,但是:

a、这些硬件费用高,而且 费用与性能并不是线性的,可能花10倍的钱,也就提升1倍的性能;

b、有扩展瓶颈,比如内存插槽不足、单台机器无法无穷扩展;

当然,纵向扩展的优点是不需要修改任何代码,或做任何的架构重构;



2、后续出现的横向扩展,也是互联网的主流;

就是增加服务器,理论上可以无限扩展无穷台服务器;

缺点:传统应用是不支持横向扩展的,需要重新设计,重新开发,重新部署。



互联网常用的技术点,参看本周的作业:

https://xie.infoq.cn/article/f6c092a8dce04e025618ddc47



注:解决问题虽然重要,但是找到问题,并理解问题的本质才是最重要的。

发布于: 2020 年 07 月 01 日阅读数: 119
用户头像

水边

关注

还未添加个人签名 2019.04.14 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 - 学习总结 第 4 周