首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Khan Academy更新线上学习服务弃Python拥抱Go

曾受Google与AT&T捐赠,每月为数百万用户提供线上教学服务的非盈利教育组织Khan Academy,在自家的技术博客发文提到,过去10年他们使用Python 2作为后端服务器的开发语言,但Python 2将在2020年1月寿终正寝,Khan Academy的工程团队决定开始把部分程序代码移植到Go上。

Khan Academy工程团队提到,要将Python 2搬迁到Python 3上并非简单的事,由于各种障碍以及旧有的函数库,使得他们只能切分程序代码,在过渡期间至少需要执行Python 2和Python 3两个版本的服务,而这些工作会使后端服务器程序代码执行性能提升10到15%,并且能够使用Python 3的语言功能。

而对于同样需要耗费大量的资源进行搬迁,但却只能获得相对少的好处,Khan Academy工程团队想要寻找其他的可能性。他们提到,在一年前尝试以Kotlin开发了特定的功能,而由于Kotlin高性能的优势,使得他们节省了一些成本,并运用这些省下来的钱,在其他方面帮助世界各角落的人们学习。

因此工程团队认为,既然本来就要花费资源搬迁Python 2的应用程序,那便可以挑选另一个性能量级的开发语言,如此不仅能够改善网站回应速度,也可以降低服务器成本。所以除了Kotlin,还研究了其他Google App Engine支持的开发语言,他们发现Go的语法简单具一致性,且编译速度非常快,可以让开发者快速迭代,与Kotlin比起来,Go受更多的编辑器支持。

工程团队比较两个语言的性能,在JVM上,Go和Kotlin的性能差不多,Kotlin只有些微领先,但是Go使用的内存更少,因此可以缩减规模使用更小的执行实例。工程团队表示,虽然将应用程序搬迁到Go上比搬迁到Python 3要花更多的资源,但是Go与Python的性能差异太大,光凭性能差异就值得搬迁。

另外,由于新的Go程序代码与原本Python程序需要分开执行,因此工程团队也决定把原本单体程序,逐渐转换成服务架构,缺点是将原本程序逻辑拆解成服务,会使各部分的调用速度,不如原本单体程序调用函数的速度,但是当服务独立部署,便能使单一服务的部署和测试更加快速,工程师也能花更少的时间在部署工作上。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191224A0HAS800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券