3P 你需要知道的事

站在運(yùn)維自動(dòng)化的角度看3P

希望你沒有被標(biāo)題嚇到,這里說到的3P,并不是大家想象的那樣.
在運(yùn)維界的早期,有這么一種聲音,掌握了3P,你就掌握了運(yùn)維的全部.
好吧,說的有點(diǎn)夸張.
3P 是 指 PHP PERL PYTHON

我的3P發(fā)展史

bash=>start: 1.0 bash時(shí)代
php=>operation: 2.0 php時(shí)代
perl=>operation: 3.0 perl時(shí)代
python=>subroutine: 4.0 python時(shí)代
bash->php->perl->python

從2012年正式入職運(yùn)維行業(yè)以來,我所接觸和自我感知的運(yùn)維自動(dòng)化概經(jīng)歷了以上的4個(gè)變化.bash->php->perl->python. bash并不需要多言,一入運(yùn)維就必須要熟練掌握的基本語言.不是因?yàn)樗嵌嗝吹母呱?而是bash確實(shí)能夠快速的解決一些基本的問題.備份/重啟等對(duì)我們來說,也是信手拈來.其實(shí)bash能解決運(yùn)維工作中的60%-80%的工作.要解決的問題越復(fù)雜,編寫bash所花費(fèi)的時(shí)間和代價(jià)太高,我有時(shí)候也想,為什么bash不能像其他的語言一樣形成自己的獨(dú)立模塊,能寫web,也能做其他語言也能做的事情?

PHP

我的php處女座之旅

2012年期間,國(guó)內(nèi)那時(shí)候,什么公有云,私有云并沒有正式進(jìn)入市場(chǎng).公司當(dāng)時(shí)所有的產(chǎn)品全部托管在機(jī)房.那是在北京/天津/廣州都有自己分屬的機(jī)房,每個(gè)機(jī)房大概有70臺(tái)服務(wù)器,當(dāng)時(shí)的架構(gòu)比較簡(jiǎn)單.通過DNS負(fù)載到不同地方的機(jī)房.

由于業(yè)務(wù)的發(fā)展,每隔1-3 個(gè)月可能要去機(jī)房上架機(jī)器,然后pxe安裝系統(tǒng),回到公司拿著execl一個(gè)個(gè)錄入新裝機(jī)器的基本信息,比如機(jī)柜位置,交換機(jī)信息,網(wǎng)絡(luò)信息,硬件的基本信息等等.每次安裝和核對(duì),要耗費(fèi)大量的時(shí)間和精力.當(dāng)時(shí)我們使用的是傳統(tǒng)的execl來記錄這些機(jī)器信息,然后通過VSS(Visual SourceSafe)管理.

這是一款很老的版本管理工具,老程序員應(yīng)該對(duì)這款工具比較熟悉,.我們用來作為團(tuán)隊(duì)協(xié)作管理各種文檔信息,其中就包括機(jī)房的機(jī)器信息.

回歸到正題上來,隨著機(jī)器的數(shù)量增多以及機(jī)器信息的列內(nèi)容越來越多.用execl來維護(hù)這些機(jī)器信息越來越不方便,不管是查找機(jī)器還是錄入機(jī)器信息,都是非常的麻煩.基于以上的問題,生出很強(qiáng)烈的想要做把資產(chǎn)信息做成web和可視化.這樣的話看起來應(yīng)該高大上一些,同時(shí)管理資產(chǎn)信息也很方便.那時(shí)候并沒有devops和cmdb的概念.同時(shí)我們部門就2 ~3 個(gè)人,大家也并不懂開發(fā).于是這我就慢慢摸索踏入編碼的不歸之路.苦學(xué)html/js/css,然后接觸php.最開始接觸PHP是因?yàn)楫?dāng)時(shí)我們業(yè)務(wù)用到一款工具,名叫sugarcrm,這是一款客戶關(guān)系管理,用php寫的.當(dāng)時(shí)經(jīng)常幫開發(fā)修改配置,慢慢自己對(duì)它的套路也熟悉了,進(jìn)而自研.

