4.DevOps-4.度量指标--0.度量指标(Metrics)
微服务实践目录 ,可以参见连接。
在很多人的想法里认为事务是无法考量的。无法说明的,就想老子所说的:
人对不了解的事务的学习与分析过程中有个分歧:
对于现代学科来说,现代的理学和文学都最终会归化到数学,数学会归化的哲学。例如:美学中的黄金比例,文学中的逻辑学,经济学中统计学等等。
但是,对于软件工程一门工程类学科来说无法考量与度量某一项事务是否是可行?答案自然是明确的软件工程必须是可以度量的,虽然在这么多年的发展过程中没有一套完整适应时代与技术的度量方法。但是度量对于一个工程类学科来说是必须的,而且之后也会不断的朝着可度量的方向发展。
度量是了解事务内部特征的最基础的方法。但在国内度量其实是从上到下都回避的一件事,所以,需要考量加入度量指标的时间点,以及加入的度量指标,加入方式等。不过可度量的标准是公司达到一定水平是一个标志。
本文主要描述度量指标的实践,上面这些社会学的理论请自行把握。
在网上找了很多关于 度量、指标、维度 的资料。这几个词可以从《统计学》到《软件运营》、再从《分析指标体系》到《软件过程度量模型》。就这几个词我找了很大一圈还是没有找到很好的解释,所以,我就妄自尊大的自己对度量指标进行一个解释:
度量出自维基百科,指标出自以上是从Wiki上找到的介绍。简单的看度量就是描述事物的一个特定方面的数字。
度量指标(Metrics) : 指用于描述一个物体或事物的某个性质的指数、规格、标准,使其可以和其他的物体或者事物的提交。
从软件的角度讲度量即把所有东西都量化、数据化、可采集。指标即表示对这些量化后的数据的目标值。维度即标识一个事物某一个侧面的一组指标。
大概说明了度量指标的内容之后,接下来以工程化实施方案的思维方式思考如果要实施度量指标需要完成怎样的工作。借鉴一些ToGAF的概念,每一项事都是需要有目标的,在目标的指导下去做具体的实施工作。度量指标工作具体的实施步骤如下:
引自《统计学教程》(主编:王怀伟 清华大学出版社)
从上图可以看到在软件行业内指标体系可以分为很多种。最终对客户有意义的,有价值的肯定是运营指标体系。运行软件指标体系是本次的目标,主要描述软件运行过程中的一些参数。《软件过程指标》、《软件指令指标》、《DevOps指标》都是软件在开发以及运营过程中的软件过程指标。
下图中是指标体系的一个实例,用于描述DevOps指标体系中的一些指标:
这个实例中描述了DevOps的几个指标。主要的指标目标是为了体现DevOps怎样为客户提供价值,并在这个基础上提出适应多变的环境(需求环境,开发环境,质量环境,过程环境等)。
真对于软件运行指标体系的目标是提高稳定性,减少故障,降低运营成本。
在驱动指标体系搭建形成闭环的最后一步就是数据应用,在采集的数据验证无误后应用于实际业务中,驱动业务增长。常用的分析理论有:4P理论、PESTEL理论、SWOT理论、5W2H理论、逻辑树理论、用户使用行为理论、AARRR理论。可以参照: 数据分析方法论(二)——常用数据分析方法
真对于软件运行指标体系的目标,分析方法需要满足故障检测,平稳程度,自动化程度几个方向。分析方法以统计方法为主,统计故障情况,统计自动化占比,统计测试质量等。
上面说明了度量指标的目标和指标分析方法。都是一些通用性的分析,未对某一个特定领域中的指标体系进行分析。一个特定领域中的指标体系包括的内容有哪些,这些内容起着怎样的作用。这些内容会在本节加以分析与描述。
先给出一个指标体系的整体架构:
分析方法:
在整个指标体系中分析方法提供跟业务相关的,对业务负责的内容。因为分析方法是根据要解决的问题域进行建立的,并对业务是有意义的。分析方法是多变的,在针对同样的行业、同样的场景、不同的公司时使用的分析与建模的方法都可能是不同的。因为分析方法是真对大环境去把控的,所以,需要做的是真对这些元知识(分析方法),进行分析与总结之后在应用于不同的场景。
从某个侧面来说,数据分析技术(大数据,BI等)最终有意义的方面都是分析方法。具体使用哪项分析方法,怎样做展示其实对整个数据分析来说意义不大。
数据可视化:
数据需要展示出来才可以体现出数据的意义,所以,就像敏捷中“交付价值”一样。数据有了必须要提供价值才可以展现出数据的意义。这里的数据可视化的方式还是需要针对度量进行相关的分析与展示的,或者直接使用相关的内容进行展示的能力。下面说明另种可以进行定制化的展示的可视化工具。
数据基础平台:
数据基础平台即包括数据采集,数据接收,数据存储,数据分析基础等内容。主要满足基础的数据处理要求,可以与现在流程的DMP概念认为是等同的。大数据的基础也就是:
至于其他的指标可视化工具:Tableau,FindReport,Splunk。都是商业版软件,不适合在小公司使用。所以,不会选择这些商业化软件。
上面定义了软件指标的目标以及方法,现在需要将度量指标体系确定并细化到可度量级别。所以,就需要对指标进行拆解工作。
事件、参数和属性 说明:先给大家解释三个概念,事件、参数和属性。事件可以理解为用户的某个行为,比如登录、注册、购买,都统称为事件;事件和参数结合起来就是指标,比如登录次数、注册人数、购买金额这些我们称为指标,而次数、人数、金额就是事件的参数。事件属性可以从某个维度对事件进行拆分分析,比如登录方式就是登录的属性,分析不同登录方式的登录次数。
上图为运营指标的实例,软件运行指标体系的例子服务从异步消息系统接收到一个消息。事件即接收到消息,参数可以是处理时长(消息处理时长以及消息处理事件)。指标是处理时长必须在10ms之内。属性是消息可以是定时任务,异步任务等等。
下面会具体的介绍软件运行指标体系中会涉及到的度量。
软件本来就是数字化的事物,不过就是涉及到度量的维度。根据度量维度的不同,可能会涉及到很多模糊不清的指标。所以针对每一个度量指标必须遵循SMART原则:
这样既有度量目标,又可以具体的去实施。不存在不可度量的指标,方便具体的落地实施工作。
以上的度量指标分类是从 Metrics-Java版的指标度量工具之一 和
Metrics Core 整理出来的。
本阶段主要分析了度量指标的成因,以及度量指标中相关的分类方法。所以,这里只介绍了度量指标的前期概念。在下面一篇文章中给出相关的技术设计以及具体实践。
度量
互联网运营,该分析哪些数据和指标
数据分析方法论(一)——构建数据指标体系
数据分析方法论(二)——常用数据分析方法
创业公司如何构建数据指标体系?
电商数据分析基础指标体系
如何搭建指标体系
从 0 到 1 搭建数据运营体系
数据体系搭建 | 梳理架构和指标体系
metrics
Metrics-Java版的指标度量工具之一
JAVA Metrics度量工具 - Metrics Core 翻译
第 44 课 度量指标(Metrics)
度量指标类型
智能分析最佳实践——指标逻辑树
利用Metrics+influxdb+grafana构建监控
基于dropwizard/metrics ,kafka,zabbix构建应用统计数据收集展示系统
软件度量
软体度量
软件过程质量度量与控制
软件过程度量模型
软件度量与软件过程管理
质量度量指标设定分析-1
常见软件项目度量指标介绍
敏捷软件估算和度量
linux是干什么的
运维是一个广义概念,可以理解为运行和维护,这也和具体的学习以及工作息息相关,要想进行维护,首先要先把服务搭建起来,也就是先运行。这里我们所说的运维是指对服务器和数据库及集成环境的运维。
首先运维要学什么?
如果不喜欢大段文字,请直接看加粗字体:
操作系统:linux、windows
常用服务:RAID、vsftpd、samba、ssh
安全知识:iptables、firewalld、selinux、DDOS、CC
服务器:apache、nginx、tomcat、weblogic
数据库:MySQL、oracle、redis、mongodb、memcached
负载均衡:nignx、lvs、f5
高可用:keepalived
监控:zabbix、prometheus、openfalcon、grafana、睿象云告警平台
自动化运维:saltstack、ansible
虚拟化:docker、k8s
云计算:openstack
其他知识:计算机网络
Linux云计算提供了哪些服务
场景1:游戏,lol、csgo、和平精英等基于云计算平台并且动态扩容保持稳定的。
场景2:区块链
区块链技术在国内处于发展阶段,目前最主要就是区块链网站架构的安全,也是云计算的核心。
场景3:智能家居
华为、小米各大厂商的智能家居背后拥有海量数据,需要用处理分析的结果来用保障用户最好的体验并满足用户需求,业务数据处理支撑的背后就有分布式的存储和大数据的分析。
场景4:网络直播
B站直播、抖音直播、淘宝直播各种直播与直播带货背后都是千台到万台服务器支撑,批量维护升级,流量控制,自动化管理。
场景5:网络安全
之前我们的安全都是通过硬件防火墙,开源防火墙实现,在日益强大的互联网背景下,大流量和高并发场景是安全的新难题,我们需要云计算分流与行为检测,最终保证安全。
场景6:5G通讯
之前4G时代互联网网站和传统PC网站是类似的,到了5G时代,网站要应对大流量访问、各种缓存、消息队列,CDN架构等问题,必须用云计算来解决此类问题。
场景7:云手机,云电脑
从2020年火爆的云手机,云电脑从根本上解决每个人手机,电脑性能不统一的问题。你只需要一台可以上网的"显示器",去连接使用云手机/云电脑,云手机/云电脑背后核 心技术就是云计算。
场景8:物联网架构
IoT (Internet of Things) 物联网,让万物通过网络连接,智能家居,无人驾驶,这些物联网的架构,其背后的平台都是云计算平台和云服务器。
推荐理由1:国家大力支持
自 2017 年工信部《云计算发展三年行动计划(2017-2019 年)》发布后,地方政府不断出台政策积极推动企业上云,企业对于云计算的需求规模将快速扩大,有利于云计算的快速发展。
国家层面:2020 年全国新增上云企业 100 万家
地方层面:2020 年 19 个省市新增上云企业 130.3 万家
推荐理由2:岗位重要、不可或缺
2010年1月12日上午7点百度的服务器被攻击,五个小时损失超过1个亿,在这次长达5小时的被黑事件中,对数十万的百度企业客户造成心理上的负面影响,甚至在被黑客连续的攻击下无法持续经营,破产关门。
2017年12月7日11时左右,美团服务器出现大面积崩溃,包括外卖、团购在内的业务均受到影响,仅仅十分钟左右损失1200万。
推荐理由顺3:顺应时代发展背景
计算机发展到现在先后经历了硬件时代----网络时代----应用软件时代----移动互联网时代----互联网+时代----大数据时代,目前已经进入云计算、人工智能、5G、物联网、信息安全时代。
linux属于大数据,5G、人工智能、物联网的基础架构,也是信息安全系统的重要保障,互联网浪潮一波又一波走向成熟,但始终没有撼动Linux的核心位置。
推荐理由4:竞争小、工资高
截止2020年底,全国共有普通高等院校2688所,高等教育在学4002万。其中在学博士42.42万,在学硕士243.95万,普通本专科在校生3031.53万,五年制专科46万,专升本31.75万,成人专本科,自考,网络教育,开放教育共计606万左右。
几乎每所大学都有开设计算机相关专业,计算机专业必学开发语言,语言以C,C++,JAVA,网络技术为主,Python主要以选修课的方式存在,Linux科目在大学计算机系无论计算机科学与技术,软件工程,计算机网络,信息管理与信息系统均没设置Linux的专业, 大部分人都集中在高手如云的开发领域工作,竞争激烈。
Linux由于稀缺性,人才少,岗位重要,企业在招聘难,为了招到专业性人才,不得不降低学历要求,提高待遇。这也是IT行业为数不少的不看重学历看中技能的岗位,当然,大公司或者从事技术管理类型的岗位,学历也要求越来越高了。
推荐理由5:上手容易,能快速掌握
作为IT工作的从事者,我们的终极目标是CTO或者架构师的岗位,作为一个合格的架构师,开发和Linux运维都是必不可缺少的技能,先学习开发后学习运维,对于高学历和计算机专业人士,适合爬这样的陡坡,对于低学历和转行的朋友,先运维后开发,适合爬这样的缓坡,平稳过渡。
众所周知,开发需要良好的英语和逻辑能力,加减乘除与或非,矩阵,排列,组合,线性代数,统计学都少不了。但是Linux常见的命令200个左右,更多的是以技术解决方案为导向去实操,容易记忆掌握。
IT行业我们可以理解为一个大的超市,我们的目标都是想要进入这个超市,做开发就是走前门,人员多,不容易进入。
做Linux就是从后门进,人少,更容易进入。等进入IT行业之后我们可以凭借自己的优势,盘点自己的资源,选好方向进一步提高自己,相信每个人都会得到自己想要的结果。
推荐理由6:职业路径广
职业路径1:Linux运维-Linux高级运维工程师-DBA-DBA专家-DBA大师
职业路径2:Linux运维-Linux高级运维工程师-Linux云计算高级运维工程师-网站架构师-CTO
职业路径3:Linux运维-Linux高级运维工程师-自动化运维工程师-自动化开发工程师(需要会Python)
职业路径4:Linux运维-安全运维工程师-安全运维管理岗-企业IT安全顾问
掌握以下技术就可以做
若要从事Linux相关的工作,需要掌握以下知识结构
Linux基础命令
Linux基础服务
Linux web服务
Linux web服务深入
大规模服务器自动化
消息队列
ELK日志中心
数据库DBA内容
分布式版本控制Git
公有云运维技术
私有云技术Openstack
Ceph分布式存储技术
Zabbix+Grafana监控项目
k8s及安全
python自动化开发
总结:只要是有服务器的公司都离不开Linux运维,小到几人的公司,大到百度,腾讯,阿里,滴滴,美团、中国银行、太平洋保险等大型公司,运维在IT部门的作用是无法替代的。他们保障着服务器,系统,数据库,云计算的平台安全、稳定、可靠的运行,是值得尊敬的幕后的英雄。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!