EazyBuilder是一套完整的云原生架构下DevOps平台工程。
首先,EazyBuilder是一个事件驱动的编排引擎,基于 Kubernetes 自主设计、研发的开源分布式DevOps平台产品,它降低了持续交付流水线的复杂度;具备灵活易用,安全可靠的流水线、健全的变更管理体系,全链路的双向可追溯,小巧智能的审批流,云原生的 IDE 插件,它将云原生应用中的各种操作联系起来,提供插拔式对接,并将过程数据度量化、客观精确的效能洞察,为企业提供统一的DevOps协作平面,让其更加轻松便捷的管理云原生基础架构上的应用,落地DevOps文化,从而更高效地开发和发布高质量的,安全的软件。
其次,EazyBuilder提供了整合云原生架构下DevOps工具链的能力,提供众多云原生工具平台的外置插件,支持用户通过插件配置,自由组合,即可实现将自己正在使用的工具平台,整合成一个完整的DevOps平台。让用户能更加容易获得云厂商在计算、存储、网络上的技术基础能力,能让使用云的成本更低。
EazyBuilder并不是一套DevOps工具链组合包,也不是一套快速启动DevOps工具的脚本命令,EazyBuilder关注的是DevOps各个工具之间的串联,例如:向Gitlab代码仓库提交代码,触发Jenkins自动构建的流水线,EazyBuilder提供的是Gitlab与Jenkins之间的耦合剂,用户将自己已有的Jenkins Url,Gitlab Url,装配进EazyBuilder,就可以实现两个工具之间的串联。EazyBuilder要做的,是帮助用户将交付过程中的所有操作,都绑定到一个一致的自助服务体验中,而不是让每个人什么操作都做,并不需要操作者了解整个DevOps工具链。
综上,EazyBuilder的目标是解决用户在云原生架构下整合DevOps平台时,外部工具与已有工具平台的平衡问题。通过云原生技术的运用和整合,打造极致简约、高效易用的云原生工作平台,规范开发流程,简化开发难度,提高开发效率,增强代码质量, 支撑软件开发整个生命周期(开发,单元测试,集成测试,文档,生产发布,配置等), 提供完整的云原生开发生态环境和生态体系,让企业快速拥抱云原生,提升研发效能,进而反哺云原生市场。
事件驱动,支持通配符,对不同的代码分支,配置不同的事件类型,触发不同的流水线。操作步骤简单,无需熟悉流水线脚本语法,可视化编排,快速创建高效流水线;不依赖于三方工具,使用模块化设计,解决流水线共享复用问题。基于角色提供细粒度的访问控制、单点登录和审计功能,记录每个用户的操作内容,流水线变更历史,满足用户的安全需求。内置丰富预警手段,对流水线状况进行全方位监控,主动发送异常日志,通过数据驱动流水线持续改进。
分钟级环境复制,提供开箱即用的云原生插件,例如:redis,mongodb,rabbitmq,mysql。使用标准k8s yaml管理基础中间件,易于扩展,使用便捷。
内置了sonarqube,jmeter,liqiubase等质量管控工具,以安全为准绳,将安全检测(代码审查、分析、测试等)移动到软件开发生命周期早期阶段,从而更高效地开发和发布高质量的,安全的软件。
EazyBuilder从需求创建,代码开发,自动化测试,到最终的上线部署,设置了丰富的埋点,可在研发全生命周期任何一个环节,做到双向可追溯,整合了云原生开发中的海量消息,避免了信息孤岛。
EazyBuilder采用四横两纵的维度,分别从产品,研发,测试,部署维度,以及研发人员,项目管理人员的维度,提供精准客观全面的效能度量数据,满足不同角色不同的管理要求,精准分析研发效能短板,促进稳步提升。
开发者无需平台切换,在 IDE 中即可获得 EazyBuilder 产品核心能力。编写代码后,即可实现代码质量扫描,自动编译打包,一键热部署到自测环境,快速完成自测、联调和集成验证,开发效率倍增。
Docker版本: 1.13.0+
EazyBuilder镜像已经发布至Docker Hub; 可以直接使用EazyBuilder官方镜像
自主构建镜像
生成镜像:docker-compose build
启动应用
docker-compose up -d
使用默认编排文件:dockercompose/docker-compose.yml
访问http://localhost/console/index.html 即可
参照详情教程进行安装:k8s/README.md
构建机器
EazyBuilder中流水线执行,依耐于jenkins,需要提前在jenkins中初始化构建环境,详情可以参照jenkins dockerfile
欢迎贡献者加入 EazyBuilder 项目。请查看CONTRIBUTING以了解如何为这个项目做出贡献。
EazyBuilder 旨在解决快速简便的创建CI流水线。因此,该项目将实施或已经实施:
EazyBuilder 将在云原生环境中与其他工具一起使用。因此,将不包含以下特定功能:
-「欢迎大家关注eazybuilder,在使用中遇到问题,可以加群讨论」
每个版本的最新文档可在以下位置找到:
请参阅许可证以获取更多信息。
我们遵循CNCF行为准则.
后端使用freemark模板,将每种构建,固化成模板,前端使用开关项,用户自己选择构建内容,录入关键信息,后端将数据填充进模板后,生成完成的jenkins pipeline脚本,调用jenkins api,执行流水线
将固定的配置,全部抽象出来,让用户只需要录入代码仓库地址,就能自动创建一条流水线
流水线被修改后,后台进行记录,存储进历史表,可以对比任意两个版本的流水线差异,可以指定流水线回滚到任意版本
使用kubectl+kubeconfig的方式,平台集成kubectl,用户可以在每条流水线中,指定不同的kubeconfig文件,在流水线中使用kubectl --kubeconfig的方式管理k8s集群,以此实现k8s的跨集群,跨环境管理
平台集成jmeter插件,用户在构建开关中,打开“自动化测试”的开关,并指定自动化测试脚本所在的目录位置,流水线直接执行jmeter命令,运行自动化测试
使用Jenkins Kubernetes Agent插件,流水线运行时,自动在k8s集群创建一个pod,流水线运行完毕,自动删除pod
用户自定义事件,例如:代码提交,代码合并。每一类事件,让用户选择不通的流水线,这样可以对不同的项目工程,不同环境,制定不同的流水线
对接nacos api,用户把配置文件也放在代码仓库后,配置文件变更后,触发对应的流水线,在流水线中调用nacos,更新nacos中的配置文件
对接liqiubase,使用liqiubase作为sql管理平台
集成ldap功能,可以使用ldap用户登录
用户在系统中配置门禁的阈值,例如:BUG阻断不大于5;提交代码后,在流水线中执行代码质量扫描,收集sonarqube的扫描结果,与系统设置的质量阈值做判断,不符合,就将流水线至为失败,中止后续的流程
对接gilab api,当项目工程代码符合质量门禁时,自动创建合并请求,自动合并到集成分支
在gitlab中设置钩子,校验提交代码的注释,在注释中,必须包含合法的任务id,不符合规范,则禁止提交代码
设计一个预警配置页面,允许用户自己订阅消息类型,例如:代码提交/合并,流水线成功/失败;消息发送形式,可以采用钉钉,邮件,微信
设计一个红灯修复开关,用户可以在流水线中打开,并且配置预警的时间间隔,次数,如果流水线失败,就发送红灯修复预警,这样可以让开发人员关注一些高危流水线,及时修复开发集成问题
对不同环境的流水线,做权限控制,设计审批流,审批完成后,自动做制品晋级,测试/生产环境部署
对接钉钉审批流,涉及到审批的功能,都由钉钉来做审批
集成Grafana,将平台的过程数据,制作Grafana报表,不同的角色,可以看到不同的度量报表
发布IDE插件,开发人员可以在本地运行插件,一键部署自测环境
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。