是的,对程序员和软件开发从业者来说,当coding成为兴趣时,这种对技术的执着和美的追求,就变成了程序员的“诗和远方”。
在stackoverflow的一项有关年龄的调查中发现,40岁之后的开发人员占开发人员总数的13%。那么其他人到哪里去了?在国内,由于竞争、压力和企业研发力量年轻化文化,他们被解雇了或者上升到管理岗位。似乎软件开发对于过了40岁的人来说,就意味着终结。
在国外,事实可能并非如此,有很多人已经年过40,仍把技术当做一种追求。例如,下面这几位超过40岁的老程序员(rob fletcher、john brothers、roger whitcomb、scott gartner、brian bowman等),他们都是顶级的软件开发者,拒绝从事管理岗位,仍然活跃在开发一线,将编程作为生活收入的主要来源,对从事编码工作乐此不疲。
他们为什么可以coding一辈子,把coding作为兴趣爱好或事业(也正是这种兴趣造就了如今的成就),而不是年轻人的工作或养家糊口的饭碗?原因当然是多方面的,但归根解底还是观念、文化和制度等条可以件支撑他们把coding当做一生努力奋斗的事业。
dennis,一位来自荷兰名叫的技术咨询师。虽已经退居coding二线,仍然执着于技术,通过维护github把技术与美结合在一起展现给大众。
下面谈谈他的编程兴趣以及他所涉及的技术。他在工作中管理了几台存储系统,包括几款华为公司v3存储企业存储。设备厂商也提供的商业数据收集、设备管理和监控的软件,但dennis认为这些监控软件并不能满足自己的运维要求。于是,就自己基于grafana和设备厂商提供的snmp标准api获取数据和监控指标,开发了多款设备监控、管理、统计软件,并在github上实时更新、维护。
针对华为v3、dorado存储,dennis开发了几款名叫huawei oceanstor metrics in grafana和dorado storage metrics的软件(关注公众号,分别回复“v3”和“dorado”关键字,获取对应dashboard界面完整截图),下面是v3存储的dashboard截图。
grafana数据展示效果还是发很棒的吧。有了grafana支持,dennis认为只要能从设备中获取监控、性能、应用和告警等数据指标,就能通过grafana很容易的展示出来。
dennis维护的github包含了多个基于grafana开发的项目,下面再以另一个lizardfs项目来进一步看看grafana dashboard界面,lizardfs是一个分布式、海量扩展的单一命名文件系统,采用数据和元数据分离的设计架构。
grafana到底是什么呢?grafana是一个自定义报表、显示图表开源仪表盘工具,它可用于collectd、graphite、influxdb等一起使用。最新的版本还可以支持使用其他数据源(比如elasticsearch、collectd、zabbix以及dennis所采用的snmp数据收集方式)。influxdb 是 go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据。collectd 是c 语言写的一个系统性能采集工具。
grafana最主要的是数据展现能力,grafana主要用来展示设备运维相关数据。关于数据展现能力,为了迎合大数据展示趋势,针对不同行业数据(如地图数据、金融、股票、函数公式 可视化等),目前出现了大量的展示工具。
grafana非常强大的一个功能叫做grafana dashboard templating,可以说是使用grafana必用的技能。dashboard 通过定义变量在不同界面被引用,如当你定义了变量在某一个dashboard页面就会出现下拉选择框,从而也就具有可交互性了。在使用时只需要制作好一个dashboard,然后利用dashboard templating功能就可以把做好的dashboard进行复用,类似于模板。
大多数公司都是使用zabbix收集数据,通过grafana展示出来。默认grafana没有采用zabbix作为数据源。如果要以zabbix为grafana的数据源,首先创建一个dashboard,然后创建dashboard templating,后即可把zabbix监控、告警、性能、容量等数据关联起来,最后通过grafana展示出来(关于grafana介绍、学习资料和用法,可搜索官方网站查看)。
当然,在设备监控和运维方面,除了grafana外,还有很多其他类似工具,如名叫kibana的工具,它是一个分析和可视化平台,支持浏览、可视化存储的日志数据,如elk栈(elasticsearch、logstash和kibana) 。同样也支持dashboard,支持深入的数据分析并以多种图表、表格和可视化方式展示数据。
在日志与度量方面,grafana专注于根据cpu和io利用率之类的特定指标提供时间序列图表。kibana运行于elasticsearch的上层(可以实现数据的检索和浏览),专注于创建一个复杂的日志分析仪表盘。
不难看出,grafana和kibana的界面风格区别还是很大的,这也可以满足不同开发者的需求。虽然kibana有大量内置的图表类型,但它们之上的控制仍是最初的限制,grafana包括更多的选择,可以更灵活地浏览和使用图表等。grafana支持许多不同的存储后端。grafana针对每个数据源都有一个特定的查询编辑器,它是针对数据源所具备的特性和能力特别定制的。然而,正如上文所说,kibana原生集成进了elk栈,这使安装极为简单,对用户非常友好。
DS318x中CLAD的配置
不老神话仍在延续:8051必将驰骋IOT时代
一周新品推荐:Molex 即用型 (OTS) 电缆组件和PI LinkSwitch-TNZ开关电源IC
VideoMASTER和PXI创建无线HDMI MIMO测试系统
适合小型风力发电系统电流和电压测量的微型化隔离放大器
对技术的执着和美的追求变成了程序员的“诗和远方”
更大容量的固态硬盘除了存储空间更充足,还有什么好处?
如何选择PCB组件
AOI测试技术是干什么的
基于SiTime先进MEMS技术的新型汽车振荡器SiT9396/7简介
直接耦合放大电路的零点漂移
三星10nm级DDR4 SoDIMM内存,容量达到32GB单条
女友让翻译化妆品标签 看大佬如何用Python轻松解决
强力巨彩总部迎来了一批“特殊”的客人
反潜自导鱼雷声制导头的自动测试系统
上手体验评测一汽马自达阿特兹2.0L
win11如何把Edge换回IE
爆料:诺基亚803配备最大摄像传感
LED太阳能路灯实现高亮度的设计
什么是核心交换机?与普通交换机有何区别?