在创造性的设计与敲代码工作以外,开发者常常还需要腾出精力处理许多确定性、重复性高的工作,DevOps 工具链的管理就是其中一项。
在软件研发生命周期的各个环节,工具的选型、打通、落地、维护都不是易事。
许多云厂商因此推出一站式 DevOps 平台,用大而全的解决方案节省研发团队在 DevOps 工具链管理事务上投入的资源。一站式平台确实带来了便利,但这种便利往往建立在让渡部分选择自由的基础上。如果站在全局视角上,受限的选择权有时反而会损害研发效能。
随着软件工程复杂化,微服务架构被广泛采用。服务被拆分成微服务,并由一个团队独立负责,每个服务都能灵活选择其架构,服务之间可能编程语言不同,部署方式和特点可能也不同。
此时,一站式 DevOps 平台就难以满足微服务架构下各团队对于灵活性的需求。
更符合微服务理念的 DevOps 工具链,应当允许各服务团队根据业务需要与开发者偏好,灵活选择最能为自己提效的工具;当团队考虑采用更优工具/实践时,可以低门槛地与现有工具链整合或替换现有工具,而不用被现有厂商绑定。
但搭建一条完整的工具链,投入应用并持续维护,前提条件是搞清每个环节的“最佳实践”。这不仅需要有足够人力支持,也需要工程师的经验非常丰富。
开发者既想要开源 DevOps 工具链的灵活性,有充分的工具选择自由;也想要一站式 DevOps PaaS 服务的轻松便利,无须团队投入过多人力物力去研究,能够高效落地。
近期开源并发布 0.1.0 版本的 DevStream 正是为了解决上述问题:解决开源 DevOps 工具落地的难点,搞定开源 DevOps 工具链之间打通的痛点,解放研发团队的生产力,让大家少在 DevOps 工具上踩坑,腾出更多的精力在自己的业务逻辑上。
项目 GitHub 链接:https://github.com/merico-dev/stream
DevStream v0.1.0 目前能干什么?
简单而言,DevStream 是一款解决 DevOps 工具链管理问题的开源工具。只需用一个简单的配置文件,就可以将 DevOps 全生命周期各个环节的主流开源工具管理起来,包括这些工具的快速安装部署、最佳实践配置、工具间的打通等等。
目前的 v0.1.0 版本能够做到:
缺陷、需求管理 - Trello (集成 GitHub)
源码管理 - Golang 脚手架生成
CI 流程 - Golang、Python、Nodejs
CD/GitOps - ArgoCD / ArgoCD App
Monitoring - kube-prometheus
DevStream 的未来规划
DevStream 的愿景是实现 “DevOps toolchain as code”,届时整个 DevOps 工具链都将以 DevStream 作为唯一入口来运维,dtm (DevStream 命令行工具)将成为 DevOps 工具链的 “single source of truth”。当开发者需要替换工具链的某一个环节,用几行代码就可以搞定。
DevStream 目前已经部分实现 “single source of truth”,部署好的工具发生的部分变更已经能够被 dtm 感知到,并且 dtm 会判断这种变更是否合理,是否需要修复,进而采取相应的动作让整个 DevOps 工具链变得更可靠。
如何参与社区
DevStream 的发展离不开社区用户的支持,DevStream 欢迎所有人参与社区建设,一起完善 dtm 的功能,让 dtm 越来越强大。
你可以在 GitHub 上找到 merico-dev/stream 项目,README 里有更加详细的介绍,欢迎大家下载、体验、捉虫、提 Issue、挑刺、bugfix 等等。
如果你有任何建议或疑问,Discord 或 点击merico-dev/stream->Readme->DevStream 用户群,与 DevStream 开发者沟通。
评论