早期自己獨(dú)立寫的一款入門級(jí)別運(yùn)維資產(chǎn)管理系統(tǒng): https://gitee.com/lookingdreamer/AutomationManagement
大概長(zhǎng)這樣:


算是自學(xué)編程的處女座,現(xiàn)在回過頭來看,代碼規(guī)范什么寫的很亂,只能將就著看了.多說一句作為運(yùn)維開發(fā)的角度構(gòu)建邏輯思維,再到構(gòu)建代碼框架,到調(diào)試靜態(tài)頁面,一步步過來確實(shí)能收獲很多的感受.在接下來的幾遍document我將分篇幅分享一下.重點(diǎn)說一下從運(yùn)維的角度構(gòu)建產(chǎn)品邏輯以及實(shí)踐當(dāng)中遇到的一些問題.

PERL

基于名字服務(wù)的自動(dòng)化平臺(tái)(perl)

先上代碼:

基于名字服務(wù)的自動(dòng)化平臺(tái) https://gitee.com/lookingdreamer/RexDeploy_v1

凡是做運(yùn)維的,有點(diǎn)思維能力的同學(xué).總是想著偷懶.凡是一件事情做了兩次以上,你都可以通過自動(dòng)化的手段來解決它.
所以就開始折騰開源工具,什么chef,Puppet,ansible......,才進(jìn)入公司的時(shí)候.那時(shí)候采用的Puppet管理hosts文件等配置文件,并沒有對(duì)它進(jìn)入很深的研究.然后一不小心跌入perl語言的構(gòu)建自動(dòng)化的深坑,這其實(shí)是一個(gè)意外.大概是在2014年,正式接觸了開源,也是通過紅薯的(大家的)開源中國(guó)開始了解開源的一些事情,那時(shí)候有一些開源軟件的錄入,但是在運(yùn)維自動(dòng)化行業(yè),甚至運(yùn)維行業(yè),確實(shí)難以找到可以借鑒的軟件.那個(gè)時(shí)候,運(yùn)維方面的突出的開源確實(shí)是少的可憐.無意中看到開源推送的一款基于perl語言的自動(dòng)化框架,然后了解了一下,然后就一發(fā)不可收拾.

PYTHON

一站式運(yùn)維全平臺(tái)的開源解決方案

基于時(shí)間原因,代碼暫不開放.
上一張Project圖:

基于運(yùn)維痛點(diǎn)的認(rèn)知,基于工作當(dāng)中或者運(yùn)維當(dāng)中可能遇到的常態(tài)問題自動(dòng)化.所有的自動(dòng)化的并不是盲目的去做去開展.只有真正的去嵌合你的業(yè)務(wù)發(fā)展,才是好的自動(dòng)化.真正的做到效率的提升.

劃重點(diǎn)、總結(jié)

PHP是最好的語言

O..0 我就隨便說說,運(yùn)維行業(yè)用的php來構(gòu)建自動(dòng)化的很少.不少行業(yè),用它來直接構(gòu)建前端,因?yàn)閜hp的成熟高,我們?cè)跇?gòu)建的運(yùn)維自動(dòng)化的時(shí)候,并不想花很多時(shí)間浪費(fèi)在前端界面上面.php一開始就存在這個(gè)先天的優(yōu)勢(shì).但是也還是有一些用php構(gòu)建后臺(tái)或者中間接口的.比如現(xiàn)在的騰訊云的API接口,騰訊開源的tars以及騰訊開源的藍(lán)瓊,linux-dash等. 不選用php作為運(yùn)維自動(dòng)化的估計(jì)很大的原因是因?yàn)榘踩珕栴},運(yùn)維在很多的時(shí)候需要調(diào)用的底層的系統(tǒng)命令,一旦開放php的exec權(quán)限,風(fēng)險(xiǎn)也是大大的.二是性能問題,在處理的批量文本或者字符等在一般情況下的效率確實(shí)不是很完美.當(dāng)然也有一些的很不錯(cuò)的php的替代方案,我這里也不做過多的闡釋,純自己的個(gè)人見解.

