DevOps 不仅仅是一种技术、工具或语言,还是一种强调不同硬件、计算机、协同工作的文化,它以这种方式来帮助团队从整个编程中获益。在本博客中,我们将介绍不同的 DevOps 工具。
DevOps 是一种利用云创新、自动化和制度化,从根本上加速传统编程的改进模式。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不用联网,因为版本都在自己电脑上。
协同方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper。
优点:
缺点:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
Selenium 是一种开源的基于Web UI自动化测试架构。
Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。
您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。
Jenkins 是一个用 Java 编写的开源的自动集成服务器。Jenkins 可以自动化流水线的不同阶段。Jenkins 可用于持续集成。
为了给你一个直观感受,想象一下有这样一个场景:Jenkins服务器将我们应用程序划分成不同阶段,使其在所有条件部署好之前,可以提前开放给测试、QA。Jenkins服务器贯穿整个CI/CD管道。它可以自动化整个CI/CD过程,这意味着设计人员无论在什么地方提交代码变更,该代码都将实时开放给测试服务器或QA组。
此时,他们可以即刻就这些变化提出建议。Microsoft、Redhat 和 Rackspace 都在使用Jenkins,并且他们都提供一些使用 Jenkins 的示例。
Ansible是一个开源的自动化运维工具,它可用于配置管理和应用程序部署。Ansible 是控制由许多机器组成的集群自动化的基础Ansible 抛弃了客户端/服务器模式。
Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
主要包括:
(1).连接插件connection plugins:负责和被监控端实现通信;
(2).host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3).各种模块核心模块、command模块、自定义模块;
(4).借助于插件完成记录日志邮件等功能;
(5).playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
Puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。
Puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。
每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置客户端。配置完成以后,puppet客户端可以反馈给服务器端一个消息.。如果出错,也会给服务器端反馈一个消息。
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。
在系统或服务状态异常时,它会发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios 可以监控的功能有:
1.监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2.监控主机资源(处理器负荷、磁盘利用率等);
3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4.可以通过手机查看系统监控信息;
Chef是IT自动化平台,可让客户创建、部署、变更和管理基础设施运行时环境和应用。Chef是平台无关的,可以部署到云端、本地或作为虚机(VM)。
Chef也被称为部署自动化工具和DevOps使能者,它是一款可以为不同规模企业提供许多集成选项的产品。
客户用Chef来创建、管理和部署应用栈、裸服务器以及VM。Chef平台主要基于客户/服务器。受管理的系统运行Chef客户端,后者再利用HTTP RESTful API连接Chef服务器。
Chef服务器包含有一个数据库,里面存储有“配方”,“配方”会被打包成独立的“食谱”,代表着运行在客户端的独立组件—比方说Java、WebSphere以及MySQL等,还会保留着所有受管理机器的详细目录。
原文链接:
领取专属 10元无门槛券
私享最新 技术干货