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

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

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

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

Linode的使命是让云计算变得简单、实惠,每个人都可以使用,这是我的心头好。我从 8 年级开始使用 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 Enterprise 共享相同的 API 架构,这使我更容易共享这两种情况的逻辑。搜索功能使我只需几次 API 调用即可获得所需的数字。

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

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

自带证书

许多客户使用我们的 Object Storage 用于托管静态网站的服务。默认情况下,我们在我们拥有的 linodeobjects.com 域上提供 SSL 证书 。但是,如果用户愿意,没有提供自己的证书的机制。我的一位导师亚当·穆罕默德(Adam Mohammed)向我提出了添加此功能的想法。作为 Object Storage 我自己,我明白这将为我们的客户带来的价值,所以我和他一起构建了这个功能。

我的任务是构建 API 接口来支持这个新功能。构建一个新功能让我参观了 API 项目的每个角落。作为一个大型的单体 Web 应用程序,有很多活动部件需要理解。它还填补了我在系统如何通信和协同工作方面仍然存在的知识空白。

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

这项工作现已完成。您现在可以上传证书和私钥对,以及 Object Storage 当请求到达您的存储桶时,将提供它。就这么简单。此功能彰显了我们的使命,即让云计算变得简单。我们为您提供构建项目或业务所需的工具,而不会出现任何臃肿。

总结

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

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

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


注释

留下回复

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