当前位置:主页 > 成功案例 >

成功案例

case

今日头条架构演进之路——高压下的架构演进专题

时间:2022-11-10 12:00 点击次数:
  本文摘要:摘要: 今天给大家分享今日头条架构演进,前面几位讲师讲了许多详细的干货,我的分享偏重基础设施及架构想路的先容,我们想法是通过提供更好的基础设施,资助架构做更好的迭代。从架构的角度,技术团队应对的压力最主要来自三方面: 服务稳定性。今天给大家分享今日头条架构演进,前面几位讲师讲了许多详细的干货,我的分享偏重基础设施及架构想路的先容,我们想法是通过提供更好的基础设施,资助架构做更好的迭代。 从架构的角度,技术团队应对的压力最主要来自三方面:服务稳定性。

亚搏手机版app下载

摘要: 今天给大家分享今日头条架构演进,前面几位讲师讲了许多详细的干货,我的分享偏重基础设施及架构想路的先容,我们想法是通过提供更好的基础设施,资助架构做更好的迭代。从架构的角度,技术团队应对的压力最主要来自三方面: 服务稳定性。今天给大家分享今日头条架构演进,前面几位讲师讲了许多详细的干货,我的分享偏重基础设施及架构想路的先容,我们想法是通过提供更好的基础设施,资助架构做更好的迭代。

从架构的角度,技术团队应对的压力最主要来自三方面:服务稳定性。接口的稳定性,让服务更可靠;迭代速度。

迭代速度对于大公司来讲相对没那么重要,规模比力大,生存压力相对小一点,但相对中型小型公司来讲,迭代速度是必须要保证的,时间窗也是一个决议能否乐成的重要因素;服务质量。主要关注用户满足度,它也是一个特别重要的 topic。

今日头条生长特别快,只有 4 年的历史,从人员数量和规模增长来看很是快,在稳定性可用性方面压力比力大,一方面需要快速把业务实现,但在另外一方面,类似这些高可用的问题会经常骚扰工程师:上线就挂、运营运动量大服务瓦解、单机性能顶不住、一个小服务上线把焦点服务搞挂了……类似这些问题,技术团队需要如何更好的去应对?先增补下我对架构演进的明白,在差别阶段的公司都市面临种种压力。小公司压力可能是业务没起来,QPS 很低,要做优化也没有情况及条件;当公司大了,服务器可能已经不是问题,但你要不停思量调优及应对会见压力,改善基础设施以提供更稳定的开发情况。所以说架构演进是连续一个历程,没有终点。

为什么今日头条有这么大的压力?今日头条增长速度是比力快的,从上图可以看出,现在公司已有 4 年,2014 到 2016 年每年都是 DAU 翻番。这对业务挑战是很是大,规模上来以后,我们原有的架构难以做到线性扩展,部门能线性扩展的服务,问题也比力多,业务增长太快,后端压力比力大。

头条架构生长简史:三个历史阶段今日头条的架构是怎么生长过来的?从来没有一个完美的架构能够一直支撑下去,架构是动态系统、实时变化的,因为量变而发生质的变化,差别的阶段需要差别的架构。什么时候需要做架构上的革新呢?当突然发现系统问题越来越多,经常泛起事故或者报警特别多,相同的效率降低等问题,很有可能你的架构泛起问题了。

软件架构有一个问题,它改动的周期相对比力长。架构的模式思路定下来,随着业务的增长,负担越来越大。

做过基础设施的人都有这样的体验:有一个好的想法很容易,但做一个好用软件就有许多的难题。技术革新是漫长的,以年为单元。所以这个时候只能让架构迭代更快一点。

最后,不要企图做特别完美的架构,我们只要保持敏捷演进就好了。架构不行制止会劣化。头条第一阶段:三层结构今日头条刚开始做的时候,就是一个简朴 Web 应用,搭个数据库,把业务实现就行了。

头条最开始的优势是推荐引擎,另有另外一套数据挖掘和离线盘算。在线的服务在前端相对来讲模式还是比力清晰的,三层就搞定了。业务刚开始起来的时候,没什么问题,会见增洪流平扩展一下就可以解决。

头条第二阶段:拆分跟大部门公司的架构演进历史很是相似,当上个版本遇到一些性能问题后,最简朴就做一些拆分。优化的历程中,那一块太重了就从代码上举行拆分。上图中,A、B 和 C 是差别的业务,刚开始代码是一起的,演进的历程中,迭代一年或者两年的产物,异构去拆其实挺痛苦。

前面时代的架构,基本上没思量太多的人员或者规模上的生长,刚开始也没有专门的人做架构优化,许多人都扑在业务上,把功效点加上。好比推荐的效果欠好,就增强推荐,每块都没有专门的的人去思量整体架构去怎么组织计划。到了去年,每个季度做的预算,到第二个月机械都用完了。

岑岭的时候有 60% 到 70% 的压力,这里涉及有两个问题:第一个问题,有些地方是性能衰减的问题;另外一个,业务压力太大。架构团队需要想措施变得更快,纵然泛起会见问题,压力大,机械不够,也要让我们的服务有所保证。

业务一直在快速前进,负担是比力极重,革新的成本比力高。基于这些问题,谈下我们下一阶段的思路,做微服务。头条第三阶段:微服务现在我们的思路是通过微服务方式做新架构。

通过拆分成子系统,大的应用拆成小应用,抽象通用层做代码复用。系统的分层比力典型。

我们重点在基础设施,希望通过基础设施提高快速迭代、容灾和一系列的事情,希望各个业务团队能更快做业务上的迭代以及架构上的调整。微服务架构微服务我们认为最关键的三点解耦,一个服务会依赖另外一个服务、模块或子服务的观点。

轻量,减轻维护人员的成本。易治理。现实中微服务的关键是自治。

虽然微服务是自治自包罗,但也需要有一个层级。好比你提供的服务是外面公司提供的,微博提供的服务,你不能够要求微博为你得服务去做更改。微服务要有界线,在公司层面,不能让它过于独立,过于独立会增加相同上的成本。基础设施和规范最好能复用。

现实中的微服务是什么样的?• 架构必须要落地成具象的工具。微服务有一个开发框架,做业务的同学基础不需要体贴容灾,也不需要重复做这样一套工具,这个工具怎么部署,他们也不用体贴;• 需要有一个流程规范性去约束。

有规范就可以做全局优化;• 微服务的体现形式是提供一个平台或者一些工具。头条服务化的现在及未来最后再给大家先容前面服务化的思路在今日头条是怎么执行的?怎么给各个业务团队开发者提供服务?头条的主要服务化思路如下:• 立规范。规范怎么做?部署 RPC,一个服务调另外一个服务是怎么做的?创新我以为没有问题,但你得思量给其他人带来成本,这。


本文关键词:亚搏手机版,今日,头条,架构,演进,之路,—,高压下,高,压下

本文来源:亚搏手机版-www.bjyytyc.com

Copyright © 2002-2021 www.bjyytyc.com. 亚搏手机版科技 版权所有 备案号:ICP备50489898号-8

在线客服 联系方式 二维码

服务热线

0933-57158727

扫一扫,关注我们