跳到主要内容
博客云概述我的Linode之旅:从一个Minecraft服务器到一个工程实习生

我的Linode之旅:从Minecraft服务器到工程实习机会

我的Linode之旅:从Minecraft服务器到工程实习机会

你好!我的名字是Gurleen,我是Linode的软件工程实习生。我在宾夕法尼亚州费城的德雷塞尔大学学习计算机科学和企业家精神。在过去的五个月里,我有机会成为Linode的第一个实习生,与API 团队一起工作。

Linode的使命是使云计算变得简单、负担得起,并使每个人都能使用,这一点与我的心很接近。我早在八年级时就开始使用Linode来旋转Minecraft服务器(顺便说一下,现在可以作为一个易于使用的一键式应用程序),而今天我使用Linode来托管大型应用程序。从我3月份的实习开始,我觉得继续这一使命并将云计算带给新一代的技术专家很重要。

在Linode工作期间,我有机会参与内部和面向客户的项目:

改善API 响应时间

APIv4是我们产品的骨干。它为我们的云管理器提供动力,并允许我们的客户以编程方式访问Linode的所有产品和服务。今年,我们将大量精力放在加快API ,以更好地服务于我们的客户,特别是那些从世界另一端连接的客户。 

在承担这项任务之前,我们的响应时间徘徊在150ms左右。这已经很快了,但我们仍然想挤出更多的性能。

作为这个大项目的新成员,我可以用更挑剔的眼光来潜入。我们想找到能在我们所有的端点(其中有很多)上产生节约的优化措施。我开始思考哪些操作是在各个地方进行的,然后我想到了:日志!我想这是一个很好的例子!

起初,这似乎有点牵强,但当你衡量它时,它是有意义的。写入stdout以及记录到文件,在Python ,是一个同步操作,它可能需要10-20ms的时间,这取决于写入的文本量。这是花费在一个可能有用也可能没用的任务上的很大一部分时间。

我探索了各种方案,例如异步日志,但我发现降低日志级别会产生最大的好处。我们的开发环境反映了我们在生产中使用的容器,所以我使用Locust开发了一个压力测试,收集响应时间数据。最大的收获来自于将日志级别从DEBUG(我们以前的生产设置)改为INFO。仅仅是这个开发就使我们在生产中平均减少了15毫秒,即使每分钟有~18000个请求! 

改善API 响应时间是一个惊人的机会,使每个人的客户体验更好,特别是欧洲和亚洲的客户。  

为管理者收集GitHub指标

Linode的软件工程经理的任务是收集有关其团队生产力的数据。他们使用GitHub的指标,如PR和提交,来获取其中的一些信息。然而,这可能是一项费力的工作,因为我们的GitHub企业服务器和GitHub上的开源项目(如Linode云管理器)都有储存库。我的经理萨米尔问我是否可以协助加快这种数据收集。

这个过程的自动化时机已经成熟。我开始探索GitHub的API ,发现公共GitHub和GitHub企业版都共享相同的API 模式,这让我更容易在两种情况下共享逻辑。搜索功能让我只需调用几次API ,就能得到我需要的数字。

我在一周内建立了一个概念验证,可以作为一个命令行工具使用。下一步是提供一个网络界面给我们的经理使用。对于这个项目的规模,我使用Vue.js来完成这项工作。结果是一个小型的、自我托管的应用程序,它可以把API ,团队名册和日期范围,并把它们变成原始数字,供经理们转移到谷歌表格等工具。 

经理们已经节省了许多追踪这些指标的时间,我相信我的项目即使在实习结束后也会继续提供价值。

自带证书

许多客户使用我们的对象存储服务来托管静态网站。默认情况下,我们在linodeobjects.com域名上提供一个SSL证书,这个域名是由我们拥有的。然而,没有任何机制可以让用户在想要的时候提供自己的证书。我的一个导师,Adam Mohammed,向我提出了增加这一功能的想法。作为Object Storage的用户,我理解这将给我们的客户带来的价值,所以我和他一起工作,建立了这个功能。

我的任务是建立API 接口,以支持这个新功能。构建一个新功能让我参观了API 项目的每个角落。作为一个大型的、单一的网络应用程序,有很多移动的部分需要理解。这也填补了我在我们的系统如何沟通和合作方面的知识空白。

这个项目的一个重要部分是对安全的关注。处理客户的秘密不是一件容易的事,我们花了很多时间计划、讨论和测试链条上的每一个环节,以确保我们提供安全的服务。这给了我一个关于系统设计的新视角,让我能够站在用户的角度考虑问题。我很高兴看到客户使用并享受这一功能。

这项工作现在已经完成。你现在可以上传一个证书和私钥对,当一个请求来到你的桶时,Object Storage将为它提供服务。就是这么简单。这个功能说明了我们的使命是使云计算变得简单。我们给你提供你需要的工具来建立你的项目或业务,而没有任何臃肿的东西。

总结

我于3月开始在Linode工作,不仅是公司的第一个工程实习生,也是由于大流行病而被远程录用的第一个员工。尽管这样,我学到的东西比我想象的要多得多。我的团队和部门张开双臂欢迎我,并回答了我甚至不知道我有的问题。我们能够充分利用一个奇怪的情况,因为Linode的文化是相互支持。我不可能要求有更好的人和我一起工作。

正如你所看到的,我所承担的工作不是 "实习工作"。我从事的是影响力大、面向客户的项目,目标是推进公司的使命。除了技术知识,这项工作还向我灌输了以客户为中心的工程思维。我只有在课堂之外才能获得这些技能。

过去的几个月是令人兴奋的,具有挑战性的,也是有益的。我非常感谢Linode为我提供了这个机会,我迫不及待地想看到其他学生担任这个角色。


注释

留下回复

您的电子邮件地址将不会被公布。 必须填写的字段被标记为*