devops使用,以下哪项不是常用的devops工具
一. DevOps
DevOps是Development和Operations的组合
的介绍DevOps可以看作是开发(软件工程)、技术运营和质量保证(QA)的交集。传统的软件组织将开发、IT运营和质量保证设置为独立的部门。在这种环境下,如何采用新的开发方法(如敏捷软件开发)是一个重要的问题:按照以前的工作方法,开发和部署不需要IT支持或来自QA的深入和跨部门的支持,而是需要极其紧密的多部门协作。然而,DevOps不仅仅关注软件部署。它是这些部门之间进行沟通和协作的一套流程和方法。
需要频繁交付的企业可能需要对DevOps有一个大致的了解。Flickr开发了自己的DevOps能力,这使其能够支持业务部门“每天10次部署”的要求——如果一个组织希望为多个用户生产具有多种功能的应用程序,其部署周期必然很短。这种能力也称为持续部署,通常与精益创业方法相关联。自2009年以来,相关的工作组、专业组织和博客迅速涌现。
DevOps的引入可以对产品交付、测试、功能开发和维护产生深远的影响(包括“热补丁”,曾经很少见但现在很常见)。在缺乏DevOps能力的组织中,开发和运营之间存在信息“鸿沟”——例如,运营商要求更好的可靠性和安全性,开发人员希望基础设施响应更快,业务用户需要更快地向最终用户发布更多功能。这种信息鸿沟是最常见的问题。
DevOps的概念在软件开发行业越来越流行。越来越多的团队希望实现敏捷产品开发,DevOps让一切成为可能。借助DevOps,团队可以定期发布代码、自动化部署,并在发布过程中持续集成/交付。
虽然DevOps背后有各种各样的概念,但幸运的是,有一些工具可以让您更容易理解和实现它们。在本文中,您将了解这些工具,并开始将它们作为软件发布/维护工具包的一部分来使用。
第二,DevOps对应用发布的影响。在许多企业中,应用程序发布是一项涉及多个团队的活动,压力大,风险高。但是,在具有开发运维功能的组织中,应用发布的风险较低,原因如下:
1.缩小变化范围。与传统的瀑布开发模型相比,采用敏捷或迭代开发意味着更频繁的发布,每次发布的变更更少。由于部署频繁,每次部署都不会对生产系统产生巨大影响,应用程序会以平稳的速度逐渐增长。
2.加强发布协调,依靠一个强有力的发布协调人来弥合开发和运营之间的技能鸿沟和沟通鸿沟;采用协作工具,如电子表格、电话会议、即时消息和企业门户(wiki、sharepoint ),以确保所有相关人员理解变更的内容并充分合作。
3.自动化强大的部署自动化意味着确保部署任务的可重复性,降低部署错误的可能性。
与传统开发方法大规模、不频繁的发布(通常以“季度”或“年”为单位)相比,敏捷方法大大提高了发布频率(通常以“日”或“周”为单位)。
三、DevOps的几种常用工具。DevOps有许多可用的工具,在一篇文章中介绍它们几乎是不可能的。本文将介绍五种最流行、最强大的DevOps工具:
Terraform
Ansible
Packer
Docker
Kubernetes
1、地形类型:配置
语言:去吧
推荐的第一个DevOps工具是Hashicorp的Terraform。Terraform是一个基础设施管理工具,允许您正确地构建、更改和管理您的基础设施。你可以把Terraform想象成一个补给工具。它帮助您设置服务器、数据库和其他支持综合应用程序的基础设施。
Terraform不局限于任何特定的云服务提供商,它可以与多个云提供商和环境合作。AWS、微软Azure、谷歌云等云服务提供商都与Terraform无缝集成。版本控制系统托管提供商,比如Github,Bitbucket,可以很好的利用。
Terraform有企业版和开源版,也可以安装在macOS、Linux和Windows系统上。
2、Ansible
类型:配置
语言:Python、PowerShell、Shell和Ruby
与Terraform类似,Ansible也是一个基础设施管理工具。Ansible可以帮助您部署应用程序、供应和配置托管服务器。Ansible是用Python构建的,由RedHat维护,但仍然是免费开源的。
作为一个配置管理系统,您可以使用Ansible来设置和构建多个服务器。您可以在控制机器上安装Ansible,而无需在其他服务器上运行Ansible,这些服务器包括web、应用程序和数据库服务器。
与Terraform不同,Ansible不使用HCL作为其代码。相反,配置是用Ansible脚本编写的,它是YAML文件。Ansible混合使用声明模式和过程模式。这与Terraform不同,Terraform只是声明性的。
Linux是最适合安装Ansible的操作系统。不过在macOS上也很好用。对于Windows用户,可以通过Linux的Windows子系统的bash shell来使用Ansible。
3、打包机
类型:配置
语言:去吧
Packer是Hashicorp的另一个DevOps工具。用Golang写的Packer可以帮你自动创建虚拟图像。手动构建镜像的过程可能会令人沮丧,因为它容易出错,但Packer消除了所有这些问题。
对于单个JSON文件,可以使用Packer创建多个镜像。当它第一次工作时,可以保证100%工作,因为没有什么会干扰它的自动化过程。许多云服务提供商使用镜像,您可以无缝地使用它们,因为Packer为云环境标准化了镜像的创建。
封隔器不是一个独立的工具。您可以将其与Ansible、Chef和Jenkins集成,以便在部署管道中进一步使用这些映像。安装过程并不复杂,您可以了解如何开始使用该工具。
4、码头工人
类型:容器
语言:去吧
Docker是一种容器技术,允许您在特殊环境中隔离应用程序。容器化类似于虚拟化,只是容器不启动完整的操作系统。
使用Docker容器,您可以在这些自定义环境中开发和部署应用程序,因此您不必担心兼容性问题。您的应用程序可以在任何地方运行,只要它们在容器中。
要启动Docker容器,必须通过Dockerfiles创建一个Docker映像。当从Docker映像开始时,Dockerfile在Docker容器中包含所需的规范。你不必总是建立自己的Docker镜像,因为官方镜像可以在Docker Hub上使用。
Docker本身可以在Linux上运行,也可以在macOS上正常运行,因为和Unix差不多。对于Windows用户,也可以通过Docker工具箱使用Docker。
通常,您可能会使用多个Docker容器,这导致了本文中的最后一个DevOps工具。
5、库伯内特斯
类型:容器
语言:去吧
Kubernetes (K8s)是一个Google开源工具,允许你管理Docker容器。因为在生产中经常有大量的容器在运行,Kubernetes使得排列这些容器成为可能。
首先,了解一下安排Docker容器的原因。当有很多容器运行时,很难手动监控这些容器,并使它们相互通信;此外,这种扩展和负载平衡变得很困难。
有了Kubernetes,所有这些容器都可以被控制,所以这组机器可以作为一台机器来管理。与Docker Compose相比,Kubernetes与众不同,因为它更容易部署、扩展和监控容器。当它们中的任何一个崩溃时,它们可以自愈,而Kubernetes可以制造新的。借助K8s,可以轻松执行存储调度、服务发现和负载平衡。
您可以在macOS、Linux和Windows上安装Kubernetes,并通过Kubernetes命令行工具使用它。
结论:DevOps的概念非常有利于大规模应用在不同负载或流量下保持高性能。它还使得软件部署管道易于管理。
如果没有可用的工具,DevOps的概念很难实现。这个领域有很多工具,每个公司的选择都不一样。尽管如此,