PERL 是落寞的過客

老驥伏櫪 志在千里 烈士暮年 壯心不已
這也許是perl最真實(shí)的寫照,曾經(jīng)也許輝煌過,但如今早已沉浸在歷史的長(zhǎng)河里了。在python還么這么火,AI和機(jī)器學(xué)習(xí)還么興起的時(shí)候.perl 有著最強(qiáng)大的模塊庫,精煉、復(fù)雜、表現(xiàn)力強(qiáng).但是正是這些阻礙了它的發(fā)展,沒有規(guī)范、可讀性、整潔性和可維護(hù)性較差,導(dǎo)致它很難發(fā)展起來.也沒有強(qiáng)大的社區(qū)去推進(jìn)和改善.在國(guó)內(nèi)估計(jì)也就在扶凱的博客能見到一些見解和教程.一門語言要想得到發(fā)展,在入門這一層級(jí)就被攔住了,更何況往前發(fā)展了.

PYTHON 人生苦短 我用PYTHON

時(shí)代在往前走,大的方向和前提下. AI、數(shù)據(jù)統(tǒng)計(jì)、機(jī)器學(xué)習(xí).....使得PYTHON得到大力的發(fā)展.不可否認(rèn)的是,PYTHON確實(shí)有它的很多優(yōu)點(diǎn).優(yōu)雅規(guī)范、簡(jiǎn)潔明晰、易學(xué)易用、類庫豐富......在運(yùn)維行業(yè)也是如此,如ansible、saltstack等,基于此也衍生出很多的優(yōu)秀的python寫的運(yùn)維工具或平臺(tái).強(qiáng)大的社區(qū)和文檔,入門門檻也相對(duì)很低,所以它的發(fā)展也是很快的.(沒有千千萬萬的人民群眾支持,任何語言它也是發(fā)展不起來的)

PHP PERL PYTHON 做自己該擅長(zhǎng)的事情

對(duì)于中小公司來說,如何快速的構(gòu)建合適自己業(yè)務(wù)的自動(dòng)化平臺(tái)才是最重要的.至于使用什么樣的語言,什么樣的方案那都是仁者見仁智者見智了.還有大公司的解決方案和產(chǎn)品并不一定會(huì)適合你.你需要考量的會(huì)有很多,比如入手難易程度、業(yè)務(wù)規(guī)模、入手成本等,就是說你投入的產(chǎn)入和產(chǎn)出是不是相匹配的?再一個(gè)就是說中小公司一般的運(yùn)維的人員不多,但是做的事情卻很多很雜,既要對(duì)公司內(nèi)部負(fù)責(zé),也要對(duì)生產(chǎn)的運(yùn)行環(huán)境負(fù)責(zé).你既要合理的安排時(shí)間,也要合理的讓自己的工作更加有效率化.

以下建議僅供參考

  • 快速構(gòu)建前端 首選PHP
  • 快速的工具文化首選Perl 當(dāng)然PYTHON也可以
  • 構(gòu)建大型的運(yùn)維devops平臺(tái)推薦PYTHON

開放 是一種聲音

可能在幾年前,很少有聽見運(yùn)維在發(fā)聲.運(yùn)維這個(gè)角色,很是默默無聞的.似乎感覺不到它的存在.反正就是沒有存在感,有存在感的時(shí)候,反而是背鍋俠的名稱一直源遠(yuǎn)流長(zhǎng)的(我總想起: 運(yùn)維從刪庫到跑路).也就最近幾年,經(jīng)常聽聞運(yùn)維人在發(fā)聲,聽見他們的聲音和吶喊.從默默無聞的后臺(tái)走到前臺(tái).也是時(shí)間的考驗(yàn)吧,任何一個(gè)角色他都是不可忽視的,每個(gè)人都有他存在的價(jià)值和力量.

