从呱呱坠地到牙牙学语再到拥有独立的思想人格,经历了数不清的选择,每个选择过后就意味着从0到1的成长以及新领域新的挑战便又会来临。张嘉佳曾经说过:“平静中能看出热烈,就算日落,也有一万种红。”那如果从平静中跳脱出来之后,在多变的互联网世界,每天也同样经历着从0到1的选择,但也同样的有从1到0.1的的发散。
“人类社会发展的结果是分工协作,IT架构也是这样”。
▲爱奇艺云平台高级技术总监谢丹铭
也许许多人被笔者的0到1,1到0.1说糊涂了,就着2016中国系统架构师大会预热访问的由头,笔者访问到了爱奇艺的云平台高级技术总监谢丹铭,看看他是如何周旋在这些多变的数字的。
从0到1,爱奇艺云平台经历了从无到有,从小到大,逐渐分工专业化的过程,目前爱奇艺所有业务都运行在自建的私有云平台之上,极大提高了资源利用率,开发效率,服务稳定性,并使得技术升级推广非常方便。
IT架构的高速发展演变,如果要用一个词来描述这些年的经历的话,谢丹铭提到了“专业化”这个词,他说,人类社会发展的结果是分工协作,IT架构也是这样。确实是,以前搭建一个互联网服务,最好工程师什么都懂,从负载均衡,业务逻辑,缓存,数据库,中间件,到服务器配置,运维,上线,可以说是一条龙服务。而目前,从基础的计算,存储,网络领域到上层的数据库,中间件,分布式计算,大数据,云应用,云安全等领域,都有专业的团队进行研发,各个领域都得到了长足的发展,这就是从1变成了0.1发散的过程,钻的更深了,也能更好的保障云平台的稳定运行。
术业有专攻,爱奇艺云平台“攻”什么
爱奇艺经常会遇到类似于时下火爆的电视剧,或者综艺,大多数时候是可预期的,当然也有时候用户会带来意外的惊喜。对于激增的视频访问,首先需要保证足够的带宽。爱奇艺有大数据团队对视频VV进行预测,准确率在90%以上,根据VV预估,来推算出需要的带宽,进行预先储备。此外爱奇艺拥有业界最领先的HCDN技术,能够在保证用户清晰流畅观看体验的同时,节省大量带宽。对于热剧,我们还会事先进行全网分发,让视频提前到达CDN边缘节点,提高用户访问速度。对于云应用服务来说,数据库和中间件等服务往往事先就采用集群架构,具有高度冗余;在部署方案上则会采用爱奇艺私有云弹性计算平台,在服务请求增大的情况下,自动对服务进行水平扩展,从而保证单个容器负载可控。
除了要应对激增的视频点击之外,视频网站遇到比较多的问题一是盗链,二是盗号,前者会损害版权利益,增加带宽成本,减少广告收入,后者损害用户权益和公司名誉。对于盗链,主要依赖云调度的数据接口签名和通信加密技术来保护。
用户的帐号本身以及基于帐号提供的各种服务,则需要采用安全云风控系统和业务系统联动来防范。风控系统拥有海量安全数据和业务数据,通过大数据平台结合业务特性提炼出安全规则和模型,对业务提供实时,近实时或者离线的安全保护。
云平台建设不一样的声音
毫无疑问,云时代正在逐步走进我们的身边,在谢丹铭眼里,云平台的发展离不开IT基础设施硬件的升级,很高兴业界一直在硬件方面保持高速突破,尤其在SSD,大容量硬盘,光纤网络,服务器,交换机等领域的发展,为云平台持续发展提供了高效支撑。其次是虚拟化,容器,分布式存储,SDN等技术的发展把资源使用到极致,大大提高硬件的使用效能,节省成本。
然后活跃的开源社区研发多种基础软件,公共组件,能够使业务专注于实现业务逻辑本身,并减少对基础服务的理解,提高研发效率和服务能力,希望我们业界也能拥抱开源,回馈开源。
最后,云安全在云平台的发展中举足轻重,云时代给我们带来的全新的挑战,单兵作战已经很难独立应对这些挑战,需要安全业界协同联动,共同努力。
对于架构,要知其然更要知其所以然
有很多工程师或者初级架构师非常乐于“搜刮”各种公司的架构图,以此作为学习的方式,而谢丹铭认为,有这种学习热情是一件很好的事情,不过对于架构来说,要知其然,更要知其所以然。
架构图是一个output,架构形成的过程往往没有反映出来,而这个过程往往是精髓。所以 “搜刮”来作为借鉴是可以的,但是真正应用起来,还是要反复推敲,结合实际。其实更推荐了解业界的新动态和新技术,掌握技术利器,然后结合自己实际遇到的问题进行设计。一个成功的架构应该满足以下四点:
鲁棒性:服务架构应该能够充分抵御各种突发状况,大到部分机房断网,小到网络抖动,常见如QPS(每秒访问量)激增,依赖服务失败,都应该有充足的空间去容错、降级、恢复。
节约性:节约分为两方面,一是人力的节约,二是资源的节约。人力方面,好的架构需要有前瞻性,避免短期反复,但又不过度设计,易于理解和实现,节约开发时间,又能满足业务需求。资源方面,要充分考虑到软件对计算、存储和网络的需求,尤其在互联网公司海量用户的场景下,一个小小的优化,往往能带来巨大的资源节省。
举个例子,一个小部分用户才用的数据,如果所有用户都去服务端请求,那么一天的请求量,在爱奇艺的用户规模下,就是数亿,如果做个优化在有数据的情况下才去请求,那么可能就能减少到几万,带来的是服务器和网络资源的大量节省。
演进性:架构很难做到一蹴而就,技术本身在进步,业务需求在变化,这就要架构本身也能做到优雅地改进。
安全性:安全是个系统性问题,从架构设计开始就应该被充分重视,并且实现的各个阶段都需要有具体的规范来跟进,亡羊补牢的代价是巨大的。
避免架构失败,首先要充分理解目标,避免走歪路,方向正确才能事半功倍;设计阶段,架构师需要从以上几个方面多给自己提问题,充分预估困难和风险;重大的的架构设计,必须由专家组和实施人员复审,既要倾听专家的经验,也要尊重实施人员的反馈和输入。在实施过程中,需要不断优化,及时纠错。
谢丹铭认为,架构并不是一个特别高大上的事,只要运用可用的技术和资源,有计划有针对性地解决一个实际问题,就是架构,但是要成为一名出色的架构师就不是一件容易的事情了。一个好的架构师既要掌握渊博的基础知识和前卫的新技术,也要有多年的实战经验。
架构设计要避免走两个极端,一是够用主义,一是理想主义。前者容易沉迷于采用现有技术解决眼前问题,没有前瞻性,随着业务发展,服务架构往往不能胜任,需要推倒重构。后者过于追求完美和尝鲜,脱离业务实际需求,过度设计,也很难达到预期效果,甚至影响业务稳定。同时常年积累的项目经验也是非常宝贵的,可以避免重蹈覆辙,知道怎么做会出问题是非常难得的,好的架构师一定是踩了无数坑才成长起来的,所以一定要用实战项目来锻炼自己。此外架构师要有良好的沟通协调能力,在爱奇艺,有独立的架构师团队,往往会担任跨团队重要项目的设计,也有技术Lead承担着部门内项目架构师的角色, 无论哪种角色,都需要有良好的沟通协调能力。
结合这些年IT架构的演变,对于本届SAC大会“架构创新之路”的主题,谢丹铭认为创新是架构的精髓,正是由于业内同行源源不断地创新,IT行业、中国互联网才有今天的成就。最大的创新,就是满足了急速发展的中国网民的需求。视频,社交,电商,游戏等等商业形态的背后,正是无数架构师们辛勤劳作的智慧结晶。