麻烦的 DevOps 工具链
在创造性的设计与敲代码工作以外,开发者常常还需要腾出精力处理许多确定性、重复性高的工作,DevOps 工具链的管理就是其中一项。
在软件研发生命周期的各个环节,工具的选型、打通、落地、维护都不是易事。
一站式 DevOps 平台
许多云厂商因此推出一站式 DevOps 平台,用大而全的解决方案节省研发团队在 DevOps 工具链管理事务上投入的资源。一站式平台确实带来了便利,但需要留意这种便利建立在让渡部分选择自由的基础上。站在全局视角,受限的选择权有时反而会损害研发效能。
随着软件工程复杂化,微服务架构被广泛采用。服务拆分成微服务,并由一个团队独立负责,每个服务都能灵活选择其架构,服务之间可能编程语言不同,部署方式和特点可能也不同。
此时,一站式 DevOps 平台就难以满足微服务架构下各团队对于灵活性的需求。
开源 DevOps 工具链
更符合微服务理念的 DevOps 工具链,应当允许各服务团队根据业务需要与开发者偏好,灵活选择最能为自己提效的工具;当团队考虑采用更优工具/实践时,可以低门槛地与现有工具链整合或替换现有工具,而不用被现有厂商绑定。
但搭建一条完整的工具链,投入应用并持续维护,前提条件是搞清每个环节的“最佳实践”。这不仅需要有足够人力支持,也需要工程师的经验非常丰富。
第三种选择?
我们既想要有开源 DevOps 工具链的灵活性,给开发者充分的工具选择自由;也想要有一站式 DevOps PaaS 服务的轻松便利,无须团队投入过多人力物力去研究,能够高效落地。
近期发布 0.1.0 版本的 DevStream 正是为了解决这个问题:解决开源 DevOps 工具落地的难点,搞定开源 DevOps 工具链之间打通的痛点,解放研发团队的生产力,让大家少在 DevOps 工具上踩坑,腾出更多的精力在自己的业务逻辑上。
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
Demo视频:https://www.bilibili.com/vide...
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 开发者沟通。