為什么說開放?
這個(gè)詞可能說得有點(diǎn)大,簡(jiǎn)單的說,一個(gè)人的見解畢竟是有限的,只有大家共同發(fā)聲。一起分享和開放,行業(yè)整體才能更加的往前進(jìn)步.守著自己的一畝三分地,永遠(yuǎn)也難以突破自己的局限.

想要做自己力所能及的改變

你是否有著一樣的運(yùn)維痛點(diǎn)?

運(yùn)維的從事工作很泛,小到PC電腦,大到生產(chǎn)運(yùn)維。工作中會(huì)遇到各種各樣的問題,其實(shí)大家都可能會(huì)遇到一樣的問題.既然你躺過坑了,其他的人又同樣的在上面在踩過一樣的坑.為什么沒有一致的解決方案?

持續(xù)集成是突破點(diǎn),但是作為中小公司我該選擇誰?

相信很多中小公司的運(yùn)維大部分的工作,都聚焦在版本的發(fā)布上面.同時(shí)版本發(fā)布也是打通的開發(fā)、測(cè)試、運(yùn)維的橋梁.涉及到自動(dòng)發(fā)布、流程管理等等各個(gè)方面.作為中小公司自研持續(xù)集成平臺(tái),不太現(xiàn)實(shí).所以開源也許是你的最好選擇,比如使用jenkins構(gòu)建持續(xù)流水線、比如最近騰訊的開放的藍(lán)鯨平臺(tái)、比如walle的web部署系統(tǒng)......................... 等等,還有很多很多的選擇.選擇一多,困擾我們的問題就來了,我們?cè)撊绾芜x擇?

很多相似的問題,為什么沒有統(tǒng)一的開源解決方案?

從事運(yùn)維無非會(huì)接觸以下,為什么沒有的一致的開源整套解決方案?

  • 基礎(chǔ)設(shè)施 (比如物理機(jī)、虛擬機(jī)(kvm/vmware/xen))
  • 持續(xù)交互
  • 流程管理
  • 監(jiān)控報(bào)警
  • 各種云平臺(tái)
  • ..................

當(dāng)然有一些廠商有一攬子的解決方案,奈何中小企業(yè),比如創(chuàng)業(yè)公司,可能是開發(fā)人員頂替運(yùn)維,公司的發(fā)展前期并不重視運(yùn)維方面的問題.更不會(huì)投入很大的成本去做這些事情,為了快速的搶占市場(chǎng),先把產(chǎn)品快速迭代出來才是王道.等到規(guī)模上來了,再去考慮穩(wěn)定性等方面的問題.當(dāng)然這也不是不行,如果在運(yùn)維方面,有對(duì)應(yīng)的標(biāo)桿去快速實(shí)踐,應(yīng)該又是另一方面的景象.當(dāng)然了,沒有利益驅(qū)動(dòng)的開源,很難以長(zhǎng)久,這又是另一說了.你說運(yùn)維不重要?應(yīng)該么人會(huì)這么說?更加重要的的是,你說從事的運(yùn)維技術(shù)是否真正的為你的業(yè)務(wù)產(chǎn)生了價(jià)值?

好了,暫時(shí)先到這兒吧! 繼續(xù)碼代碼去了......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,302評(píng)論 2 89
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,329評(píng)論 0 10
  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,203評(píng)論 3 119
  • 風(fēng)險(xiǎn)投資的起源與我的認(rèn)識(shí) 最早沒有抵押,不追究責(zé)任的風(fēng)險(xiǎn)投資可以追溯到19世紀(jì)末的J.P.摩根等人。J.P.摩根的...
    悅享同學(xué)閱讀 374評(píng)論 0 0
  • 送女兒去上學(xué)的路上,發(fā)現(xiàn)本來平坦的路面已經(jīng)被推土機(jī)推得支離破碎了。在離學(xué)校很遠(yuǎn)的地方,就要求家長(zhǎng)們,必須不行...
    longlong8612009閱讀 165評(píng)論 0 1

友情鏈接更多精彩內(nèi)容