vlambda博客
学习文章列表

2019 年必学的 DevOps 流行工具

作者丨sandhya pati

译者丨刘雅梦

策划丨万佳

DevOps 不仅仅是一种技术、工具或语言,还是一种强调不同硬件、计算机、协同工作的文化,它以这种方式来帮助团队从整个编程中获益。在本博客中,我们将介绍不同的 DevOps 工具。

DevOps 是一种利用云创新、自动化和制度化,从根本上加速传统编程的改进模式。

   Git   

Git 是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不用联网,因为版本都在自己电脑上。

协同方法是这样的:比如说自己在电脑上改了文件 A,其他人也在电脑上改了文件 A,这时,你们之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

Git 是免费、开源的,最初 Git 是为辅助 Linux 内核开发的,来替代 BitKeeper 。

优点
  • 适合分布式开发,强调个体。

  • 公共服务器压力和数据量都不会太大。

  • 速度快、灵活。

  • 任意两个开发者之间可以很容易的解决冲突。

  • 离线工作。

缺点
  • 模式上比 SVN 更加复杂。

  • 不符合常规思维。

  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 使用客户端 - 服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。


Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

Selenium

Selenium 是一种开源的基于 Web UI 自动化测试架构。

Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。

您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。

Jenkins

Jenkins 是一个用 Java 编写的开源的自动集成服务器。Jenkins 可以自动化流水线的不同阶段。Jenkins 可用于持续集成。

为了给你一个直观感受,想象一下有这样一个场景:Jenkins 服务器将我们应用程序划分成不同阶段,使其在所有条件部署好之前,可以提前开放给测试、QA。Jenkins 服务器贯穿整个 CI/CD 管道。它可以自动化整个 CI/CD 过程,这意味着设计人员无论在什么地方提交代码变更,该代码都将实时开放给测试服务器或 QA 组。

此时,他们可以即刻就这些变化提出建议。Microsoft、Redhat 和 Rackspace 都在使用 Jenkins,并且他们都提供一些使用 Jenkins 的示例。

Ansible

Ansible 是一个开源的自动化运维工具,它可用于配置管理和应用程序部署。Ansible 是控制由许多机器组成的集群自动化的基础 Ansible 抛弃了客户端 / 服务器模式。

Ansible 是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是 ansible 所运行的模块,ansible 只是提供一种框架。

主要包括:

  1. 连接插件 connection plugins:负责和被监控端实现通信;

  2. host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

  3. 各种模块核心模块、command 模块、自定义模块;

  4. 借助于插件完成记录日志邮件等功能;

  5. playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

Puppet

Puppet 是一种 Linux、Unix、windows 平台的集中配置管理系统,使用自有的 puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。

Puppet 把这些系统实体称之为资源,puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

Puppet 采用 C/S 星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。

每个 puppet 客户端每半小时 (可以设置) 连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置客户端。配置完成以后,puppet 客户端可以反馈给服务器端一个消息.。如果出错,也会给服务器端反馈一个消息。

Nagios

Nagios 是一款开源的免费网络监视工具,能有效监控 Windows、Linux 和 Unix 的主机状态,交换机路由器等网络设备,打印机等。

在系统或服务状态异常时,它会发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios 可以监控的功能有:

  1. 监控网络服务(SMTP、POP3、HTTP、NNTP、PING 等);

  2. 监控主机资源(处理器负荷、磁盘利用率等);

  3. 简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

  4. 可以通过手机查看系统监控信息;

Chef 

Chef 是 IT 自动化平台,可让客户创建、部署、变更和管理基础设施运行时环境和应用。Chef 是平台无关的,可以部署到云端、本地或作为虚机(VM)。

Chef 也被称为部署自动化工具和 DevOps 使能者,它是一款可以为不同规模企业提供许多集成选项的产品。

客户用 Chef 来创建、管理和部署应用栈、裸服务器以及 VM。Chef 平台主要基于客户 / 服务器。受管理的系统运行 Chef 客户端,后者再利用 HTTP RESTful API 连接 Chef 服务器。

Chef 服务器包含有一个数据库,里面存储有“配方”,“配方”会被打包成独立的“食谱”,代表着运行在客户端的独立组件—比方说 Java、WebSphere 以及 MySQL 等,还会保留着所有受管理机器的详细目录。

原文链接:

https://dzone.com/articles/most-popular-devops-tools-you-must-learn-in-2019

点个在看少个 bug 👇