点击领取

400-616-5551

您所在位置: 首页> 学习资讯> 30亿用户的Instagram用Python开发,Python到底牛在哪?

30亿用户的Instagram用Python开发,Python到底牛在哪?

发布百知教育 来源:学习资讯 2019-09-25

Python能用来开发大型项目吗?


看到有人说:一般的小项目, 代码超过 1000 行写 python 就已经是虐心了,代码超过 10w 以后你就别想用 python 开发了。


那么Python在大型项目上的表现到底怎么样呢?今天我们来看看详细分析。


我玩 Python 的时候了解到,用 Python 用的好的大型互联网公司,非 FaceBook 莫属了。


你们知道吗?Instagram 的总注册用户达到 30 亿,月活用户超过 7 亿。而令人吃惊的是,这么高的访问量背后,竟完全是由以速度慢著称的 Python + Django 支撑。


时至今日,即使已经拥有超过 30 亿的注册用户。Instagram 仍然是 Python 和 Django 的重度使用者。Instagram 的工程师 Hui Ding 说到:『一直到用户 ID 已经超过了 32bit int 的限额(约为 20 亿),Django 本身仍然没有成为我们的瓶颈所在。』


不过,除了使用 Django 的原生功能外,Instagram 还对 Django 做了很多定制化工作:


• 扩展 Django Models 使其支持 Sharding (一种数据库分片技术),Instagram Engneering 博客专门为这件事情写过一篇博客,可参阅:Sharding & IDs at Instagram


• 手动关闭 GC(垃圾回收)来提升 Python 内存管理效率,他们同样也写过一篇博客来说明这件事情:Dismissing Python Garbage Collection at Instagram


• 在位于不同地理位置的多个数据中心部署整套系统


这说明什么?这说明没有烂语言,只有驾驭不了语言的人。


再看看相关的 FB 的使用,在Facebook,Python是被使用最多的语言之一,受欢迎程度排行第三,仅次于Hack(Facebook出品的PHP变种)和C++。这听起来可能会让很多Python迷惊讶。


事实上,Facebook的工程师构建并且维护着上千个Python库和项目,这些Python库和项目在Facebook的生产环境中随处可见。


看看 Python在Facebook的地位,在数量上占到了多少?如图:


1.png

21%的Facebook架构代码



百万行代码,上千个库和二进制文件

2016年至今,平均每月5000个提交,1000个提交者。

据报道到2016年5月,5%的Python代码使用Python3。


Python在运维领域的应用

Facebook的基础设施团队大量使用Python,在生产环境中Python可以说无处不在。各个团队通常来说都会为他们自己的服务维护一个Python客户端(一般是thrift),这个客户端可以为其他团队提供简单可依赖的接口,以方便其他团队可以随时调用他们的服务。


有了这些库,产品工程师可以少写大量的代码,也减少了测试和维护的成本。使他们能够快速地将自己的服务接入到Facebook的基础架构中,同时允许架构有效可靠地扩展。


基础设施管理


产品工程师拥有大多数的Python软件,并用这些软件来管理Facebook的基础设施。即便其中的软件不是100%由Python编写,至少它也覆盖了我们的硬件设施的整个生命周期,从硬件进入我们的数据中心到它报废的时刻。


平台服务


随着我们的基础设施规模化,一些单片服务被拆分成多个组件,过程中造就了大量各种用途的Python服务。


服务配置管理


我们主机级别的配置管理是用Chef完成的。我们服务级别的配置管理,是通过一个Facebook内部的项目,叫Configerator,完成的。工程师们通过Python代码生成配置对象,这些配置存储在JSON文件中,任何的服务都能够读取。验证器,也是Python写的,用来验证这些配置的正确性。Python还是项目Tupperware的配置语言,这个项目是Facebook的容器部署系统。


使用Python让我们能够动态生成配置对象,而不用创建、维护、学习使用复杂的模板系统。


甚至在运维配置上也广泛使用了 Python 工具。


Facebook的规模使得Python的效率被使用到了极致,他们的代码里使用了大量的库(Twisted, Gevent, futures, AsyncIO, 和很多其他的)。很多的迁移项目或者新项目都使用Python3,除非有不得已的理由必须使用Python2。目前,我们运行的服务中5%的代码是用Python3编写的。


看到大公司是如何使用 python 的了吗?


所以,Python在大型项目的表现上是十分出色的。现在的情况是,你学了Python就会有很多机会,无论是正式工作、还是兼职。


注释:本文来自微信公众号 Python自学指南

上一篇:自学Python有必要买课程吗?大专学历找工作难吗?

下一篇:如何使用 Python 和 BeautifulSoup 爬取网站

相关推荐