前几天报名了今天的校招实习生百阿百技培训。今早9点半在1号楼的白马山庄准时开始。主持人先闲扯了下,介绍一天的计划,上午是华黎带来的关于阿里技术发展历程以及个人经验的分享,下午还有两场讲座但与技术关联不大。由于师兄还给我布置了任务,我就参与了上午的讲座就回来了。在这里整理一下上午听到的笔记,可能比较零散,凑合着看。
从集中式应用到分布式应用
淘宝07年的负载是每天100万笔订单,当时采用的还是集中式的系统。集中式系统并不落后,不要陷入唯分布式至上的误区。
08年时,淘宝的数据库力量非常强悍,Oracle认证有60%在淘宝。当时的策略是,性能瓶颈了都从数据库角度入手,优化SQL、建索引等……虽然数据库技术力量非常强,撑起了淘宝的高访问量,但这种做法始终是有瓶颈的,一旦负载超过了天花板,会没有补救的办法(没法加机器水平扩展)。当年JD的618大促挂了,刘强东说要加三倍的机器,但这不能解决问题。集中式应用不可扩展,所以淘宝决定升级架构。
但需要明确,集中式应用的开发和维护代价都比较小。
分布式应用需要解决的核心问题:如何利用多个节点解决计算和存储;应用解耦和异步化;
传统关系型数据库的集群方案不靠谱。淘宝面对非常多类型的存储。
淘宝2.0~3.0的转变。HSF,Notify和数据访问层 三个中间件让集中式走向分布式应用。
※做好接口!你的产品可以有问题,但你应该是第一个发现的,不能让别人跑来告诉你你的产品有问题。(程序员的尊严)
分布式调试非常困难(解耦后找不到消息去向)
如何做线上容量规划和评估(线上真实引流压测)
水平扩展和垂直扩展:工程师不要因为分布式能够水平扩展而过度依赖水平扩展;目前过度依赖加机器,而没有充分发挥单机性能。
同城多机房;异地多机房。
趋势
算法的价值:先发优势
云计算时代:开发让应用做到可伸缩
无线(天猫的无线优先)
DT:数据≠算法。能不能让存数据的成本低,能不能让数据计算快。业务工程师应该有数据的sense:业务如何为公司产生数据;如何在业务中利用数据;如何利用数据产生价值。
建议
站在风口。
选择对职业发展有帮助的公司和职位。机会和空间很重要。看书和学知识只是基础,实战很重要。
找个感兴趣的方向,很辛苦但不会很痛苦。
目标:定短期目标。随着年龄的增大时间会越来越碎,如果愿意在事业上有发展,刚毕业对自己狠一点。
危机感。推荐书籍《浪潮之巅》。