DevOps 正在改变全球软件开发的状态,DevOps 正以某种形式有效地提高提高全球软件公司的上市速度、可销售性、创新和产品质量。
2021 年是 DevOps 的重要一年。由于 DevOps 跨越开发、运营、IT、安全和产品团队等等,以及软件开发的不同阶段,因此有大量工具可供选择。
本文介绍目前市场上可用的一些顶级 DevOps 工具,同时牢记 CI/CD 生命周期的重要类别。上篇为配置管理、构建、源代码、部署工具,本篇主要是漏洞管理、质量、监控、协作工具。
网络威胁及漏洞管理
TwistLock
对基于容器的应用程序来说,TwistLock 提供了威胁和漏洞。该服务以其与 Kubernetes 和 Docker 容器的集成而闻名。TwistLock 现在归 Palo Alto Networks 所有,通过其运行时应用安全保护和容器自动扫描进行安全检查。
TwistLock 有一个强大的文档,它易于部署并强制优化资源消耗。它还以其 CI/CD 管道集成、对容器安全协议的强合规性和图像扫描而闻名。
TwistLock 还以其精细的安全分析而闻名。该服务还用 AI 功能来了解环境,尽管有些公司已经发现,它自动触发的 cron 作业非常令人困惑。
他们还提供基于 SaaS 的安全扫描(prisma 云)和本地解决方案。
Sysdig
Sysdig 是一种用于云基础架构、服务和应用程序的监控工具。Sysdig 通常用于对PaaS基础设施进行容器安全确认、监控及监控安排。
Sysdig 还可用于监控 OpenShift 集群,因为它提供粒度数据来分析指标。
使 Sysdig 脱颖而出的是其容器监控与编排层的强大集成。
如果你想深入了解进程网络流量,Sysdig 也很有用。Sysdig Opensource 允许在内核系统调用级别权限以获取主机的详细信息。捕获信息过程也可以通过 DaemonSet 或直接代理过程自动部署为 Docker 容器。
Anchore
Anchore 是一个完整的容器安全工作流解决方案,可与各种开发工具和平台无缝集成。Anchore 为一系列不同的应用程序提供定制的容器检查和合规性解决方案,使团队能够符合行业安全标准。
安全团队可以审计和验证整个组织的合规性。
功能包括:
支持webhook,包括云托管或本地 Kubernetes 环境和 CI/CD 平台
基于策略的安全性和合规性
检查:
- 漏洞扫描
- 秘密和密码
- 操作系统包
- 第三方资料库检查等
质量/测试
JMeter
JMeter 是一种用于测试 Web 应用程序的负载测试工具。即使 JMeter 用于负载/性能测试,它仍然可以用于启动 API 调用、状态代码和响应。JMeter 还支持很多插件。
还可以使用 JMeter 的并发线程池大小这个特征,在测试期间为每个线程启动多个连接。
JMeter 是独立于平台的,可以在不同环境下流畅运行。
可通过多种方式查看测试结果,包括图形、图表、树视图、XML 和 JSON。
JUnit
JUnit 是一个单元测试框架,主要用于 Java 应用程序。JUnit 框架属于 Java 框架的 xUnit 家族。
JUnit 使用注解来确定在测试中应该使用什么方法。其测试运行器功能也因其自定义功能而在开发者社区中享有盛誉。你还可以在 JUnit 中使用断言来测试预期结果。
在 JUnit 中,你可以在多个参数之间使用不同的组合。为整个应用程序创建、管理丰富的单元测试用例套件,在 JUnit 的帮助下变得非常容易。JUnit 还可以在模块或系统级测试之前自动测试应用程序的所有功能及单元。
Selenium
Selenium 是一个端到端的测试软件测试平台,以其用户友好的用户界面而闻名,它允许测试人员模拟 Web 系统行为、发送 API 请求并分析系统行为。
Selenium 允许使用 RUBY 或 HTML 编写复杂和高级的测试脚本,以解决多个级别的复杂性。
Selenium 为 Web 应用程序开发人员提供了一个完整的 IDE,用于编辑、记录和调试测试。可以为多个测试用例设置自定义的起点和断点。
Selenium 的其他一些主要特性包括:
与多个开发平台集成,如 Jenkins、Maven、TestNG、QMetry、SauceLabs
使用 Selenium Grid 进行并行测试
兼容所有著名语言,包括 Java、Ruby、C#、PHP、JavaScript、Perl 和 R
ZTF
目前市面上的自动化测试框架主要分为单元测试框架和某种领域的自动化测试框架,这些框架往往与各个语言绑定,需要将这些自动化测试框架的测试脚本统一管理起来,ZTF自动化测试框架由此被开发出来。ZTF聚焦于自动化测试的管理功能,提供了自动化测试脚本的定义、管理、驱动、执行结果的回传、Bug的创建以及和其他自动化测框架的集成。
ZTF解决如下问题:
用例信息的管理
测试脚本的执行
测试结果的比对
缺陷Bug的提交
ZTF具有语法简单、跨平台、跨语言、跨框架、工程化、跨场景的特点,可很好地驱动8种单元测试框架、5种自动化测试框架来执行测试,并把最终结果回传给禅道,进行统一的报告展示,打通了项目管理和持续集成工具之间的沟壑,贯穿持续集成、持续测试、持续部署等DevOps生命周期的不同阶段。
SonarQube
SonarQube 是一个开源工具,用于代码质量、持续检查、安全和错误分析。它适用于 Java、Python、XML 和 PHP 以及许多开箱即用的语言。该工具可以通过 XPath 表达式动态添加规则,还可以自定义该工具以强制执行某些应该忽略异常的情况。
SonarQube 主要用于静态分析。它与 GitLab 有很好的集成。SonarQube 的仪表板和高级跟踪,让你可以对代码质量和检查进行大量控制。
SonarQube缺点:
和 JavaScript 的配合不太顺利
有时速度慢
对第三方工具和插件的支持有限
记录和监控
Grafana
Grafana
是一种基于 Apache 2.0 许可证构建的开源分析和监控解决方案,以其出色的 UI、图形、图表、实时分析和触发器而闻名。Grafana
可以从多个来源提取数据,包括 Graphite、InfluxDB、OpenTSDB 和 Prometheus。
Grafana 主要用于监控 Docker 容器、网络设备、带宽、数据流、虚拟服务器、Azure 基础设施、数据库和 Web 应用程序。Grifana 还以其插件以及与 Telegraf 和 Zabbix 的无缝集成而闻名。
Grafana 可以将粒度数据可视化,包括中断的确切时间、中断前的事件、用户日志、数据中心温度和性能预测等指标。
New Relic
New Relic 是一个全栈监控工具,用于跟踪基于云的应用程序和软件。New Relic 提供丰富的仪表板、分布式跟踪支持、详细日志、自上而下的可见性和监控。New Relic 对后端调用具有强大的监控能力,可以详细说明系统速度变慢的原因。
该工具对于需要详细分析多个堆栈配置文件的公司非常有用。
New Relic 价格昂贵,但该公司最近制定了基于消费的定价模型。
New Relic 的一些缺点包括:
客户支持较弱
即使在基于消费的定价模型之后也很昂贵
调试复杂困难
Nagios
Nagios 是一个开源软件,可以监控系统、网络和基础设施。它主动监控服务的健康状况并维护日志存储文件。它还显示停机原因、停机持续时间以及可能触发停机的事件。
Nagios 还提供了几个配置选项和警报功能。你可以抑制主机的警报、在主机上强制实施维护模式、自定义警报的通知设置等等。
Nagios 支持数百个插件。你还可以创建自己的自定义并开发自己的插件支持。
但是,由于 Nagios 相对较旧,因此很难使用最新的基础架构进行操作。它缺乏数据库驱动的配置并强制你使用配置文件。
ITSM 和协作
ZenTao
禅道是一款开源的研发项目管理软件,基于敏捷和CMMI管理理念进行设计,完整地覆盖了项目管理的核心流程。集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,支持产品端到端的全生命周期管理。
禅道管理思想注重实效,功能完备丰富,操作简洁高效,搜索功能强大,统计报表丰富多样,软件架构合理,扩展灵活。
禅道还实现了Jenkins与Gitlab的集成,更好地支持DevOps的CI和CD周期。
Slack
Slack 是协作和通信工具,最近广受欢迎。Slack 以其实时对话、搜索功能和友好的用户界面而闻名。
由于其强大的用户界面、有趣的功能和敏捷性,Slack 正在迅速取代软件行业的电子邮件。
还可以使用编程为 Slack 制作自定义聊天机器人、基础设施例程和触发器。
Microsoft Teams
Microsoft
Teams 是一种通信和协作工具。它对在 Windows 生态系统中工作的公司很有用。除了即时消息服务之外,Teams 也很有用,因为它与
Azure DevOps 平台集成。你还可以将你的团队与 Azure Repos 和 Azure Pipelines 连接起来。
团队提供不同的渠道,团队可以在其中相互协作。这将创建一个特定于项目的通信存储库,你可以随时搜索它。
其他功能包括:
文件回收
电话/视频会议
聊天机器人集成
Office 365 集成
众多的可用工具可能令人望而生畏,但选择本身是一件好事。缺乏标准化和自动化可能会在入职或交接过程中产生极高的学习曲线。选择原则是不要投资于相似、重叠的工具而浪费时间和财务资源。