CI/CD对开发团队的重要性
- 软件开发是是一个复杂的工业化流程,编码只是其中的一部分,CI/CD 使得开发流程更加标准化、专业化、自动化和更加稳定,可以在开发过程中提早发现问题,从而提高开发效率,节省大量时间,一个好的CI/CD流程可以大大提高了软件的价值。CI/CD尤其对追求持续快速响应变化,持续迭代的敏捷开发中流程尤为重要。
CI/CD的技术选型
- 技术选型对于一个产品一个团队来说至关重要。对于敏捷团队的技术选型,往往不需要大而全的方案,更看重轻量高效,易于快速掌握,Drone刚好满足以上要求,轻量级易于掌握,又能满足各种需求。Drone原生于docker技术的,充分利用了docker的优势(如环境隔离、标准化镜像),轻量高效,非常适合docker技术栈(docker docker-compose swarm k8s),当然也可以用于传统的scp ssh拷贝源代码的方式。
- 如果你本身是一个开发人员,没有太多CI/CD工具经验,想快速构建一个CI/CD流程,那么Drone就是你不二的选择。如果你之前用过Travis CI,对docker技术有一定的了解,那么就能飞快入门。
Drone优势
流程定义简单
配置即为代码,用配置的方式简单明了定义流程,告别复杂的shell脚本。
- Drone采用主流的基于pipline的方式进行流程定义,易于理解
- Drone主要采用yaml作为流程描述方式(语言),简单明了易于阅读。对于复杂的配置可以采用另一种类似json的jsonent 配置方式来定义,好处是可以定义方法函数,易于复用。
部署简单
- Drone 部署简单,可以采用Docker部署的方式,只需要将官网提供的docker启动命令改几个参数,直接运行就启动起来了,整个配置过程只需要几分钟。
支持多环境
Drone适合在各种平台运行,如Linux x64、ARM、ARM64 Windows x64。同时 Drone 文件很小,对系统要求特别低,可以选择一个很便宜树莓派机子当服务器,甚至可以拿一台小米6来作为Drone服务器。
Drone支持各种多种主流的git源代码管理系统如 Github, Bitbucket, GitLab GitTea, Drone对各种源代码管理系统实现基本是一致的, 所以可以很容易的在各种源代码管理系统之间无痛迁移。
Drone可以用于任何编程语言、任何数据,任何服务,只要能在docker里跑的程序都能用Drone。
扩展性好
- Drone有大量的插件,虽然没法和 jienkens比但是绝对能满足你各种需求,最厉害的是他自定义插件非常容易,你可以快速构建自己的插件,一个插件实际就是一个docker镜像,并且构建插件并不依赖于开发语言,甚至可以用简单的shell脚本。
提供隔离的运行环境:
这个实际上是利用了docker的特性,在pipline的每一步都是运行在docker中的独立应用,给你完全的控制,不用考虑各种