Heighliner:一款打造 Stack-as-Code 体验的开发者工具

1,633 阅读5分钟

file

云的发展趋势

今天云为大家开启了一个全新的时代:得益于种类越来越多、能力越来越强的云服务,一个纯开发者组成的团队也可以在任何领域快速上线一个有竞争力的产品。云服务已经像水电一样成为社会基础设施。在新冠疫情的笼罩下,全球企业更看到了云服务的巨大价值。

随之而来的是整个云原生社区也迅速发展壮大。云原生创新性地通过开源中立方式实现了云服务接口的标准化,帮助用户打破厂商绑定。从 Kubernetes 捐入 CNCF 起,到今天 CNCF 拥有上百个项目,云原生社区在为开发者提供了众多项目的同时,自身也在快速演进。时至今日,云原生不再局限于落地 Kubernetes,更是在全面打造软件开发周期的整套最佳实践。以下我们列举几个新兴趋势:

  • DevSecOps: 安全防护将继续作为 IT 管理人员和软件工程团队首要关注的话题。随着软件供应链的完善以及数据隐私的监管要求增加,安全性和合规性在软件开发生命周期的每一步都需要验证。
  • 云上开发: 过去开发者经常受困于本地机器资源不足、环境不一致、微服务依赖复杂等问题。今天,以 Nocalhost 为代表的云原生项目正在逐渐将开发环境转移到云上,开发者只需要本地有 IDE 就可以实现协作开发。
  • 可观测性: 受益于开放标准 OpenTelemetry,日志和指标的采集格式渐趋统一,软件的数字化开发得到了改善和增强。新兴的 Continuous Profiling 项目更是将故障排查和性能诊断带入了发生即可见的新阶段。而 eBPF 的崛起则是将可观测性直接做到了应用无侵入,全面释放了开发者效率。
  • GitOps: 随着云原生持续升温,CI/CD成为了人们讨论的焦点。GitOps就是云原生的一种持续交付模式:它将应用系统的声明性基础架构存放在Git仓库中,实现更好的版本和权限管控。最近 ArgoCD 的创始人出来创业 (akuity.io) 更是侧面反应了项目的火热和市场的认可。

开发者满意了吗?

面对云原生社区纷繁众多的项目选择,开发者的内心是复杂的:

  • 他们很喜欢也很想要使用上这些云原生项目。这样一来他们能够基于开放标准打造最佳实践,打造面向未来的应用架构。
  • 同时他们也很厌倦和疲惫。这些开源项目真要端到端搭建起来配置非常复杂。而且更新迭代太快,时间和精力都跟不上。

Heighliner 为开发者而生

开发者的时间是十分宝贵的。如果他们不能全身心投入到软件本身上,而是去反复折腾这些基础设施工具,那么终将给开发者和企业带来巨大的资源浪费。

今天,我们打造了一款名为 Heighliner 的开发者工具,它可以将整套 Application Stack 都代码化 (Stack as Code)。我们尝试通过 Heighliner 去告诉开发者:“你的云原生技术栈也可以像代码一样去管理。你值得拥有一个更好的使用体验。”我们这么说是因为:

  • Heighliner 从开发者视角将整套 Application Stack 定义出来,包括了代码仓库、应用框架、CI/CD、容器镜像、Helm Chart、监控面板、告警规则、云端开发配置等。
  • 我们为常见的开发语言提供了官方 stacks,用户可以一键拉起现代化的云原生开发环境。支持语言和框架包括 Go、Spring、Next.js、Vue.js、Remix 等。
  • 用户可以对 stack 的任何一个环节进行定制化。我们很高兴 Docker 创始人 Solomon 创立了 Dagger 项目,Dagger 大幅简化了开发 Heighliner Stack 的体验。我们支持使用 Dagger 来定制化 stack。除了 Dagger 官方的库,我们还额外提供了一整套针对云原生技术栈的库。 有了上面这些,开发者可以持续不断地享受云原生发展的各种趋势。这些趋势将会以开发者最熟悉的方式 -- 以代码库的形式来更新,从而帮助开发者持续演进整个应用架构。

快速上手

接下来我们将展示如何在2分钟内快速拉起一整套云原生开发环境。

第一步,安装 Heighliner 工具:

$ curl -L https://dl.h8r.io/hln/install.sh | sh

第二步,准备一个 Kubernetes 集群:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.0", GitCommit:"4ce5a8954017644c5420bae81d72b09b735c21f0", GitTreeState:"clean", BuildDate:"2022-05-03T13:46:05Z", GoVersion:"go1.18.1", Compiler:"gc", Platform:"darwin/arm64"}
Kustomize Version: v4.5.4
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5", GitCommit:"c285e781331a3785a7f436042c65c5641ce8a9e9", GitTreeState:"clean", BuildDate:"2022-03-24T22:10:16Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/arm64"}

第三步,一行命令拉起整套云原生最佳实践:

$ hln up hello-world -s sample -i

file

最终 Heighliner 会创建和发布你的应用:

file

Heighliner 会帮我们生成 Github repos、Helm Chart、CI/CD pipelines、域名路由、监控日志 dashboards、以及告警规则等。

file file file

全面拥抱社区

如今,Heighliner 的实现有了初步的成果,我们感到非常兴奋。如果你想要了解更多信息,点击查阅 heighliner.dev

同时,我们坚信开源社区会给我们带来巨大的长期价值。Heighliner 所有项目包括官方 stacks 都是基于 Apache license 的开源项目。此外,我们也贡献像 Dagger、Nocalhost 等开源项目。我们的目标是打造一个开放的社区和未来。

当然,任何开源社区的发展壮大都离不开最重要的一个因素 -- 作为开发者的你!如果你今天对 Heighliner、Dagger、Nocalhost 等云原生技术感兴趣,欢迎加入我们的微信群参与讨论和贡献:

file

也欢迎关注我们微信公众号:

file

本文由博客一文多发平台 OpenWrite 发布!