要想了解智能运维,首先须要知道几点:
- 运维是什么?
- 运维干什么?
- 为何重视运维?
运维是什么?
要说运维,我先说说目前中国互联网的发展。算法
中国互联网的发展
- 第一阶段:
- 新浪、搜狐、网易等门户网站,解决了新闻信息的传播问题
- 第二阶段:
- 腾讯、阿里、百度等科技型,解决了社交、信息获取及电商等需求问题
- 第三阶段:
- 须要解决心理需求问题,直播、短视频、综艺、电视剧等
- 第四阶段:
- 区块链、自动驾驶、智能机器人等
我本身内心认为,运维的水平能够成为衡量一个公司(IT公司)技术实力的标准。<br>(由于无论是系统仍是机器,实现功能只是一部分,稳定性更加剧要!)数据库
从系统运行的各类环境,机房、网络、存储、物理机、虚拟机这些基础设施,再到数据库、中间件平台、云平台、大数据平台等,运维的侧重点不在于编程,而是对这类平台的使用和管理。<br>(企业管理也是同样的,产品再好,管理不行,最终也是失败的。)编程
运维干什么?
运维工程师(Operation Engineer)缓存
- 工做范围:
- 服务器购买、租用和上架等基本管理
- 调整网络设备的配置管理和部署
- 服务器操做系统安装调试
- 测试环境和生产环境的初始化与维护
- 代码部署和管理(Git和SVN等)
- 设计和部署线上服务的监控和报警
- 服务安全性检测(防止漏洞和攻击)
- 数据库管理和调优
- 公司IT设备的资产管理和分配
- 大型公司中,可根据工做内容被细分为
- 网站和业务服务运维
- 系统运维
- 网络运维
- 数据库运维(DBA)
- 运维开发(DevOps)
- 运维安全
- 优点:
- 更容易诞生架构师
- 知道如何优化服务
- 如何使用资源利用最大化
为何重视运维?
在业余的运维眼里,运维这个工做是什么特色?
- 处于软件生产链最末端
- 容易被“鄙视”
- 远离业务部门
- 老背锅
在专业的运维眼里,又是什么特色?(我不算专业的,我只是总结)
- 能够从运维升格为技术运营
- 可经过改善产品用户体验,从而提升DAU(Daily Active User)日活跃用户数量、营收和利润
- 和其余业务部门创建普遍而又建设性的合做
运维发展
- 人工 --遇到什么问题就解决什么问题,整理一堆的重复性高的资产台帐
- 工具 --提升运维工做的效率(用别人开发好的工具,直接敲命令或双击运行)
- 自动化 --规范化、快速解决能力,须要必定的开发能力
- 平台化 --自动化脚本和工具的整合,下降了运维成本、下降系统风险几率、提升可用性
- 智能化 --创建在大数据和机器学习的技术上
运维的现状
- 故障率高
- 系统的复杂性高
- 大数据的环境
- 数据的采集
- 数据存储
- 数据的分析和建模 (数据不用来分析使用,存着来干吗?)
最后我就总结一句:智能运维 AIOps安全
智能运维 AIOps (Algorithmic IT Operations)
利用大数据分析、机器学习等人工智能技术来自动化管理运维事务。Gartner公司提出来定义标准。服务器
Gartner公司
- 全球最具权威的IT研究与顾问咨询公司
- 主要是迎合中型公司的须要
- 它但愿使本身的业务覆盖到IT行业的全部领域
- 让本身成为每一位用户的一站式信息技术服务公司
智能运维干什么?
- 实时监控
- 实时报警
- 异常检测
- 故障根源分析
- 趋势预测
- 数据关联
智能运维的难题
- 海量数据的存储、分析和处理
- 实时数据和非实时数据
- 格式化数据和非格式化数据
- 须要索引的数据和只须要运算的数据
- 全量数据和抽样数据
- 可视化数据和告警数据
- 多维度、多数据源(主要是分析故障和预测趋势)
- 监控数据
- 告警事件
- 分析报表
- 日志检索
- 信息过载(告警数据过多)
- 数据的聚合
- 下降维度:聚类和分类
- 标准化和归一化
- 复杂业务模型下的故障定位
- 日志标准化:包含内容、格式、本身的业务线、服务层级等
- 全链路追踪
- SLA规范化:例如用响应时间来约定性能指标、用慢速比来衡量系统健康度。
智能运维基础设设施
- 开源数据采集技术 Filebeat、Logstash
- 分布式消息队列 Kafka、Redis、RabbitMQ
- 大数据存储技术
- 大规模数据离线计算分析 ETL、Hadoop
- 实时计算框架
- 时序数据分析框架
- 机器学习框架 TensorFlow
智能运维的技术
- 数据聚合与关联技术
- 数据异常点检测技术
- 故障诊断和分析策略
- 趋势预测算法
系统可用性(Availabiity)
Availability = MTBF/(MTBF + MTTR)网络
MTBF --平均故障间隔时间架构
- 相邻两次故障之间的平均工做时间
- 间隔时间越短说明系统可靠性越高
MTTR --平均修复时间负载均衡
- 故障修复所须要的平均时间
- 越低说明故障修复越及时
运维在产品研发的主要职责
产品阶段 运维职责 设计阶段 稳定性评估、资源评估、资源申请和准备 开发阶段 环境部署、依赖库及包管理、操做系统维护、数据库准备等 测试阶段 测试环境部署、稳定性评估,从系统的稳定性和可运维性的角度提出开发需求 部署阶段 自动化部署、稳定性检验、可扩展部署等 线上阶段 实时监控、故障处理、容量管理 下线 资源回收、服务终止
运维涉及的常见技术和框架
功能描述 技术和框架 操做系统 Linux Ubuntu Window CentOS Redha Web Server Nginx Tomcat Apache 网络工具 tcpcopy curl 监控和报警系统 Grafana zabbix cacti 自动部署 Ansible saltstack 配置管理及服务发现 Puppet Consul Zookeeper 负载均衡 LVS HAProxy Nginx 传输工具 Scribe Flume 集群管理工具 Zookeeper 数据库 MySQL Oracle SQLServer 缓存技术 Redis Memcache 消息队列 Kafka ZeroMQ RabbitMQ Redis 大数据平台 HDFS Spark Hive Storm 大数据存储 HBASE MongoDB LevelDB 时序数据 Druid OpenTSDB 容器 Docker LXC 虚拟化 Openstack XenServer KVM VMWare
(参考书籍彭东等编写的《智能运维--从0搭建大规模分布式AIOps系统》)框架