将Discord的工程团队过渡到云开发环境

Discord 迁移到基于 Linux 的云端开发环境的历程

Discord 的内部开发者体验团队近期分享了他们将后端和基础设施开发迁移到基于 Linux 的云端开发环境的经验。通过与 Coder 的合作,开发者从使用 MacBook 转向在远程开发环境中工作。

迁移背景

Discord 的工程团队主要采用远程工作模式。在迁移之前,开发者可以在 Mac 和 Ubuntu 系统上设置 Discord 开发环境。最初,开发者使用 Homebrew 进行 MacBook 的配置,但面临 brew 升级中断工作的挑战。随着组织规模的扩大,团队意识到开发过程中缺乏容器化,因此决定采用单一的基于 Linux 的开发环境。

选择 Coder 和 VSCode 远程开发扩展

由于大多数 Discord 工程师使用 VSCode,VSCode 的远程开发扩展在这一场景中非常有用。Discord 的策略包括在重启时保留 /home 目录,使得开发者可以无缝继续工作,存储代码库、设置、个人工具和工作区自定义配置。此外,开发者可以在不重建整个工作区的情况下更新模板和镜像。

迁移过程中的挑战

迁移过程中,SSH 延迟和大文件传输(如 HTML 和 JavaScript)导致保存和重建过程变慢,因此部分工程师倾向于在本地笔记本电脑上处理前端任务,在远程机器上处理后端任务。

迁移实施

迁移的第一步是开发容器,包括安装必要的系统依赖、配置用户账户、设置权限和安装所需的软件。团队通过访谈、收集早期反馈以及亲自测试环境来支持这一过程。为了推动全公司的采用,开发者体验团队从不同部门寻找“倡导者”,并与他们合作识别和解决问题、进行构建工具基准测试和网络负载测试,以维护开发工作流程。

迁移后的挑战与改进

迁移后,工程师面临网络延迟和频繁断开连接的问题。为了减少延迟,DevEx 团队利用 Coder 的早期卫星功能在多个地区设置 Kubernetes 集群。此外,Stevens 强调了改进沟通和文档的重要性,尽管团队在全员会议中提前宣布了这一变化,并进行了全面的 beta 测试,但在这些方面仍有改进空间。

总结

通过这次迁移,Discord 的开发者体验团队成功地将开发环境统一到基于 Linux 的云端环境中,尽管面临一些挑战,但整体上提高了开发效率和一致性。这次迁移也强调了在技术变革中与开发者沟通和协作的重要性。

阅读 25
0 条评论