个人对运维的认知
运维中的二八定律
运维中设计的软件,20%的参数管理着80%的性能
运维中需要处理的技术工作有两种:故障和性能问题
运维中,领导更关心原理,因为原理=处理方法,初期不要过度关注性能
基于以上认知,总结我的学习方法
学习一个开源软件方法
理论学习
了解功能和配套软件了解大概原理
部署
按照最简单方式部署,能YUM不编译了解基本使用方法,并测试
研究20%性能参数
只关注最重要的20%参数掌握他们的原理
了解软件的限制和主要的坑准备测试环境,开始使用
举例:基于ELK的数据收集分析展示系统
最开始了解ELK的时候还没有Beats组件,使用Logstash收集数据,太重。实际学习中,应该关注变化的东西,Beats组件很轻量级,要尝试。
先不考虑集群,rpm包安装单实例,不考虑日志过滤,先传到ES,Kibana展示。看到效果,下面有两种选择:一是研究ES集群和Logstash日志过滤,二是学习Kibana如何出数据,展示数据。
如何选择呢?
自我驱使学习,只是为了学习技术,优先前者(稳定性和坑)。领导交办的研究课题,优先后者(功能和应用场景)
工作中主动推行一个开源软件
推行一个开源软件需要考虑几个方面的问题
最重要的就是,是否能解决运维中的痛点?
了解原理和结构(非常重要)了解应用场景搭建并熟悉主要功能(基于当前业务)进行压力测试,基于原理,模拟日常运维场景(考虑极限情况)私下找有兴趣的开发参与,并提出需求编写技术方案
主要体现原理(非常重要)根据当前业务量,预估压力(并发、数据量)体现带来的变化和运维成本(提升了什么、降低了什么)
准备PPT为领导汇报,附带技术方案
举例:Piwik用户数据收集分析系统(开源分析平台)
简单部署关注核心功能(嵌入js、数据收集展示)理解原理(数据收集、写入、展示)压测编写技术方案汇报