项目背景
我的项目是一个外包给中国团队的独立网站开发项目。整个工作团队相当全球化,网站开发项目是通过世界各地的合作完成的。
项目结构
相对于复杂的项目背景,项目结构相对简单。它由三个独立的服务组成:
- WordPress:为编辑启用,作为内容管理的后台,允许他们发布文章并访问其他内容
- 数据库:一个 MySQL 数据库。两种服务都将访问同一个数据库,其中 WordPress 写入其中,而官方网站读取
- 独立官方网站:显示内容。我们没有使用 WordPress 模板,因为有很多自定义。本站采用Java自主开发(Spring Boot + Thymeleaf)
原有的发展规划和战略
由于我们是通过电子邮件进行交流,因此申请测试服务器的过程会花费太多时间。因此,我在申请访问测试数据后开始开发项目。现在我的部分已经完成,正在联调验收中,我需要:
- 申请测试服务器
- 配置测试服务器环境
- 安装 Jenkins 并配置其部署信息
- 部署本地项目并通过电子邮件发送PM进行验收
- 根据反馈进行更改,然后……循环上一个过程。
云开发的一些初步尝试
如果没有分站任务,一切都会及时进行。火车出发前 40 分钟坐在肯德基,一连串的问题让我很困惑:我现在不能编码,因为我需要为新的 MacBook 下载很多程序,配置开发环境等,最重要的是——我们可以期望那里的互联网速度有多快?我什至没有那么多时间等待!
我想到了云原生和远程协作开发。正如我所说的,尽管云开发是未来的趋势,但我并不想改变我原来的工作方式,对它的简单理解是我的全部。我第一次听说 TeamCode 的产品是在几周前的一次聚会上。由于当时没有更好的主意,我决定在去北京的路上试一试。那能有多糟糕?
我将解释我用它做了什么,以及它最终如何帮助我及时完成所有麻烦的任务:
我打开我的 MacBook,连接到我的热点。还有旧流程,我用谷歌搜索TeamCode,创建一个帐户并登录。让我惊讶的是部署过程:将我的 Git 仓库授权到 Pylon 后,5 秒内就创建了 Java 开发环境!
我选择的配置是默认的 2 个 vCPU 和 4G RAM,或多或少是一个虚拟 Linux 机。然后,我拉下了代码。
也许 Pylon 检测到我正在使用 Java 处理我的项目,因此默认安装了 Git 和 Maven。它同时支持 VSCode 和内置的 Cloud-IDE。由于所有基本服务和样式都已开发完成,因此只剩下一些调整和调试。我跳过下载另一个 IDE 并直接在其 Cloud-IDE 上工作。
当我发现在开始一切之前我需要构造 mvn install 时,我又开始担心了。根据我之前的经验,下载所有这些依赖项可能需要超过 20 分钟,我的热点可能无法支持它。直到那时,我才意识到……嘿,这不是远程机器吗?它应该基于服务器的互联网和算法能力,我不应该担心它。开始下载依赖项后,我收拾好我的 MacBook 并开始上火车。尽管当我坐到座位上时它已按预期设置,但看到一切准备就绪仍然令人兴奋。
现在我在高铁上苦干了2个小时后调试完成,还有一个问题让我很困惑:不申请服务器更不用说部署Jenkins,我应该如何将项目发送给PM进行检查?
为寻找最佳解决方案而费解,我真的很感激TeamCode 的文档无疑是有帮助的!我尝试使用 Tin(TeamCode 提供的另一种云解决方案)来启动应用程序,而我购买测试服务器和部署任务的困惑一眨眼就解决了。
Tin 基本上是一个打包应用程序的产品,所以它真的很有帮助,因为 PM 只对结果感兴趣,而不对代码感兴趣。我再次将我的代码上传到 Git 存储库并为 PM 创建了一个 Tin。
在我对 Tin 进行了快速检查后,我发送了一个邀请链接以加入我的工作区。现在可以通过单击 Tin 上的端点访问该项目。如果有任何变化,它甚至可以升级以进行快速部署。给总理发邮件后,距离北京还有一段时间。
一些插曲
第一天晚上一切顺利:PM 能够通过 Tin 检查项目。他确实提出了一些问题,并且都通过 Cloud-IDE + Pylon 解决了。来回发了几封邮件,检查基本就搞定了。
经过一天漫长的工作,当我在地铁上返回上海时,我们遇到了另一个错误。页面中的JS方法之一与整体方法冲突,无法打开页面!距离正式发布还有一个小时,我没有办法在地铁上编码。如果整个项目不得不推迟,每个人都需要加班,只是因为我,我非常内疚。
在这种极度绝望的情况下,我试图询问前端程序员是否可以提供帮助。我向他发送了一个邀请链接,并“强迫”他加入我的工作区以帮助修改代码。在承认不需要环境部署、构建和所有那些麻烦的任务之后,他终于同意提供帮助——而且我还给了我一顿大餐。我们通过电话沟通,指导他如何使用 Pylon 和 Cloud-IDE。
由于他的快速周转,一切都在 10 分钟内完成。该应用程序在 Tin 上更新,PM 对其进行了检查,然后……呼,该网站按时顺利启动。
笔记
这些事件确实让我对移动中的云协作有了第一手的体验。我真的很感激一切都按时完成,周末不需要工作。这个机会真的改变了我,让我在碎片化的时间里获得了很好的开发和检查经验。
根据我的经验,我猜想使用TeamCode进行云开发会在以下情况下有所帮助:
- 灵活的发展态势。如果您在计算机和工作环境之间切换,Cloud-IDE + Pylon 会很有帮助。由于资源都在云上,不需要环境部署,云开发可以相当灵活。
- 快速打包和部署。Tin 将有助于诸如检查、演示演示、技术交流、快速 POC 等情况。它使我们能够方便地向他人展示我们的项目。
- 团队协作。比如你的队友可以直接在项目上调试,不用担心时间和地域的差异。每个人都可以根据自己在 TeamCode 上的节奏使用该服务,因为大多数服务都是自动化的。