这本书是上次和淘宝技术十年一起买的,粗略的通读了一下,涵盖面还是挺广的,如同好评所说,读了这本书再也不用担心JD、TX、Ali的面试官了。整本书通过概述、架构和案例三个大的环节,由浅入深的带我们一窥大型网站之架构技术点,虽然没有切入过多的技术细节,对于有一些经验的开发人员,这本书还是很有参考意义。

其实说到网站的架构,通用一点无外乎就是书中所述的一些技术栈,可如何用好这些技术解决实实在在的问题,却是无法通用的,各个公司和团队的业务背景不一样,同样的技术或者场景会遇到的问题也不一样,网站也不再是传统意义上的一个浏览器页面,前端系统、后端系统、存储处理系统等等,你的一次鼠标点击会传递到地球某个机房去做数据分析,页面看到的数据可能经由后端系统多次的处理计算才能展现出来。

和通常所接触的企业应用相比,多数大型网站都是互联网行业的佼佼者,在数据容量、安全性、吞吐量、业务处理能力、可用性上都有很高的要求。要支撑到大型网站的业务发展,我觉得可以从两方面来看,一是如何更快的响应用户、二是如何更快的响应业务。

对于用户量庞大的大型网站,响应用户,提高用户的体验和满意度是一件很重要的事情,用户群体大必然会在物理上分布广泛,网络环境差异也很大。页面用着不习惯、页面响应慢、找不到想要的东西等一些问题都会导致用户流失,粘度高的用户慢慢就不来了,突然搞个活动,这些用户说不定突然间又一起来了,网站服务一下hold不住宕机了,以后就真真不来了。用户是互联网企业的核心,流失的用户其实就是流失的金钱..所以在架构层面,通过CDN、缓存、负载均衡、反向代理等等手段去整体解决用户响应的问题,通过一些页面技术细节比如静态化、本地缓存、读写分离等等来解决页面渲染的响应,另外还有一些用户行为分析手段去提高用户体验等。

另外一点就是更好的响应业务,大型网站从小到大,也是一个很漫长沧桑的过程,若干次的功能发布、迭代开发、上线下线、问题分析处理才能达到如此规模,在互联网企业的技术有一个很大的特点,其技术是为业务服务的,也是业务让技术体现了其价值,这个价值在于更快更好更稳定的去响应业务需求,随着网站一步步发展业务一点点扩展,技术和业务两方面都会承担逐步增大的用户量、逐步增加的新业务和老业务调整,例如面对爆发用户数量、爆发的订单数量,业务人员和技术人员都曾头痛,在技术环节随着网站业务量增大,系统越来越臃肿、代码量越堆越高、技术债越来越多,部分业务模块,一脚伸进去就拔不出来或者拔出萝卜带出泥..在这些阻碍中,技术响应业务的速度、质量就会越来越慢,系统也会越来越慢。通常情况下,一个好的软件系统我们可以通过最初良好的设计、优雅的代码和事后严谨的维护来让系统日日升辉,可互联网的发展,不容许我们在初期就能设计出一个能满足XX目标的中国好系统,所以互联网的技术团队一直像个蜜蜂,对系统不断迭代、对架构不断堆叠,参考淘宝的发展历程,我们可以看到很多其他公司的发展路径,从开始的小网站,慢慢开始分层分模块、在做拆分、在做服务…他们这么做的目的我觉得就是为了更快的响应业务,体现在IT系统上就是其稳定性、扩展性、维护性、伸缩性,虽然这些词汇听起来抽象,但实际上是可实施的,但做好却不易。

这两点是我一个看法,部分公司可能对用户和业务的比重不同,但要做互联网或者和互联网打交道,即时你是一个小小的快递公司或是网店,也得去关注用户和业务。

我比较赞同书里的一个观点,在互联网公司待一年可能胜过传统的的软件公司两年,这个遇到问题解决问题并带来成就感的过程是一件值得细细去回味的过程,如果现在叫我回忆曾经处理了什么问题,我可能都记不得了,翻看了本书最后的一些案例,却发现似曾相似。

最近在处理消息服务器的问题,一直以来都不太稳定,各种配置切换,问题依旧,动不动就挂了,更有时候是进程都不在了,让我一度郁闷,前段时间由两台物理机器迁移了到了两台虚拟机器,暂时稳定了下来,通过监控观察,在资源占用和消息处理上都好多了。

发表评论