-
DevOps 工具链
-
版本控制
- IDE
- 任务管理
- 依赖管理和构建工具
- 中央仓库
- 代码质量分析
- 持续集成与持续交付
- 自动化配置管理
- 自动化测试
-
单元测试
* 行为驱动开发测试 (BDD Test)
* 服务测试
* Web UI测试
* 压力测试- 日志采集分析
- 应用监控
- DevOps dashboard
- 容器化
- 容器云(集群)
- 公有云平台
- 国内镜像
- Linux版本
- 虚拟化
-
持续更新中,欢迎补充!
-
其它资源
DevOps 工具链
DevOps工具链思维导图:
版本控制
推荐使用基于Git的版本控制系统,比如GitLab , GitHub 和 BitBucket。
这些基于Git的版本控制系统,除了有Git的功能之外,还提供了Protect branch,Merge Request/Pull request, Code Review,和其他DevOps工具集成等增值功能。
GitLab有开源的社区版GitLab CE,是目前小团队自建Git版本控制系统的主流选择。
GitHub Enterprise功能更为强大,但是是收费的。
IDE
对Java开发来说,推荐使用Intellij Idea和Eclipse。
Intellij Idea有免费的社区版,是目前使用最广泛的Java IDE。
任务管理
最好用的任务管理是JIRA, 提供了Agile Dashboard、Agile工作流等功能来支持敏捷开发。
小团队可以选择免费的任务管理系统,比如Redmine。
依赖管理和构建工具
对Java开发来说,Maven和Gradle是使用最为广泛的依赖管理和构建工具。
中央仓库
Nexus是使用最为广泛的中央仓库, Nexus + Maven 是黄金搭档。
小团队可以选择免费的Nexus OSS Repository。
代码质量分析
SonarQube 集成了代码静态分析,代码风格检查和代码测试覆盖率检查。
Jenkins + SonarSanner + SonarQube 可以在持续集成中对代码进行静态分析。
另外也可以在IDE中使用SonarLint, PWD, FindBugs和Checkstyle来作代码静态分析。
持续集成与持续交付
Jenkins是使用最为广泛的持续集成(CI) 和持续交付(CD) 工具。
CI/CD工具是DevOps工具链的核心,Jenkins Pipeline是核心中的核心。
另一个选择是TeamCity,不过是收费的。
自动化配置管理
Ansible 是一款著名的自动化配置管理工具。
Jenkins + Ansible可以用来做持续部署。
其他的选择还包括Puppet, Chef和SaltStack。
自动化测试
单元测试
对Java开发来说,JUnit是最著名的单元测试框架,另外一个是TestNG。
Jacoco可以用来检查单元测试覆盖率。
行为驱动开发测试 (BDD Test)
对Java开发来说,Cucumber 是一个著名的BDD Test框架。
服务测试
PostMan 是一款免费且功能强大的API测试工具。
Jenkins + NewMan + PostMan 可以用来做自动化API测试。
Web UI测试
Selenium 是著名的自动化UI测试框架,配合无头浏览器来使用。
压力测试
JMeter是一款开源的压力测试工具。
日志采集分析
主流的日志采集分析框架有ELK和EFK。
- Elasticsearch
- Logstash
- Flutentd
- Kibana
应用监控
应用监控框架包括:
- Zabbix
- Nagios
- Prometheus
DevOps dashboard
Grafana 是一款开源的可视化面板框架。
可以使用Grfana结合调用其它DevOps工具的API来实现一个定制的DevOps dashboard。
CapitalOne 银行有一个开源的DevOps dashboard实现:Hygieia
容器化
Docker 是使用最广泛的容器化技术。
使用Docker Compose可以避免在docker run 后面加上长长的参数列表,通过docker-compose.yaml 配置文件来配置运行参数,也可以组合几个容器在一个docker-compose.yaml中。
除了使用官方的Docker private registry,也可以用Harbor来搭建Docker私有镜像仓库。
容器云(集群)
Kubernetes (简称k8s)是使用最为广泛的容器编排技术。
Kubernetes提供了Dashboard来通过界面对服务和容器进行操作。
公有云平台
常用的公有云平台包括:
- AWS 亚马逊云
- Azure 微软云
- 阿里云
- 腾讯云
- 华为云
公有云平台也有提供DevOps接入服务。
国内镜像
Yum源、Docker镜像、Maven中央仓库等都有对应的国内镜像,详情请搜索。
Linux版本
Linux 64位 版本。
推荐使用 Ubuntu 16.0.4 及以上,或CentOS 7及以上版本。
虚拟化
可以使用VMware或Virtual Box在本机搭建测试环境,比如在Windows电脑上通过VMWare worksation安装Linux CentOS7,比如在Mac Book上通过VMware fusion安装Linux Ubuntu等。
持续更新中,欢迎补充!
本文介绍的DevOps 工具链大部分是作者亲自使用过,并在企业DevOps实践中使用过。
部分工具是FYI,需要读者自己去了解。
其它资源
- DevOps Bookmarks 是一个专门收集DevOps工具和框架的网站
- Dev-ops tools by Richard Kraaijenhagen 也是一个专门收集DevOps工具的网站
- 高效运维社区整理的DevOps工具链 是目前主流使用的开源DevOps工具链