共计 3970 个字符,预计需要花费 10 分钟才能阅读完成。
看到一篇文章,切实写得很好,所以筹备全篇转载以备用。
运维与自动化概述
一:运维工作内容分类:
1). 机房运维(负责服务器高低架、IP 配置与划分、服务器打标签、机房定期巡检、服务器故障报修、服务器硬件监控)
2). 基础设施运维(零碎装置及初始化、网络保护)
3). 监控运维(7×24 运维值班、简略故障解决、告诉相干业务负责人)
4). 根底服务运维(蕴含运维开发)(外部 DNS 治理、负载平衡配置、系统监控报警、硬件资产治理平台、监控平台搭建、代码公布平台)
5). 利用运维(精通公司业务、各种服务零碎部署、业务零碎部署、版本治理、灰度公布、利用监控)
6). 零碎运维(架构层面的分布式缓存、分布式文件系统、日志收集与剖析、业务环境规划(测试、开发、生产)、业务架构设计与布局施行、服务器零碎性能调优)
7). 平安运维(整体的平安计划、标准、破绽监测、DDOS 防护、病毒防护及解决、要害程序包更新、破绽扫描与修补等)
二:运维的倒退线路:
1). 搭建服务–能够装置服务并运行,因为是加入工作没有相干服务装置和部署教训,所以此阶段的次要目标是能够把服务装置并能够运行起来。
2). 用好服务–适当对服务优化,工作一两年后能够依据业务的理论需要对服务做适当的优化,比方能够对 nginx 做调优和监控。
3). 自动化–自动化服务的部署或监控,工作三到五年后能够联合自动化部署工具或编写脚本实现业务的自动化部署。
4). 产品设计(如何设计一个监控零碎),能够依据须要设计和部署大型业务零碎,当初很多公司都在用云服务,比方阿里云、Amazon 的 AWS,微软的 Azure,以及腾讯云、青云等等各种云计算,云计算的外围竞争力是运维,其始终离不开运维对业务的技术撑持,比方搭建云服务时的服务器选型、网络布局、物理机系统部署与优化、监控零碎的装置配置等等。
三:自动化运维之运维标准化
1. 物理设施层面:
1). 服务器标签化(IP 地址 / 与交换机接口 / 以后服务 /)、设施负责人(治理人)、设施洽购详情(保修日期)、设施摆放规范(服务器之间距离 1U 通风)。
2). 网络划分、近程控制卡、网卡端口。
3). 服务器厂商机型号同一、硬盘大小转速同一、内存统型号大小频率一、服务器课依据业务分类,有的要求 IO 高(存储服务器),有的要求内存大(缓存服务器),有的要求 CPU 块(代理服务器),有 的对 CPU 和 IO 要求 CPU 和内存都高(数据库服务器)。
4). 资产命名标准、编号标准、类型标准。
5). 监控规范(对立阈值和监控类型)。
2. 操作系统层面:
1). 操作系统版本(不要混合应用 linux 和 windows,linux 发行版尽量对立)
2). 零碎初始化(IP、网关、掩码、DNS、NTP、内核参数调优、rsyslog、主机名标准、工作打算)
3). 根底 Agent 装备(Zabbix Agent、Logstash Agent、Saltstack minion)
4). 系统监控规范(CPU 使用率、内存使用率、硬盘使用率、IO 延时、网络情况、过程数与僵尸过程、运行工夫等)
3. 应用服务层面:
1).Web 服务器选型(LNMP/LAMP/Tomcat/MySQL)
2). 过程启动用户身份及目录、端口监听标准、日志收集标准(拜访日志、谬误日志、运行日志、系统日志)
3). 配置管理(配置文件标准、脚本标准)
4). 架构标准(Nginx+Keepalived、LVS+Keepalived、Haproxy+Keepalived、阿里云 SLB、Ucloud ULB 等等)
5). 部署标准(地位、包命名等)
4. 运维操作层面:
1). 机房巡检流程(巡检周期、巡检内容、硬件报修流程)
2). 业务部署流程(先在开发环境和测试环境测试、最初后在生产环境部署、如呈现问题立刻回滚、呈现问题先回滚再修复)
3). 故障解决流程(紧急故障解决、故障降级流程及工夫、重大故障治理、责任调配)
4). 工作日志规范(如何编写工作日志周报、月报)
5). 业务上线流程(1. 我的项目发起人 2. 零碎装置部署优化 3. 部署 Nginx 及相干拜访 4. 备案及解析域名 5. 上线测试 6. 对服务和主机加监控 7. 数据定期备份)
6). 业务下线流程(谁发动,下线工夫,服务器和数据如何解决。)
7). 运维平安标准(明码复杂度、更改周期、VPN 应用标准、服务登录标准、命令应用标准、备份还原标准)
运维标准化实现业务规范化,最终达到文档化的目标,即所有和业务相干的都有文档可查,包含技术文档、降级文档、故障文档等,也不会导致因为某员工到职而导致业务中断。
四:自动化运维之工具化:通过相干运维工具,代替须要人工须要屡次执行繁多的工作内容,如:
1).Shell 或 Python 脚本(简略性能配置或批改的脚本,如主动批改配置文件、流程执行的脚本,如须要先批改完配置文件能力重启服务、查看性,如查看配置文件是否批改,日志是否生成、报表性的脚本,如生成自定义数据的文本文档并主动发送到邮箱)
2). 开源监控工具:Zabbix ELKStack SaltStack Cobbler
3). 开源部署工具:cobbler、walle、jenkins 等
4). 开源跳板工具:jumperserver 等
运维工具化带来的益处:
1). 促成标准化的施行
2). 将反复的操作,简单化
3). 将屡次操作,流程化
4). 缩小人为操作的低效和升高故障率
运维工具化遇到的问题:
1). 你至多要 ssh 到服务器执行。可能犯错
2). 多个脚本有执行程序的时候,可能犯错。
3). 权限不好治理,日志没法统计。
4). 无奈防止手工操作。
例子:比方某天某台 Web 服务器磁盘可能产生问题,要在访问量较低的凌晨要将服务器的数据导出来放在其余服务器代替,那么须要思考的是:
1). 是否有由其余服务器连贯此服务器取数据或此服务器是否到其余服务器取数据。
2). 此服务器是否有定时工作打算到其余服务器执行或有其余服务器连贯到此服务器执行。
3). 工作打算索要波及的内容,以及停服务是否影响其余服务器。
4). 后续的代码更新问题。
五:自动化运维之 web 化
公司基于 php 等语言本人开发的能够在 web 通过鼠标点击就能实现代码公布和回滚等性能的 web 界面的操作平台。
1). 招聘开发运维做成 Web 界面。
2).web 界面的登录权限管制。
3). 操作日志记录。
4). 一键部署所有指定服务器,弱化操作流程。
5). 不必 ssh 到每台后端服务器,缩小人为误操作的故障率。
例如:
1).DNS Web 治理 bind-DLZ
2). 负载平衡 Web 治理
3).Job 治理平台
4). 监控平台 Zabbix
5). 操作系统装置平台
六:自动化运维之服务化(API 化)
1).DNS Web 治理 ———->bind-DLZ dns-api(bind)
2). 负载平衡 Web 治理——>slb-api(haproxy、LVS、Nginx)
3).Job 治理平台————->job-api(php 自主开发)
4). 监控平台 Zabbix ——->zabbix-api(zabbix、nagios、cacti)
5). 操作系统装置平台——>cobbler-api(cobbler、kickstack)
6). 部署平台——————>deploy-api(装置服务软件 nginx+php)
7). 配置管理平台————>saltstack-api(saltstack、ansible)
8). 自动化测试平台———>test-api(自主开发测试)
通过调用相干 api 实现服务器从零碎装置到上线齐全自动化:
1). 调用 cobbler-api 主动装置指定的操作系统
2). 调用 saltstack-api 进行零碎初始化和配置
3). 调用 dns-api 解析域名和主机名
4). 调用 zabbix-api 讲该新上线机器加上监控
5). 再次调用 saltstack-api 部署拜访软件(装置 Nginx+PHP,Tomcat,Mysql)
6). 调用 deploy-api 将以后最新稳固版本的代码部署到服务器上的指定目录。
7). 调用 test-api 测试以后服务运行非常失常,如有异样,则执行报警等操作
8). 调用 slb-api 将该节点退出集群
七:自动化运维之智能化:
能依据肯定的策略或条件,智能化的自动化扩容、缩容、(服务降级、故障自修复),包含主动公布代码加进负载集群等一些列操作
触发: 指的是触发当时定义的一个阈值,可能是 CPU 使用率 80%,也可能是并发超过 100000,也可能是 web 拜访响应工夫超过 5s,这是一个触发机制,而后要定义要做的决策,如:
1). 当某个集群的访问量超过最大撑持量,比方 10000
1.1 CPU 使用率达到 xx% 内存使用率达到 xx% 响应工夫 > x 秒
2). 此状态曾经继续 5 分钟。
3). 判断不是攻打
4). 扩张资源池有可用资源
4.1). 以后网络带宽使用率
4.2). 如果是私有云(钱够不够)
5). 以后后端服务撑持量是否超过阈值 如果超过应该后端先扩容
6). 数据库是否能够撑持以后并发
7). 以后自动化扩大队列,是否有正在扩容的节点
8). 其它业务相干的。
自动化扩容机制:
1). 扩容之前:先判断 Buffer 区域是否有最近 x 小时,曾经移除的之前创立的虚拟机,并查问软件版本是否和以后统一,如果统一,跳过 2 3 4 步骤,如果不统一,跳过 2 3。
2). OpenStack 创立虚拟机
3). Saltstack 配置环境—- 监控
4). 部署零碎部署以后代码
5). 测试服务是否可用(留神距离和次数)
6). 退出集群
7). 告诉(短信、邮件)
自动化缩容机制:
1). 触发条件和决策
2). 从集群中移除节点 - 敞开监控 - 移除
3). 告诉
4). 移除的节点寄存于 Buffer 外面。
5).Buffer 外面超过 1 天的虚拟机,主动敞开,寄存于 xx 区
6).Buffer 区的虚拟机,每 7 天清理删除。
———- 当你发现自己的才华撑不起野心时,就请安静下来学习吧!———-