从Netflix的混世猴子谈一线架构师的漫长技术栈规划
京东在架构设计上有称之为“did”的原则,用来在业务快速扩张阶段中避免架构设计滞后或超前于发展趋势,即:
design 20 倍体量
implement 3 倍的体量
deploy 1.5 倍的体量
这里的体量结合非功能要求来说,可以是吞吐量、存储容量等。要贯彻这个原则,需要对业务量的发展有预判,对系统处理能力有评估,对设计方案有评审,对资源申请有审核,对线上资源利用率有监督。
除了体量之外,还有先进性跟踪的问题,架构设计上如果过于超前,对于技术开发人员要求较高,往往需要专业的团队,这样成本会有相应的增加。如果技术开发人员的水平跟不上的话,就会影响业务的变化。
因此随着业务迅速迭代,一个企业会尽快实施服务化,将一个大问题陆续分解为一个个小问题。这个架构实践周期依企业开发团队的效率而定,一般从几个月到数年不等,此过程对一个企业技术团队的慎重,可谓为“漫长技术栈规划”,不可轻易改变。那么现在一线互联网企业的架构师都在进行怎样的漫长规划呢?当规模的问题解决之后,又有什么创新技术可以帮助业务快速增长呢?
Netflix
首先谈谈微服务楷模 Netflix,它 100% 的云上架构以及他的混世猴子军团均以超前于这个时代闻名。
Netflix 目前正广泛地使用 AWS Lambda 这类 FaaS(函数即服务)来构建 Serverless 应用。FaaS 的关键特征是:事件驱动、细粒度调用、实时弹性伸缩,无需管理服务器等底层资源。然而使用 FaaS 对 Netflix 来说是有代价的,FaaS 对于延迟要求不严格的应用 (latency insensitive tasks) 效果显著,但对一些诸如延迟要求、可靠性以及弹性要求高的复杂应用而言,仍显得过于超前。
如果你是 Netflix 的架构师,你会是渐进过渡到 FaaS 平台还是直接进行微服务改写?现在 Netflix 的 FaaS 平台又是如何构建的?如何避免上述的问题发生?
Netflix 首席软件工程师 Yunong Xiao,目前正在带领 Netflix API Platform 的架构设计,他将带着大家的疑问以及在 Netflix 的先进经验,在 ArchSummit 全球架构师峰会深圳站上与大家进一步交流。
接下来谈谈 Facebook,截止至 2017 年 12 月,Facebook 每日活跃用户人数平均值达到 14 亿人,覆盖全球 130 多个国家,除了人和人之间的关系,你是否感兴趣 Facebook 如何处理海量用户的空间信息?
Facebook 这方面的技术亮点是海量数据 Geo 数据库的索引结构、查询优化、数仓建模。相信对国内研究数据库和数仓的,尤其对 Geo 数据库 & 数仓的企业应该会非常感兴趣。关于地理位置数据,包括轨迹追踪,定向圈人,做 Geo 相关研究,Facebook 在全球至少在前三。
具体涉及哪方面的内容和挑战呢?大规模空间数据除了在规模上的挑战以外,还有一些独特的问题需要解决:例如经纬度,直线距离和弧面距离的区别,以及同样的经纬度差在两极和赤道的面积差等。
这些特性既是挑战也是性能优化上的机遇。随着越来越多的移动设备,物联网设备产生海量的时空数据,如何有效存储,检索,实时的 k-nearest 查询,关联性排序,如何高效的解决在离线大规模空间数据分析中常用到的 Spatial Join 都是 Facebook 要解决的问题。
Facebook Location Infrastructure 团队处理大规模时空数据过程中,在内部技术和开源技术之间采取了折中而务实的办法。
此次 ArchSummit 深圳站同样邀请了 Facebook GeoAPI 组技术领导宾理涵前来分享经过验证的、在处理每天万亿级混合复杂操作的时空数据背后的多个设计决策和架构选型内容(包括在线和面向分析的用户案例)。
你可知 Google 的 Android 应用商店、广告排名等业务均应用上了基于深度神经网络的推荐系统?
随着电子商务和在线服务越来越普及,海量在线资源很多时候多到让用户无从选择,因此推荐系统的质量变得至关重要。传统的线性回归方法在很多系统里应用广泛,只不过随着深度神经网络在图像视觉领域的突破,很多研究人员开始利用神经网络搭建深度推荐系统,推荐质量显著超越传统基于线性回归系统,同时也简化了以往搭建推荐系统所需专家知识 (domain knowledge)。
深度推荐系统已经被广泛应用于 Google 多项面向用户的产品,一次又一次的突破质量瓶颈。具体的实践过程可简单概括如下:
信号类别分类
场景信号 (context signal):当前场景相关的信息
用户信号 (user feature, user signal):用户特征,用户历史信息,
物件信号 (item signal, item features):排序模型物件的特征
两步定制化推荐
深度挖掘,生成候选人列表 (deep retrieval, candidate generation)
混合人工生成的候选人,最终排序 (ranking)
选择模型训练模式
离线,根据系统日志 (适用于大系统,海量用户)
在线,强化学习(小量用户,快速迭代)
user vector, item vector (swivel model)
预生成的用户向量降低推断延时
超大规模物件向量的学习(稀疏问题)
损失函数的构造 (loss function)
上述的构建细节与 Google 最新的技术发展,Google 研究院的推荐系统负责人 Dekun Zou 将同样在 ArchSummit 深圳站上有所分享。除推荐系统之外,Zou 老师还会在现场额外分享《TensorFlow 在深度学习中的应用》,敬请期待。
自动驾驶
自动驾驶是一个庞大而且复杂的工程,涉及软硬件诸多更新,从 Google 2009 年开始研究自动驾驶开始到现在,在能买到的量产车里,目前应该仍是 Tesla Autopilot 系统自动驾驶程度最高,然而也仅仅停留在“辅助转向”,还不能称为“自动驾驶”,但自动驾驶未来肯定是机器学习的集大成者,有广泛的市场和应用前景。
ArchSummit 深圳站邀请了前 Tesla 深度学习负责人、Autopilot 系统团队核心成员徐雷前来分享《自动驾驶中的计算机视觉技术》。
摄像头作为性价比非常高的传感器,在自动驾驶系统中起到了非常关键的作用,如何高效稳定的利用摄像头完成环境感知任务,是极具挑战的工作。通过以摄像头为主的基于计算机视觉的方案,一套低价格,高性能的自动驾驶系统可以大幅度提高用户对安全性的需求。
同时,随着机器学习的应用,尤其是卷积神经网络最近有了长足的进步,在一定程度上都促进了计算机视觉技术在自动驾驶领域的落地。此次徐雷会向大家分享计算机视觉的关键技术研究内容,并向外界展示多个基于深度学习的障碍物检测、识别跟踪等多个领域的产品 demo。
区块链
最后谈谈区块链,3 月 7 日比特币的全球黑天鹅事件,让大家开始对与之相关的技术譬如区块链等产生怀疑。
区块链的数字加密技术是基于点对点互联网开源协议形成的个人隐私加密。目前很多公司在宣传通过区块链技术来对所有信息施行单向密码机制,加密过程不可逆,且每一段数据信息上都会有一个时间戳。想随意侵犯用户隐私和篡改用户信息都相当困难。可是,所有区块链真的有那么安全么?区块链实际用途范围到底有多广泛呢?
区块链的安全话题不仅涉及黑客和盗窃,还有货币供应量、交易审查抵制等等,可以看出区块链目前作为新兴的技术仍有太多的落地考验,以及需要时间与案例的证明。
ArchSummit 深圳站邀请了 Wyre 的技术专家 Neil Woodfine,他将会详细介绍区块链安全的核心概念,包括其中所隐藏的一些安全漏洞,同时也会通过数字货币案例分析,帮助大家在区块链技术应用过程中避免撞墙踩坑。
最后
ArchSummit 全球架构师峰会将在 7 月 6-9 日深圳举行,大会分为会议演讲以及深度培训两个环节,关于大会更多内容,欢迎识别下方二维码了解更多细节或点击“阅读原文”直接报名。
目前 ArchSummit 仍在与大量国内外技术专家沟通中,国内外一线架构案例将陆续上线,需要注意的是:ArchSummit 大会门票都极易售罄,及早预定可提前确保席位,并享受更低折扣。
此次大会的 8 折优惠即将结束,报名详请可咨询大会票务经理豆包(微信:aschina666),或直接致电 010-84780850。