DevOps基础-4.4-基础架构自动化:基础架构领域的工具链

释放双眼,带上耳机,听听看~!

       在这篇文章,我们将介绍基础设施代码的工具链。作为代码工具的许多基础设施取决于您使用的是什么类型的后端,无论是您自己的数据中心中的裸机,还是像AWS这样的服务的云基础架构。或其他东西,如平台即服务,或使用基于容器的方法。许多人正在使用他们的工作负载迁移到云端。在亚马逊的云中,他们的云形成模板允许您以JSON格式指定基础架构的实例,网络,负载平衡器甚至安全设置。

        PS:在亚马逊,用户通过下单购买云平台的虚拟机或者软件服务,一个订单后台就是一个JSON文件的传递和验证过程。 JSON文件里面包含虚拟机CPU.内存,网络设置等。

        Microsoft Azure具有Azure资源管理器模板,它们可以执行相同的操作。像HashiCorp的Terraform这样的新工具允许您以更抽象的方式指定所有这些设置,并认为它可以跨多个云提供商工作。遗憾的是,真正集成的解决方案允许您将基础架构和应用程序一起建模和配置,这种解决方案并不常见。 Ubuntu的Juju是这种方法的开源示例,其中不仅基础设施而且运行在其上的服务被一起建模和控制。

       这种方法在Docker世界中更为常见,我们稍后会讨论这个问题。 您可能需要动态配置在其环境中运行的计算机。使用Chef,Puppet,Ansible,Salt或CFEngine等工具可以帮助您实现这一目标。即使您没有在部署时使用配置管理构建每个生产节点,并且您正在使用类似Packer之类的东西来将镜像作为可交付成果,您仍然可以使用这些工具来构建您随后定制的镜像。

        这些配置管理工具允许您指定系统应如何构建。这包括操作系统依赖关系,系统配置,帐户,SSL证书,最重要的是,您的应用程序。这些工具已经上市一段时间了,许多工具已经成为功能齐全的开发环境。例如,对于Chef,你经常使用通用的Ruby linter,Rubocop和Chef特定的linter,Foodcritic来获得代码覆盖。使用像Chefspec这样的工具也可以进行单元测试,并且使用KitchenCI进行完整的集成测试,该测试与测试工具完全融合,并与服务器规范和测试套件挂钩。

        Chef,Puppet和他们的同伴也可以取代可搜索的CMDB。为此,Chef在系统上运行一个名为Ohai的软件,Ohai对系统进行概要分析,并将所有关于它的元数据存储在Chef服务器中。这是有效的一种方式,但是你的CMDB只是最新的融合,大多数人每小时或按需运行。它对动态工作负载没有多大帮助,动态工作负载的状态在几秒甚至几分钟内发生变化。Etcd,ZooKeeper和Consul是一些在您的基础架构中执行服务发现和状态跟踪的常用工具。

       它们保留了关键值信息和服务运行状况指标,并实现了系统的更多实时编排。我们已经在容器中提到了Dockers,在课程结束时,我们将更多地讨论该主题。但我们也希望涵盖社区为基于容器的基础设施提供的一些工具。容器通常不使用Chef或Puppet,因为它们的配置通常使用名为Docker文件的简单文本文件进行处理。容器具有足够的软件和操作系统来使容器工作。

PS:容器中配置信息一般都写在Dockerfile里面,其实就是一个文本文件,通过这个文件,使用docker build Dockfile 命令可以制作镜像。

         Chef和Puppet的许多功能与容器无关,与长时间运行的系统更相关。Docker Swarm,Google的Kubernetes和Mesos是三个流行的Docker平台,可以进行容器编排。它们允许您引入多个主机并在所有主机上运行容器工作负载。它们处理部署,编排和扩展。由于容器是应用程序,因此这些解决方案达到了Juju为服务解决方案所做的全自动化水平。一些私人容器服务,如Rancher,Google的Cloud Platform或Amazon的ECS负责为您的容器运行主机,以便您可以专注于您的应用程序。

        这带给我们另一个有趣的工具,Habitat,它自称为应用程序自动化。虽然Chef更多的是配置基础架构,但Habitat延伸到应用程序构建周期,然后进入应用程序部署周期,bookending和补充Chef。好吧,这将我们带到了基础设施工具链,并为您提供了一些入门工具。在我们讨论持续集成和部署时,这些内容下一篇文章介绍。

PS:和Docker 相关的工具,主要有Docker Swarm,还有Kubernetes和Puppet, 我之前的接触的底层基础架构自动化框架就使用了Puppet公司下的一个MCollective框架,这个框架的核心功能就是在多个Host主机之间进行任务的编排。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

故障复盘的简洁框架-黄金三问

2021-9-30 19:18:23

安全运维

OpenSSH-8.7p1离线升级修复安全漏洞

2021-10-23 10:13:25

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索