Dark 在 9 月份发布了内部测试版,旨在通过减低复杂性来简化后端开发。Dark 是一种编程语言,提供了一个集成编辑器,用于开发后端应用程序。
Dark 主要关注四个基础设施问题:HTTP 端点、数据存储、后台工作进程和作业调度。Dark 可以实现、托管和自动伸缩基础设施,为开发人员抽离基础设施的配置和实现。
开发人员可以在 Dark 的结构化编辑器中编写应用程序代码,Dark 已经与编辑器紧密集成在一起了。因此,Dark 的自动完成功能可以识别整个应用程序的变动。开发者可以在编辑器中实时查看用户请求。代码变更可以被立即部署,然后使用功能开关启用这些变更,从而在保持部署安全性的同时消除了对部署管道的依赖。
InfoQ 采访了 Dark 的联合创始人 Ellen Chisa,了解了更多有关 Dark 的理念和设计。
InfoQ:有关 Dark 的想法是如何产生的,是什么促使你创办了这家公司?
Ellen Chisa:另一位联合创始人 Paul 和我因为不同的原因进入到这个领域。在从事了多年的软件相关工作(包括获得一个编译器方面的博士学位和创办 CircleCI)之后,Paul 仍然觉得开发后端应用程序需要编写大量相似的样板代码,并一次又一次地创建相同的工具链。而我曾经在消费品公司工作,我看到了太多的案例,基础设施和工具导致我们无法像希望的那样快速有效地将应用程序交付给客户。
InfoQ:在说到 Dark 试图要解决的问题时,你提到了 Frederick P. Brooks 的“意外复杂性”这个概念。那么,Dark 要解决哪些与软件意外复杂性有关的问题呢?
Ellen Chisa:意外复杂性最初用来指代与在计算机上运行代码相关的任务(比如内存管理)。当时,Brooks 认为我们不可能把事情做得更好,因为大多数任务都不是偶然性的。今天,随着云计算和分布式系统的发展,开发人员将大量时间花在与系统相关的任务上,而不是花在业务逻辑上——基础设施、部署、API 重试逻辑、开发/生产对等、依赖关系管理,等等。Dark 的目标就是要降低这些复杂性。
InfoQ: Dark 在开发环境和数据库方面使用了大量的功能。请告诉我更多有关这个设计的决策,以及为什么它是 Dark 的一个非常重要的特性。
Ellen Chisa:功能开关是现代软件开发的一种最佳实践,也是我们软件发布方式一个重大转变。过去,我们通过部署来决定用户在什么时候得到什么版本的软件。有了功能开关之后,我们就有了更多的细粒度的控制权。我们可以为一个测试组或一组特定的用户提供某些功能。通过添加功能开关,部署就变成了意外的复杂性,与交付无关。功能开关是 Dark 最基本的组成部分,既可以作为交付方式的一部分,也可以作为团队协作方式的一部分。
InfoQ:Dark 如何在为用户提供足够的控制能力和应用程序可观察性的同时消除复杂性?
Ellen Chisa:在考虑 Dark 的开发体验时,我们想到的是开发人员在进行开发工作时最核心的东西,以及它对他们要交付的软件将产生哪些潜在影响。例如,一致性或可用性对于某个服务是否重要。我们还根据 Dark 用户的反馈来安排优先级。
Dark 发布了内部测试版,对于可控的项目和刚要启动的项目可以考虑使用 Dark。要申请使用内部测试版或了解更多相关信息,可以访问 Dark 的官方网站。
原文链接:
Minimizing Backend Complexity With Dark
评论