QCon 伦敦:Meta 采用单体架构仅用五个月就发布了 Threads

Meta快速推出Threads应用的历程

在2024年QCon伦敦大会上,Zahan Malkani分享了Meta如何在短短五个月内从市场机会识别到推出Threads应用的历程。Meta利用Instagram现有的单体架构,快速迭代创建了一个新的以文本为主的微博客服务。

市场机会与初步尝试

在Elon Musk收购Twitter后,Meta看到了创建一个竞争服务的机会,但时间紧迫,需要迅速吸引正在寻找替代品的Twitter用户。Meta最初测试了在Instagram上更好地支持文本帖子的功能,但这些努力未能吸引足够的新用户。

快速开发与架构利用

Meta组建了一个小团队,计划在几个月内推出一个直接与Twitter竞争的新服务。Zahan Malkani分享了团队如何重用Instagram的后端组件、数据存储和大部分现有基础设施,但进行了定制以提供与X(原Twitter)相当的功能。

Threads的技术栈

Threads的技术栈几乎与Instagram相同,包括几个单体应用组件和专用数据存储。主要后端组件是一个使用自定义Django框架(名为Distillery)的大型Python代码库,集成了一个名为WWW的旧PHP组件。数据存储在TAO中,这是一个基于图数据模型的写穿透缓存,使用UDB(一个分片的MySQL部署)存储所有数据。此外,ZippyDB键值缓存存储临时数据,Async(一个无服务器函数计算平台)用于在非高峰时间执行异步任务。

开发过程中的挑战与解决方案

在Threads的开发过程中,团队采用了服务器驱动UI(SDUI)方法,以在项目初期实现快速实验周期,并利用数千名公司员工进行反馈。尽管重用Instagram平台带来了明显的优势(如更快的交付时间),但Malkani承认公司引入了大量技术债务,未来必须解决。团队正在逐步将Threads的数据模型与Instagram分离,以便在两个平台增加新功能时能够独立运行,但这一过程需要时间。

发布与后续改进

Threads于2023年7月发布,期间经历了一些小插曲,如由于时区混乱,东南亚和其他时区的用户在美国团队准备允许流量进入之前就可以下载移动应用。工程师们还不得不改进某些流程的可扩展性,以允许从Instagram导入关注者。团队一直在不懈努力解决问题,确保平台的稳定性,该平台在发布后获得了前所未有的采用率。第一天就有1000万用户下载了该应用,前五天达到了1亿用户。

新功能与未来计划

自发布以来,团队推出了新功能,如“关注”信息流、热门话题讨论以及有限的API访问权限,用于读取和发布帖子。Threads团队还在积极采用ActivityPub协议,允许用户将帖子分享到支持该协议的其他社交网络。

总结

Meta通过重用Instagram的现有架构和基础设施,成功在短时间内推出了Threads应用,尽管引入了技术债务,但团队正在逐步解决这些问题,并持续改进和扩展平台功能。

阅读 25
0 条评论