上海大数据股份 需要这些优质工具来加持,你的DevOps

近期 , GoogleTrends的“DevOps工具”的搜索量统计发布 , 其稳定的增长进一步证明了DevOps的人气长红 。 DevOps涵盖整个软件开发生命周期 , 也就意味着 , 涉及多种可选工具选项 。 针对各类应用场景 , 将整个DevOps实践过程中使用到的工具分为五大类——开发与构建工具、自动化测试工具、部署工具、运行时DevOps工具、协作DevOps工具 。 下面将从各大类型为你推荐优质DevOps工具 。
开发与构建工具
SCM+CI工具:Gitlab与Gitlab-CI
上海大数据股份 需要这些优质工具来加持,你的DevOps
文章图片
Gitlab的核心定义是在于提供一款完美的Gitrepo管理工具 , 其基于Web的用户界面详尽且易于使用 。 更重要的是 , 即使是Gitlab的免费版本也足以解决用户的各类需求 , 且分别提供SaaS与本地设施版本 。 我们只需要将.gitlab-ci.yml文件粘贴至repo的根目录当中 , Gitlab-CI即可根据用户在文件中作出的定义触发各类操作 。 总而言之 , 这两款工具彼此配合、成为代码持续集成领域当之无愧的领导者 。 成熟、开源、易用且强大的CI和无限集成是Gitlab的主要优势 。
数据管理工具:FlywayDB
Web应用程序开发中最容易被忽视的方面就是数据库的自动化需求 。 人们往往是事后才想起需要为应用程序的新版本部署数据库schema变更 。 Schema变更往往会添加或重命名多个列或表 。 如果应用程序版本与schema版本不匹配 , 还有可能彻底破坏应用程序的正常运行 。 最后 , 由于存在两套不同的系统 , 通过应用程序升级来协调数据库变更也比较困难 。 好消息是 , FlyWayDB自己就足以解决以上所有的问题 。 数据库版本控制和二进制或内置是FlyWayDB的主要竞争优势 。
自动化测试工具
集成测试工具:Cucumber
上海大数据股份 需要这些优质工具来加持,你的DevOps
文章图片
Cucumber将规范与测试文档合并为统一的动态文件 。 Cucumber能够自动完成测试 , 因此能够保证用户规范将始终保持更新 。 如果大家希望构建Web自动化测试框架并在Web应用程序之上模拟用户行为 , 不妨在项目当中使用带有Java与CucumberBDD的SeleniumWebDriver——这将是您学习并实现Cucumber测试功能的良好起点 。 行为驱动型开发(BDD)、动态文件以及多种支持工具可供选择是Cucumber的主要优势 。
端到端测试工具SoapUIPro
SoapUI在API测试领域已经拥有相当丰富的积累 , 这主要受益于SOAPWeb服务的默认地位 。 虽然我们已经不再构建新的SOAP服务 , 但这款工具的名称并未因此改变 , 且仍在向着用户的实际需求不断发展 。 SoapUI为后端Web服务的自动化功能测试提供了一整套出色的构建架构 , 其中一切元素都能轻松与持续集成工具相结合 , 作为CI/CD管道中的组成部分协同运行 。 广泛的文档资源和易用性是SoapUI的主要优势 。
部署工具
构件管理工具:Nexus
上海大数据股份 需要这些优质工具来加持,你的DevOps
文章图片
Nexus构件存储库支持几乎所有的主要技术 , 包括Java、NPM乃至Docker等等 。 我们可以使用这款工具来存储所有的可部署构件 , 通过拉近软件包与构建流程之间的距离 , Nexus提供的远程软件包管理器代理功能极大提升了持续集成速度 。 这种作法的另一大优势 , 在于帮助用户全局查看跨多个软件项目使用的全部软件包 , 从而锁定不安全的开源软件包 , 避免这些软件包成为恶意人士攻击代码的载体 。 开发团队的良好支持和开源是Nexus的主要优势 。
配置管理工具:Ansible
Ansible是这一领域中绝对的王者 , 理由非常简单:无状态 。 早期配置管理工具着重于管理配置状态 , 换句话说 , 如果当前状态与所需配置状态不再同步 , 则需要进行修复 。 但在新型应用程序当中 , 我们面对的是大量无状态组件 , 新版本的代码属于新的构件 , 并用于部署并替换现有构件 。 整个业务流程将由众多生命周期短暂的即席环境组成 。 不在乎远程对象的状态、开源、分子测试和YAML是Ansible的主要优势 。


推荐阅读