Web开发

首页 » 常识 » 预防 » Heighliner带来堆栈即代码体验的
TUhjnbcbe - 2022/6/14 23:58:00

Helium3Tech最近推出了Heighliner,这是一个开源的云原生应用程序开发平台,使您能够将应用程序堆栈作为代码交付。开发人员可以将复杂的基础架构细节抽象为人类可读的配置文件,您可以实现版本控制、重用和共享。

以开发人员为中心,Heighliner提供了许多涵盖流行编程语言和框架的预配置堆栈。同时,它在后台使用Dagger,开发人员可以自定义其堆栈的各个方面。

InfoQ采访了Heighliner的创始团队成员WeiWang,解释了HeighlinerStack的概述和愿景。

InfoQ:您预见到应用程序开发和交付会遇到哪些挑战和痛点?Heightliner如何解决这些问题?

WeiWang:应用程序开发和交付是一个非常笼统的术语,几乎涵盖了软件工程的整个生命周期。Terraform通过其IaC(InfraasCode)方法在很大程度上解决了基础设施运维问题。然而,在云原生时代,开发人员在构建可扩展、弹性和安全的应用程序方面仍然面临着巨大的挑战。大多数开发团队都在努力构建自己的应用程序开发和交付系统,并将不同的工具转换为统一的层。

我们来看一下上图构建云原生应用时流行的技术栈的表格:

工具链使得它们很难组合起来,这往往是企业中的基础设施团队或SRE团队的责任,而架构师的高成本使得这些工具难以在中小型公司中实施。

Stack-as-Code是一个全新的定义,以简单的方式用代码描述完整的应用程序开发和交付工作流程。它包括应用程序定义、CI/CD、注册表、远程开发调试、日志记录、监控、警报和仪表板。只需几个简单的参数,就可以初始化一套完整的云原生开发和交付最佳实践。

InfoQ:如何理解Stack-as-Code的定义?

WeiWang:要理解Stack-as-Code,我们需要弄清楚Stack的定义。当我们初始化Stack时,它会创建我们上面描述的语言框架和完整的工具链,并将它们与预配置连接起来。堆栈完成初始化后,将设置用于开发和交付工作流的端到端工作流。

使用堆栈即代码,这些工具链被封装为Heighliner中的模块。考虑到可扩展性,Heighliner使用Google发明的CUE语言来定义这些模块。通过这种方式,可以以声明的方式组装和描述构建块,而无需考虑工具的具体细节。同时,很容易定制新的堆栈。

有关详细信息,请参阅堆栈示例。然后让我们深入研究如何使用Heighliner来声明这些工具并将这些工具与CUE链接:

scaffold:scaffoldfactory.#Instance{input:scaffoldfactory.#Input{......repository:[{name:"shop-backend"type:"backend"framework:"spring"ci:"github"registry:"github"},{name:"shop-frontend"type:"frontend"framework:"vue"ci:"github"registry:"github"},{name:"shop-deploy"type:"deploy"framework:"helm"},]addons:[{name:"prometheus"},{name:"loki"},{name:"nocalhost"},{name:"istio"},]}}cd:cdfactory.#Instance{input:cdfactory.#Input{provider:"argocd"......}}

在此示例中,它为Spring框架初始化一个后端存储库,为VUE框架初始化一个前端存储库,使用Helm部署两个服务。

此外,它还声明了应用程序使用GitHubAction作为CI,使用GithubPackages作为镜像注册表,使用Prometheus和Loki作为监控和日志系统,使用Nocalhost进行远程开发,使用Istio作为ServiceMesh。最后,它声明使用ArgoCD创建GitOps工作流。所有这些工具都可以以声明方式替换为任何其他工具。例如,您可以将GithubPackages替换为Harbor作为镜像注册表。

您无需考虑如何构建CI/CD流程或GitOps工作流程、如何创建监控指标和仪表板等细节。Stack将处理所有事情并为您实施。初始化完成后,您唯一需要做的就是编写业务代码。

InfoQ:HeighlinerStack与KubeVela有一些相似之处,InfoQ之前也采访过KubeVela团队。你能解释一下它们之间的区别和互操作性吗?

WeiWang:KubeVela建立在OAM之上,旨在简化跨混合、多云环境的应用程序部署和操作。HeighlinerStack拥有更广阔的视野,旨在解决开发者在应用开发、交付和运营方面的问题。它的核心是提供许多涵盖流行编程语言和框架的预配置堆栈。Heighliner不是KubeVela的替代品,用户可以使用KubeVela作为HeighlinerStack中的应用程序定义工具。

InfoQ:您能告诉我们HeighlinerStack的使命和愿景吗?

王伟:降低云原生开发者的门槛,为云原生应用开发提供易用性。

在Web开发的早期,LAMP显著降低了开发Web应用程序的门槛。如果将Kubernetes比作操作系统,云原生空间在应用层仍然缺乏SDK。HeighlinerStack为云原生操作系统中的所有应用层提供了一个SDK。开发人员可以在几分钟内启动云原生应用程序,而无需进行复杂的配置。

参考

1
查看完整版本: Heighliner带来堆栈即代码体验的