个人对运维的认知

运维中的二八定律

运维中设计的软件,20%的参数管理着80%的性能

运维中需要处理的技术工作有两种:故障和性能问题

运维中,领导更关心原理,因为原理=处理方法,初期不要过度关注性能

基于以上认知,总结我的学习方法

学习一个开源软件方法

理论学习

了解功能和配套软件了解大概原理

部署

按照最简单方式部署,能YUM不编译了解基本使用方法,并测试

研究20%性能参数

只关注最重要的20%参数掌握他们的原理

了解软件的限制和主要的坑准备测试环境,开始使用

举例:基于ELK的数据收集分析展示系统

最开始了解ELK的时候还没有Beats组件,使用Logstash收集数据,太重。实际学习中,应该关注变化的东西,Beats组件很轻量级,要尝试。

先不考虑集群,rpm包安装单实例,不考虑日志过滤,先传到ES,Kibana展示。看到效果,下面有两种选择:一是研究ES集群和Logstash日志过滤,二是学习Kibana如何出数据,展示数据。

如何选择呢?

自我驱使学习,只是为了学习技术,优先前者(稳定性和坑)。领导交办的研究课题,优先后者(功能和应用场景)

工作中主动推行一个开源软件

推行一个开源软件需要考虑几个方面的问题

最重要的就是,是否能解决运维中的痛点?

了解原理和结构(非常重要)了解应用场景搭建并熟悉主要功能(基于当前业务)进行压力测试,基于原理,模拟日常运维场景(考虑极限情况)私下找有兴趣的开发参与,并提出需求编写技术方案

主要体现原理(非常重要)根据当前业务量,预估压力(并发、数据量)体现带来的变化和运维成本(提升了什么、降低了什么)

准备PPT为领导汇报,附带技术方案

举例:Piwik用户数据收集分析系统(开源分析平台)

简单部署关注核心功能(嵌入js、数据收集展示)理解原理(数据收集、写入、展示)压测编写技术方案汇报