软件|顶级 DevOps 工具链大盘点( 二 )


Subversion
Apache Subversion 是一种软件版本控制系统 , 采用了 Apache 开发源码许可 。 软件开发人员使用 Subversion 来维护文件的当前和历史版本 , 例如源代码、Web 页面和文档 。
构建工具
为什么构建工具对 DevOps 来说很重要?

  • 一致的打包效果;
  • 自动化错误探测;
  • 尽早发现质量问题 。
构建工具示例
Maven/Gradle
Maven 是一个主要用于 Java 项目的自动化构建工具 。 Maven 还可以用来构建和管理用 C#、Ruby、Scala 和其他语言开发的项目 。
Gradle 是一个开源的自动化构建系统 , 基于 Apache Ant 和 Apache Maven 的概念 , 引入了一种基于 groovy领域特定语言 。
MSBuild
Microsoft Build Engine , 更广为人知的名字是 MSBuild , 是一个开源免费的托管代码和原生 C++ 代码构建工具集 , 是.Net Framework 的一部分 。 Visual Studio 就使用 MSBuild 作为构建工具 。
Rake
Rake 是一个软件任务管理和自动化构建工具 。 用户可以指定任务和描述依赖关系 , 还可以对同一个命名空间中的组任务指定和描述依赖关系 。
JFrog Artifactory
JFrog Artifactory 是一种用于保存构建过程所产生的用于发布和部署的二进制文件的工具 。 Artifactory 提供了多种包格式支持 , 如 Maven、Debian、npm、Helm、Ruby、Python 和 Docker 。
JFrog 提供了高可用性、复制、灾难恢复、可伸缩性 , 并可集成很多自有和云存储产品 。
Sonatype Nexus
Sonatype Nexus 是一个存储库管理器 。 可用于代理、收集和管理依赖项 , 这样就不用经常为一堆的 jar 文件感到烦恼 。 它让软件的发行变得更容易 。
在内部 , 你可以配置构建工具 , 把工具发布到 Nexus , 然后其他开发人员就可以使用它们了 。
NuGet
NuGet 是.Net 包管理器 。 NuGet 客户端工具提供了生成和使用包的能力 。
NuGet Gallery 是程序包作者和使用者的中心包仓库 。
测试工具
为什么测试工具对 DevOps 来说很重要?
  • 将注意力放在质量上;
  • 提升产品信心 。
测试工具示例
JUnit
JUnit 是一个用于 Java 的单元测试框架 。 JUnit 在测试驱动开发当中扮演着非常重要的角色 , 它是单元测试框架家族 xUnit(源于 SUnit) 的一员 。
xUnit.net
xUnit.net 是一个用于.Net Framework 的开源单元测试工具 , 由 NUnit 的原作者开发 。
Selenium
Selenium 是用于测试 Web 应用程序的框架 。 Selenium 提供了一个回放工具 , 用于编写功能测试 , 省去了学习脚本语言的麻烦 。
Jasmine
Jasmine 是一个开源的 JavaScript 测试框架 。 它的目标是可以在任何支持 JavaScript 的平台上运行 , 不干扰应用程序或 IDE , 并具有易于阅读的语法 。 它深受其他单元测试框架的影响 , 比如 Screw.Unit、JSSpec、JSpec 和 RSpec 。
Cucumber
Cucumber 是一个支持行为驱动开发的工具 。 Cucumber BDD 方法的核心是一个叫做 Gherkin 的语言解析器 , 可以用用户能够理解的逻辑语言来指定预期的软件行为 。
持续集成(CI)和持续部署(CD)
为什么持续集成和部署对 DevOps 来说很重要?
  • 快速反馈;
  • 减少缺陷和等待时间 。
CI 工具示例
Jenkins
Jenkins 是一个免费开源的自动化服务器 。 Jenkins 帮助自动化软件开发过程中的非人为操作部分 。 它是一个基于服务器的系统 , 运行在 Servlet 容器中 , 比如 Apache Tomcat 。