Blog

Blog

PHODAL

云端开发时:构建快速交付的开发体验

上个月,我与诸多同行们又讨论起了云 IDE 的事情。期间,我一直在想为什么云 IDE 不受开发者的欢迎?我回想了一下,为什么我不使用云 IDE?

  • 云 IDE 不智能。我使用的是 IDEA 全家桶。云 IDE 都是基于 VSCode / Eclipse Theia,重构功能不够强大。
  • 云 IDE 性能差。云 IDE 大量的智能感知、编程语言分析(LSP)依赖于远程机器,在这方面的性能受限于虚拟环境。

所以,我重新思考了一下,在云研发体系未落地之前,我们应该如何进行过渡。后来,在整理 DSL 想着的材料,联想到了在构建云研发架构时,定义的开发即部署。云端开发时,这大概就是我想要的答案,最初的灵感来源: Nocalhost。

它并非是一个新的概念,只是我做了一个总结。

云端开发时

云端开发时,将本地代码的运行环境放置于云端,代码修改能触发出预览版本/正式版本,即部署到关联的云开发环境上。

从本地 IDE 到云 IDE 是非常大的一步,直接跨越很容易扯淡。而云端开发时,则是在这个过程中重要的一步,用于构建稳定的云端开发时环境。它可以:

  1. 快速交付。加速开发、测试、联调、部署速度。
  2. 提供快速创新的机制。
  3. 渐进式地改变开发人员的体验。

它还可以:

  1. 消耗更多的服务器资源。
  2. 提升基础设施的复杂度。

但是,这是缺点了。

(PS:由于以下内容比较简单,外加最近东西写多了,手疼,我就快速过一下)

强力的弹性基础设施

对于一个以生产力作为卖点的工作,自然而然地,它需要一个强力的弹性基础设施。

服务器资源

基于现有的这种模式,每个开发人员需要多套独立的环境,它需要消耗一定的服务器资源。如果只是计算资源那倒是还好,但是,对于一些按实例付费的数据库是一个障碍。

不过,既然我们打算走向云开发的话,那么这个问题也不算是个问题。

快速稳定的网络

过去,我曾经在客户那使用过华为云桌面盒子,一种远程的虚拟桌面方案。因为要传输的数据量过大,所以极容易受限于网络。从实现机制上,我们只需要保持一个长连接,以传递少数的数据,如 Git patch,以这个量级的数据并不需要担心。但是,谁不想有更快地网络?

开发即部署

既然,我们的单人测试环境是开发环境,那么我们就需要支撑起:开发即部署。

动态路由分配

嗯,大家都懂的。但是从实践上呢,我们还需要添加一些路由机制与工具,才能让我们快速联调。

代码镜像

这个是个技术实施细节。

开发者体验优先

最后,回到开发者这边来,我们需要提供:

  • 应用模板。加快新应用创建速度,最好 5 分钟内可以使用。
  • 低配置环境。加快现有应用的迁移。

我本来应该制作一个相关的成熟度模型,但是最近躺平~~。

成熟的应用模板

嗯,就是模板对应的配置文件,与 Git 服务器一起使用不就很香?

低配置环境

其实,我是想说 DSL 的。

当然,最好是无需配置。

回想一下:过去的开发方式

过去,在我刚上高中的时候,申请了一个免费的服务器空间,可以简单地部署一些 PHP 应用。在这个时期,我们是怎么修改代码的呢?远程到机器上,直接修改,直接看到崩溃的页面。没有使用 Git,只能凭记忆回退。

后来,我会使用 Git,先在服务器上 commit 一把,重启服务。Nginx 404,继续回退,重启。

现在,简单了,崩溃,换个路由。

其它

相关实现:https://github.com/nocalhost/nocalhost


或许您还需要下面的文章:

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Developer, Consultant, Writer, Designer

ThoughtWorks 高级咨询师

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 与我沟通

标签

最近的一些事

  • 最近我和我的同事们,一起在创建一个新的编程语言:Charj 。它是一个使用 Rust 编写的描述式、中间编程语言。GitHub: https://github.com/datum-lang/datum

    Nov. 14, 2020, 9:27 p.m. | China