是的,對(duì)程序員和軟件開發(fā)從業(yè)者來說,當(dāng)Coding成為興趣時(shí),這種對(duì)技術(shù)的執(zhí)著和美的追求,就變成了程序員的“詩和遠(yuǎn)方”。
在StackOverflow的一項(xiàng)有關(guān)年齡的調(diào)查中發(fā)現(xiàn),40歲之后的開發(fā)人員占開發(fā)人員總數(shù)的13%。那么其他人到哪里去了?在國內(nèi),由于競爭、壓力和企業(yè)研發(fā)力量年輕化文化,他們被解雇了或者上升到管理崗位。似乎軟件開發(fā)對(duì)于過了40歲的人來說,就意味著終結(jié)。
在國外,事實(shí)可能并非如此,有很多人已經(jīng)年過40,仍把技術(shù)當(dāng)做一種追求。例如,下面這幾位超過40歲的老程序員(Rob Fletcher、John Brothers、Roger Whitcomb、Scott Gartner、Brian Bowman等),他們都是頂級(jí)的軟件開發(fā)者,拒絕從事管理崗位,仍然活躍在開發(fā)一線,將編程作為生活收入的主要來源,對(duì)從事編碼工作樂此不疲。
他們?yōu)槭裁纯梢訡oding一輩子,把Coding作為興趣愛好或事業(yè)(也正是這種興趣造就了如今的成就),而不是年輕人的工作或養(yǎng)家糊口的飯碗?原因當(dāng)然是多方面的,但歸根解底還是觀念、文化和制度等條可以件支撐他們把Coding當(dāng)做一生努力奮斗的事業(yè)。
Dennis,一位來自荷蘭名叫的技術(shù)咨詢師。雖已經(jīng)退居Coding二線,仍然執(zhí)著于技術(shù),通過維護(hù)GitHub把技術(shù)與美結(jié)合在一起展現(xiàn)給大眾。
下面談?wù)勊木幊膛d趣以及他所涉及的技術(shù)。他在工作中管理了幾臺(tái)存儲(chǔ)系統(tǒng),包括幾款華為公司V3存儲(chǔ)企業(yè)存儲(chǔ)。設(shè)備廠商也提供的商業(yè)數(shù)據(jù)收集、設(shè)備管理和監(jiān)控的軟件,但Dennis認(rèn)為這些監(jiān)控軟件并不能滿足自己的運(yùn)維要求。于是,就自己基于Grafana和設(shè)備廠商提供的SNMP標(biāo)準(zhǔn)API獲取數(shù)據(jù)和監(jiān)控指標(biāo),開發(fā)了多款設(shè)備監(jiān)控、管理、統(tǒng)計(jì)軟件,并在GitHub上實(shí)時(shí)更新、維護(hù)。
針對(duì)華為V3、Dorado存儲(chǔ),Dennis開發(fā)了幾款名叫Huawei OceanStor metrics in Grafana和Dorado storage metrics的軟件(關(guān)注公眾號(hào),分別回復(fù)“V3”和“Dorado”關(guān)鍵字,獲取對(duì)應(yīng)Dashboard界面完整截圖),下面是V3存儲(chǔ)的Dashboard截圖。
Grafana數(shù)據(jù)展示效果還是發(fā)很棒的吧。有了Grafana支持,Dennis認(rèn)為只要能從設(shè)備中獲取監(jiān)控、性能、應(yīng)用和告警等數(shù)據(jù)指標(biāo),就能通過Grafana很容易的展示出來。
Dennis維護(hù)的GitHub包含了多個(gè)基于Grafana開發(fā)的項(xiàng)目,下面再以另一個(gè)LizardFS項(xiàng)目來進(jìn)一步看看Grafana Dashboard界面,LizardFS是一個(gè)分布式、海量擴(kuò)展的單一命名文件系統(tǒng),采用數(shù)據(jù)和元數(shù)據(jù)分離的設(shè)計(jì)架構(gòu)。
Grafana到底是什么呢?Grafana是一個(gè)自定義報(bào)表、顯示圖表開源儀表盤工具,它可用于Collectd、Graphite、InfluxDB等一起使用。最新的版本還可以支持使用其他數(shù)據(jù)源(比如Elasticsearch、Collectd、Zabbix以及Dennis所采用的SNMP數(shù)據(jù)收集方式)。InfluxDB 是 Go 語言開發(fā)的一個(gè)開源分布式時(shí)序數(shù)據(jù)庫,非常適合存儲(chǔ)指標(biāo)、事件、分析等數(shù)據(jù)。Collectd 是C 語言寫的一個(gè)系統(tǒng)性能采集工具。
Grafana最主要的是數(shù)據(jù)展現(xiàn)能力,Grafana主要用來展示設(shè)備運(yùn)維相關(guān)數(shù)據(jù)。關(guān)于數(shù)據(jù)展現(xiàn)能力,為了迎合大數(shù)據(jù)展示趨勢,針對(duì)不同行業(yè)數(shù)據(jù)(如地圖數(shù)據(jù)、金融、股票、函數(shù)公式 可視化等),目前出現(xiàn)了大量的展示工具。
Grafana非常強(qiáng)大的一個(gè)功能叫做Grafana Dashboard Templating,可以說是使用Grafana必用的技能。Dashboard 通過定義變量在不同界面被引用,如當(dāng)你定義了變量在某一個(gè)Dashboard頁面就會(huì)出現(xiàn)下拉選擇框,從而也就具有可交互性了。在使用時(shí)只需要制作好一個(gè)Dashboard,然后利用Dashboard Templating功能就可以把做好的Dashboard進(jìn)行復(fù)用,類似于模板。
大多數(shù)公司都是使用Zabbix收集數(shù)據(jù),通過Grafana展示出來。默認(rèn)Grafana沒有采用Zabbix作為數(shù)據(jù)源。如果要以Zabbix為Grafana的數(shù)據(jù)源,首先創(chuàng)建一個(gè)Dashboard,然后創(chuàng)建Dashboard Templating,后即可把Zabbix監(jiān)控、告警、性能、容量等數(shù)據(jù)關(guān)聯(lián)起來,最后通過Grafana展示出來(關(guān)于Grafana介紹、學(xué)習(xí)資料和用法,可搜索官方網(wǎng)站查看)。
當(dāng)然,在設(shè)備監(jiān)控和運(yùn)維方面,除了Grafana外,還有很多其他類似工具,如名叫Kibana的工具,它是一個(gè)分析和可視化平臺(tái),支持瀏覽、可視化存儲(chǔ)的日志數(shù)據(jù),如ELK棧(Elasticsearch、Logstash和Kibana) 。同樣也支持Dashboard,支持深入的數(shù)據(jù)分析并以多種圖表、表格和可視化方式展示數(shù)據(jù)。
在日志與度量方面,Grafana專注于根據(jù)CPU和IO利用率之類的特定指標(biāo)提供時(shí)間序列圖表。Kibana運(yùn)行于Elasticsearch的上層(可以實(shí)現(xiàn)數(shù)據(jù)的檢索和瀏覽),專注于創(chuàng)建一個(gè)復(fù)雜的日志分析儀表盤。
不難看出,Grafana和Kibana的界面風(fēng)格區(qū)別還是很大的,這也可以滿足不同開發(fā)者的需求。雖然Kibana有大量內(nèi)置的圖表類型,但它們之上的控制仍是最初的限制,Grafana包括更多的選擇,可以更靈活地瀏覽和使用圖表等。Grafana支持許多不同的存儲(chǔ)后端。Grafana針對(duì)每個(gè)數(shù)據(jù)源都有一個(gè)特定的查詢編輯器,它是針對(duì)數(shù)據(jù)源所具備的特性和能力特別定制的。然而,正如上文所說,Kibana原生集成進(jìn)了ELK棧,這使安裝極為簡單,對(duì)用戶非常友好。
評(píng)論