devops 开源工具链
当谈论DevOps时,通常是指管理软件可交付成果,而不是基础架构。 但是,整个系统的安全性与基础架构的完整性密切相关。 您听过多少遍“但它在我的系统上有效”? 或者,管理员的构想错误会更改生产服务器的配置,从而使事情不再起作用。 因此,将基础架构纳入久经考验的一致性,可追溯性和自动化的DevOps实践中至关重要。
本文以我之前的文章“ 持续基础结构:另一个CI”为基础 。 虽然该文章使用基础结构作为代码和不可变基础结构的原理介绍了基础结构自动化和基础结构,并将其作为CI管道的一等公民,但本文将探索通过自动化实现CIi(基础结构的持续集成)管道的工具。
烘焙图像
迈向一致基础架构的第一步是以可读,可维护和可扩展的格式定义它。 这样就可以根据配置创建机器,这一过程称为烘焙 。 下面介绍了开源基础结构管理和烘焙工具。
通过Packer ,可以以类似于JSON的人类可读格式定义基础架构配置。 Packer可以为多个平台烘焙映像,包括AWS , VMware , VirtualBox和其他平台。 使用开源插件模型,社区将添加更多平台。
开源资源调配工具
烘焙之后的下一步是创建VM(虚拟机),此过程称为Provisioning 。 以下是一些开源配置工具:
Heat是管理基础架构生命周期的OpenStack套件的一部分,因此,它非常适合基于OpenStack的完整开源云生态系统。 在不断发展的同时,Heat旨在提供人类可读的配置脚本和REST API,同时尝试保持与AWS的兼容性以实现可移植性。
SparkleFormation是一个项目,旨在为当今众多的云平台(包括AWS , Azure , Google Cloud和OpenStack)提供通用的API。 尽管SparkleFormation DSL可以将iInfrastructure定义为代码(IaC),但其CLI工具提供了用于远程编排的命令行界面。
Terraform使用Packer烘焙的映像在多个云平台上置备VM。 与Packer一样,Terraform使用供应者模型进行社区扩展。
开源配置管理工具
创建并运行虚拟机后,仍然有必要进行充值配置,以确保没有配置漂移。 以下是一些开源配置管理工具:
Ansible是一种无代理的软件配置,配置管理和应用程序管理工具,主要通过SSH将模块(要部署的软件打包为幂等模块)部署到节点(服务器)。
Chef是一个配置管理工具,它使用以Ruby DSL编写的系统配置脚本(称为食谱 )来管理和配置服务器应用程序。 Chef支持客户端服务器和独立模式。 在客户端-服务器模式下,Chef提供了一个可集中管理的服务器和API。
Puppet是一种配置管理工具,它使用以本机声明性语言或Ruby DSL编写的配置文件(称为Puppet清单)来以用户友好的高级资源术语指定系统配置。 Puppet还支持客户端-服务器模式和独立模式。
SaltStack是配置管理软件和远程执行引擎。 SaltStack设计为动态,模块化和可扩展的。 它使用Python模块来管理远程执行和状态管理。
这些是一些流行的开源工具,具有强大的个人社区支持以进行编程和配置流程。 所有这些工具都与云平台无关。 一些服务器还支持客户端-服务器模式,这使得可以集中协调和监视服务器群集。
基础架构配置技术
使用这些工具,可以设置和配置基础结构。 但是,有一种使用容器技术的不断发展的当代方法。 简单来说,容器是将软件及其环境捆绑在一起的轻量级微型VM。
Linux容器是一种流行的开源技术,可以使用配置脚本以编程方式创建容器。 容器已经存在了很长一段时间,但是它们确实是在开源项目Docker中出现的 。 容器使创建具有定义配置的映像并将映像保存到中央存储库成为可能,管理员可以根据需要启动和停止它们。 有关Docker的详细介绍,请阅读什么是Docker? 。
值得注意的是,Docker不仅是一项技术,而且是管理容器的整个生态系统。 还有许多其他工具和技术可帮助自动化容器。 Kubernetes是最流行的容器编排工具之一。 Kubernetes提供了构建与大型容器无关的基础架构的能力。 您可以通过本教程学习使用Kubernetes的基础知识。
开源使DevOps基础架构成为现实。 为什么不利用当今的开源功能来自动化您的基础架构?
接下来要读什么
翻译自: https://opensource.com/article/18/8/infrastructure-devops-open-source
devops 开源工具链