什么是DevOps?
DevOps是一种利用云创新自动化和制度化来从根本上加速传统编程的改进模式。
1、Git
Git是一种分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不用联网,因为版本都在自己的电脑上。协同方法是这样的,比如说在自己的电脑上改了文件A,其他人也在电脑上改了文件A,这时候你们之间只需把各自的修改推送给对方,这样就可以互相看到对方的修改了。并且是免费开源的。最初Git是为了辅助Linux内核来开发的,用来替代BitKeeper。
2、Docker
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制的,相互之间不会有任何的接口。Docker使用客户端到服务器,也就是C/S架构模式。使用远程API,来管理和创建Docker容器。Docker容器通过Docker镜像来创建,容器与镜像的关系类似于面向对象编程中的对象与类。
3、Selenium
Selenium是一种开源的,基于Web UI的自动化测试架构,Selenium是用于测试Web应用程序用户界面的常用框架。它是一款用于运行端到端功能测试的超强工具,你可以使用多个编程语言编写测试,并且Selenium能够在一个或多个浏览器中执行这些测试。
4、Jenkis
Jenkis是一个用Java编写的、开源的自动集成服务器。Jenkis可以将流水线的不同阶段都实现自动化。Jenkis可以用于持续集成。为了给你一个直观的感受,想象一下有这样一个场景,Jenkis服务器将我们应用程序划分成不同的阶段,使其在所有条件部署好之前,可以提前开放给测试和QA。Jenkis服务器贯穿整个CI/CD(持续集成/持续交付)管道,它可以自动化整个CI/CD过程。这意味着设计人员无论在什么地方提交代码变更,该代码都将实时开放给测试服务器或QA组。此时,他们可以即刻就这边变化提出建议。
5、Ansible
Ansible是一个开源的自动化运维工具。它可以用于配置管理和应用程序部署。Ansible是控制由许多机器组成的集群自动化的基础,Ansible抛弃了客户端到服务器的模式,Ansible是基于模块工作的,本身它并没有批量部署的能力,真正具有批量部署能力的是Ansible所运行的模块,Ansible只是提供一种框架。
6、Puppet
Puppet是一种Linux、Unix、Windows平台的集中配置管理系统,它使用自由的Puppet描述语言,可以管理配置文件、用户、cron任务、软件包、系统服务等,Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。Puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互,每个客户端周期地也就是默认半个小时向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。
7、Nagios
Nagios是一款开源的免费网络监视工具,能有效的监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备和打印机等。在系统或服务状态异常的时候,它会发出邮件或短信报警,第一时间通知网站的运维人员,在状态恢复后发出正常的邮件或短信通知。
8、Chef
Chef是IT自动化平台,可以让客户来创建、部署、变更和管理基础设施运行时的环境和应用。Chef是与平台无关的,可以部署到云端、本地或作为虚拟机。Chef也被称为部署自动化工具和DevOps使能者,它是一款可以为不同规模的企业提供许多集成选项的产品。客户用Chef来创建、管理和部署应用栈,裸服务器以及VM。Chef平台主要基于客户和服务器,受管理的系统运行Chef客户端,Chef客户端再利用HTTP RESTful API连接Chef服务器。