Devops常用工具软件总结笔记(持续更新中……)

一、概览

Devops一词来自于Development 和 Operations 的组合,从字面意思了解,就是让软件开发人员和运维人员更好的沟通合作,通过自动化流程让软件开发、测试、发布更快捷。

Devops常用工具软件总结笔记(持续更新中……)
DevOps 团队经常会使用微服务架构来构建软件,并通过 API 将这些服务彼此相连。通过构建较小的功能单元,开发团队就可以加速交付。因此,您必须关注如何管理这些服务和 API,并制定敏捷集成等策略,让它们能够协同工作。
Devops常用工具软件总结笔记(持续更新中……)
Devops常用工具软件总结笔记(持续更新中……)

Jenkins可以构建一个自动化的持续集成环境可以使用它来“自动化”编译、打包、分发部署应用,它兼容ant、maven、gradle等多种第三方构建工具,同时与svn、git能无缝集成,也支持直接与知名源代码托管网站,如github、bitbucket直接集成。

Jenkins的功能:

  1. 定时拉取代码并编译
  2. 静态代码分析
  3. 定时打包发布测试版
  4. 自定义操作,如跑单元测试等
  5. 出错提醒

Devops常用工具软件总结笔记(持续更新中……)
Devops常用工具软件总结笔记(持续更新中……)

Jenkins的分布式节点构建:

通过将构建过程分配到从属Slave节点上,从而减轻Master节点的压力,而且可以同时构建多个slave,起到负载均衡的效果。而且随着现在容器的盛行,我们可以将server节点和slave节点(又称agent节点)在容器或者基于Kubernetes中部署, 可以实现动态的资源分配等。其中,server 节点主要用于处理调度构建作业,把构建分发到slave节点进行实际执行,监视slave节点的状态(必要时让它们进行上线或者离线),记录和发布构建产物;agent节点主要用于处理Job任务等例如编译和发布, agent节点可以分为静态节点和动态节点; 静态节点是固定的一台vm虚机或者容器。动态节点是随着任务的构建来自动创建agent节点。master与agent通信常用2种方式:ssh和JNLP,其中JNLP与ssh方式是master主动连接slave不同,JNLP方式是slave主动连接master。

Devops常用工具软件总结笔记(持续更新中……)
上图中k8s中部署jenkins,Jenkins Master 和 Jenkins Slave 以 Pod 形式运行在 Kubernetes 集群的 Node 上,Master 运行在其中一个节点,并且将其配置数据存储到一个 Volume 上去,Slave 运行在各个节点上,并且它不是一直处于运行状态,它会按照需求动态的创建并自动删除。这种方式的工作流程大致为:

当 Jenkins Master 接受到 Build 请求时,会根据配置的 Label 动态创建一个运行在 Pod 中的 Jenkins Slave 并注册到 Master 上,当运行完 Job 后,这个 Slave 会被注销并且这个 Pod 也会自动删除,恢复到最初状态。

常采用 Kubernates + Harbor + Jenkins + gitlab 的持续集成方案,大致工作流程:

手动 /自动构建 -> Jenkins 调度 K8S API -> 动态生成 Jenkins Slave pod -> Slave pod 拉取 Git 代码/编译/打包镜像 ->推送到镜像仓库 Harbor -> Slave 工作完成,Pod 自动销毁 -> 部署 到测试或生产 Kubernetes平台。(完全自动化,无需人工干预)

Devops常用工具软件总结笔记(持续更新中……)
jenkins+Kubernets动态节点自动化部署:
Devops常用工具软件总结笔记(持续更新中……)
Jenkins docker Kubernetes持续集成:
Devops常用工具软件总结笔记(持续更新中……)

(16)Capistrano

Capistrano 是用来并行在多台机器上执行相同命令的工具,使用用来安装一整批机器。

(17)BuildBot

BuildBot是进行系统自动化编译/测试周期最需要的软件,用于验证代码的变化。

(18)Fabric

fabric8 是开源 Java Containers(JVMs) 深度管理集成平台。能够很方便的从 UI 和 UX 一致的中央位置进行自动操作,配置和管理。fabric8还提供了少量非功能性需求,比方配置管理,服务发现故障转移,集中化监控,自动化等等。

(19)Tinderbox

(20)Travis CI

Travis CI 是一个基于云的持续集成项目, 可以支持大部分主流语言,比方:C,PHP,Ruby,Python, Nodejs等等。

(21)Continuum是最新的 CI 服务器之一,基于 Web 界面配置容易。

(22)LuntBuild自动构建工具。通过web接口可以很容易地进行系统的持续构建。

(23)CruiseControl

CruiseControl 是一个针对持续构建程序(项目持续集成)的框架,包括email通知的插件,Ant和各种各样的CVS工具,还提供了一个Web接口, 可随时查看当前的编译状况和历史状况

(24)Integrity是 Ruby 开发的持续集成服务器。

(25)Gump

Gump 是 Apache 的整合工具。它以 Python 写成、完全支持 Apache Ant、Apache Maven 等等软件组建工具。

(26)Go

Go 是 Google 开发的一种编译型,并发型,并具备垃圾回收功能的编程语言。

2.4、 部署工具

2.4.1 容器平台

(27)Docker

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

(28)Rocket

Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 相似,帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。

(29)Ubuntu(LXC)

LXD 是 ubuntu 基于 LXC 技术的重构,容器天然支持非特权和分布式。LXD 与 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 项目由一个 Linux 内核补丁和少量 userspace 工具组成。这些 userspace 工具使用由补丁添加的内核新特性,提供一套简化的工具来维护容器。

2.4.2 配置管理

(30)Chef

Chef 是一个系统集成框架,为整个架构提供配置管理功能。

(31)Puppet

Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如客户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。

(32)CFengine

Cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine 适用于管理各种环境,从一台主机到上万台主机的机群均可使用。

(33)Bash

bash 是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

(34)Rudder

Rudder 已改名为Flannel,为每个使用 Kubernetes 的机器提供一个子网。也就是说 Kubernetes 集群中的每个主机都有自己一个完整的子网,例如机器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子网。

(35)Powershell

(36)RunDeck

RunDeck 是用 Java/Grails 写的开源工具,帮助客户在数据中心或者者云环境中自动化各种操作和流程。通过命令行或者者web界面,客户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。

(37)Saltstack

Saltstack 可以看做是func的加强版+Puppet的弱化版。使用Python编写。非常好用,快速可以基于EPEL部署。Salt 是一个开源的工具用来管理你的基础架构,可轻松管理成千上万台服务器。

(38)Ansible

Ansible 是用于发布、管理和编排计算机系统的自动化运维工具,Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。

Devops常用工具软件总结笔记(持续更新中……)
如上图所示,Ansible由5 个部分组成:

任务执行流程:

Devops常用工具软件总结笔记(持续更新中……)
puppet、cfengine:面向配置
ducter:面向交互,可与puppet等集成。
与Mesos的关系:
Mesos:资源管理、调度平台。
Ducter:分布式任务与命令平台,服务管理平台,资源及服务调度有第三方实现。

(60)CheungSSH

CheungSSH自动化运维工具,批量管理Linux服务器,自动监控服务器,自动部署Tomcat,Apache软件,管理GitHub,批量执行命令,传送文件,全自动化过程。计划任务功能,权限的审计,权限的控制,和操作记录。

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8596 人正在系统学习中

来源:羌俊恩

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月19日
下一篇 2022年10月19日

相关推荐