DevOps

持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

Jenkins 持续集成

Jenkins前身是 Hudson,是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins 学习福利网站 https://jenkins-zh.cn/,多翻翻,很有帮助。

一、Jenkins 服务基础知识

  1. Jenkins 服务安装过程和介绍
  2. Jenkins CI/CD 服务目录结构说明
  3. Jenkins 服务的环境变量和构建工具 Tools
  4. Jenkins CURL 调用API执行Job

二、Pipeline 流水线

  1. Jenkins 服务 Pipeline 基础介绍和语法介绍 -1
  2. Jenkins 服务 Pipeline 基础介绍和语法介绍 -2
  3. JJenkins 服务中 Pipeline 流水线的参数设置
  4. Jenkins Groovy DSL Pipeline 流水线介绍
  5. Jenkins 流水线Pipeline 扩展共享库

三、Jenkins 常用插件介绍

  1. Jenkins 服务配置Maven 工具和工具使用说明
  2. Jenkins 服务持续集成整合 Kubectl 用来管理 Kubernetes

四、Jenkins 服务 Master/Agent 分布式架构

Jenkins 服务支持 Master/Agent 分布式架构部署方式,从而将不同节点的工作内容划分的更加清晰,有利于整个服务的管理。
Master 节点主要负责 Jenkins 服务的配置和管理,包括安全、用户、插件、节点的管理,以及Job作业的配置和分配。
Agent 节点则用于接受分配的Job 作业,并执行Job的构建,反馈Job的执行结果。是作业的实际执行者。可以减少 Master 节点的压力。
在集中化的构建平台、较高性能的构建要求和支持横向扩展的场景中,使用 Master/Agent 方式构建任务是非常合适的选择。

  1. 直接在宿主机上部署 Jenkins 的分布式架构过程
  2. Jenkins 服务分布式 Master/Agent 节点连接方式
  3. Jenkins 服务 Master 节点容器化部署
  4. Jenkins 服务 Master 节点容器配置预安装插件
  5. Jenkins 服务 Agent 节点运行在容器(Kubernetes 插件)基础介绍
  6. Jenkins 服务 Agent 节点镜像配置:Maven 镜像和 NodeJS镜像介绍

Jmeter 功能测试和压力测试工具

Apache JMeter是Apache组织开发的基于Java语言的测试工具和压力测试工具。
它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。
JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能并可以提供分析结果的图形展示。

  1. Jmeter 测试和压测工具
  2. Jmeter 非测试元件 http 代理服务器介绍

Ansible 自动化运维

Ansible 是一套开源的自动化运维工具;对于管理大量配置相似的服务器的工作,非常有用。
Absible 系统基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

  1. Ansible 自动化运维工具介绍
  2. ansible 命令介绍
  3. Ansible Playbook 的结构说明:Task 和 Handler
  4. Ansible 常用模块介绍
  5. Ansible 关于变量的介绍
  6. ansible 插件介绍和任务执行时间插件
  7. Ansible 远程连接超时和升级

个人感悟:
Ansible 自动化运维工具服务更适合用来管理大数量的服务器,至少也要有40-50台吧。如果这些服务器的配置很相似或者都统一的话,就更加合适了。
但是对于中小型的公司是没有这么多服务器的,而且每台服务器的作用定义都比较明确和独立;所有很难提取出统一的脚本和剧本(playbook)。
如果中小型公司确实要使用 Ansible 服务的话,入手点可以选择:统一管理计划任务。
在服务器管理过程中,几乎每台服务器都需要设置计划任务:比如数据备份、数据清理、日志分割、日志文件清除等。可以通过计划任务的统一管理来接入Ansible 服务;然后逐步将公司服务器管理和 Ansible 服务结合。