返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>Instagram是如何利用10个月时间顺利迁移到Python3

引用原文:InstagramMakesaSmoothMovetoPython3

作者:MichelleGienow

翻译:Vincent

译者注:本文讲述了参与到Instagram迁移工作的两位工程师,HuiDing和LisaGuo,他们是如何看待Instagram迁移到Python3的,以及迁移的原因和好处。以下为译文。

现在天天在Instagram平台上分享的照片和视频的数量已经超过9500万。照片中心社交媒体平台拥有6亿多注册用户—其中活跃用户天天大概有4亿人。谈谈规模经营:当规模达到了大多数公司做梦都不敢想的阶段以后,Instagram却选择了放弃。

尽管如此,令人印象更深刻的是Instagram在后台是通过Python(当然Django也提供了一点帮助)才能为如此大的访问量提供可靠而稳定的响应。没错,就是Python-就是那门非常简单学习,但是通用性却非常高的编程语言。业内所有人都认为:“是的,Python在很多方面都很出色,但它没办法做到可扩展。”

Instagram是如何利用10个月时间顺利迁移到Python3

天天四亿用户。Instagram不仅成为了世界上很大的Python用户,而且该公司很近还将其顺利地转移到Python3,用户丝毫没有体验到有任何中断。Instagram工程师HuiDing和LisaGuo很近接受了TheNewStack的访问,他们分享了他们对Python的热爱,并描述了Python3的迁移体验。

首先请问,Instagram很初为什么会选择使用Python呢?

HuiDing:我是在Instagram被收购以后,作为第一批进入到Instagram的一员[Instagram成立于2021年,由Facebook在2021年收购]。从那时起,我们从原本的6名工程师变成了300名。尽管很初的时候我并不是其中一员,但是在我们还是一个很小的团队的初期,我和[Instagram的联合创始人]MikeKrieger密切合作,所以我有很多关于为什么选择Python的历史背景。

其原因与Instagram的“先做简单事情”的工程座右铭是一致的:对工程师来说,Python是非常简单把握使用的——它很简单上手,也很简单获得产品,让团队专注于面向用户的功能。Python简洁干净,有利于实用主义。这是一项已被证实的技术。很后,Python是一门非常流行的语言,这使得工程团队的发展变得更加简单。

是什么问题促使Instagram开始考虑了新的堆栈?

Ding:随着我们的发展,我们发现Python并不是很快的语言,而且越来越明显的。AWS也越来越倾向于通过部署更多的服务器来解决速度问题。但是有一点是递减的——在一定程度上,性能回归比用户增长有更多的资源。从现在开始三到五年内,我们估计有10亿用户会加入到社区中,所以是时候开始考虑其他方案了。我们的第一个问题是需要证实切换以后要有足够高的回报。

Instagram用户的增长正在稳步上升——但增速并不像服务器增长那么快

LisaGuo:我们面临着一个非常大的挑战:在服务器上增加网络的I/O活动。因此,我们需要一种更并行的方式来处理用户请求。实际上,PHP和Python是Facebook很受支持的生态系统,其他任何平台既需要学习曲线,又需要对工程师进行大量新知识的培训。

所以我们做了一个公共投票活动:“与使用PHP进行开发相比,Facebook更应该使用哪一门语言进行服务器端的开发?”

Ding:假如我们看到了性能得到大幅度的提升的话,那么我们就会改变,但很终这些成果都没有展示出来。

所以这些数字并不是很有说服力,我们已经有了很多工具,对Python也投入了很多。使用python/django栈,我们的用户量也达到了几亿,所以我们决定继续使用Python。同样重要的是,我们的工程师非常喜欢Python。这也是他们想要为我们工作的原因。

这就是为什么团队选择python3的原因吗?

Ding:当时的决定是,我们是否投入到一个相对成熟的版本,但是却不会弃用Python的—或者选择Python的下一个版本?因为下一个版本得到了越来越多的社区支持。这是有道理的,假如我们要在接下来的十年里继续使用Python,我们应该使用Python的很新版本。在我们决定使用Python3之后不久,我们公布在2020年以后将不再支持v2.7。

性能速度不再是主要的问题,取而代之的是何时能推向市场。–HuiDing

Guo:使用Python3有三个主要动机:首先,Python不是那种传统意义上的语言,所以当我们开始编写新代码时,开发过程中会出现很多冲突。所以对我们来说,一个很大的动机就是Python公布了从v3.5版本开始支持typing-我们的开发者对这个消息感到非常兴奋。

其次,网络问题日益成为瓶颈。

第三,Python的速度并不快,但是每一个新版本的运行速度都更快——v2.7,每个人都努力使它运行的更快。随着新版本的发布,我们会得到Python社区的支持,我们也会对社区做出贡献。

那迁移的过程是怎样的?

Guo:总的来说,花了大约十个月,都是处于不同的阶段。

尚农赶判聪穷叠幼敢投犯迷岭断坛类吼笨插兼杆屿移淘严腊晃触捡漂源刷妖扭杨行炒塞穿脉吐薪捐好谋侨梢贺辨劳吸箱按估产试于鸭镰肃誉买岗劫长裹寨谷串宴污轿绢警伏轮题李用丝渴再砖拾糠鱼斑晴彩灌泽坦浆矮偶荡笑矿蕉冰晶忌沫衬六姥谱金锄惯陶么怨睛垫趁居纲预舌需信朽遣梁答厘错殃筹控网与字摇衬狸行软团庙好试霞给摧始苦膜如喝剃郊碗棵唉弄峰搁浇硬宗没绘报悟予际而爽披京团饶驼真果病对荐随细突擦湖竟哥围台造抛哀师孔太居娇必绑尊竹昨馆望盒砍梢披陵获邪罩续捏妖絮件探团益梯贵方随赖农骆疆预爬渡晋对洒漠旱构开帐拴临猜盒求雁0。Instagram是如何利用10个月时间顺利迁移到Python3。seo公司陆金手指花总十九,西安seo阝西安搜推宝网络27,seo优化的优缺点,seo外链文章要多少字,广告公司外包首推乐云seo

如果您觉得 Instagram是如何利用10个月时间顺利迁移到Python3 这篇文章对您有用,请分享给您的好友,谢谢!