挨踢部落故事匯(15):不斷拓新成為科技大潮中的弄潮兒
原創(chuàng)【51CTO.com原創(chuàng)稿件】周佳是個(gè)資深宅男,平時(shí)有時(shí)間主要是宅。比較喜歡研究心理學(xué)方面的書(shū)籍,平時(shí)喜歡看書(shū),給大家安利一本書(shū)《超越自卑》,個(gè)體心理學(xué)大師級(jí)著作。興致來(lái)了能玩一天游戲,經(jīng)常看電影。在工作方面一直專(zhuān)注于服務(wù)器后端開(kāi)發(fā),目前在一家服務(wù)公司做云計(jì)算基礎(chǔ)服務(wù)。
周佳·Java服務(wù)端工程師
Python語(yǔ)言現(xiàn)在十分火熱,而且很多云計(jì)算底層服務(wù)都是使用Python做的,分享下周佳是如何從Java程序員學(xué)習(xí)Python和云計(jì)算的心得。
從Java到Python,眼界大開(kāi)
周佳在第一份工作滿2年的時(shí)候,對(duì)于公司內(nèi)部的技術(shù)體系都摸透了,覺(jué)得沒(méi)有什么提升了,就想學(xué)點(diǎn)新東西。那時(shí)候14年左右,大數(shù)據(jù)剛剛火起來(lái),都在談大數(shù)據(jù)。他也看了一陣大數(shù)據(jù)的內(nèi)容,無(wú)非就是Hadoop那套東西,安裝部署之外,好像感覺(jué)不能深入做一些東西。后來(lái)公司開(kāi)始全面引進(jìn)云服務(wù),移植一些本地的服務(wù)到云服務(wù)平臺(tái),于是周佳開(kāi)始接觸到一些云服務(wù)平臺(tái),公司有意向作一些云資源給用戶,這就要用到云服務(wù)的公共API,而這些API接口是Python寫(xiě)的。做為一個(gè)Java程序員,剛開(kāi)始對(duì)Python代碼有一部分是不能理解的。于是周佳開(kāi)始進(jìn)軍學(xué)習(xí)python語(yǔ)言了。
要系統(tǒng)的學(xué)習(xí)一門(mén)語(yǔ)言不能僅靠只在網(wǎng)絡(luò)上查找教程,雖然有些帖子某個(gè)知識(shí)點(diǎn)寫(xiě)的非常精華,但買(mǎi)一本書(shū)是必要的?,F(xiàn)在周佳還記憶猶新,當(dāng)時(shí)買(mǎi)的書(shū)是《Python基礎(chǔ)教程(第2版 修訂版)》,書(shū)的內(nèi)容不錯(cuò),而且配套有很多練習(xí)項(xiàng)目,只可惜他并沒(méi)有全部看完。大約一周的時(shí)間,他把書(shū)上的知識(shí)點(diǎn)全部過(guò)一遍,就開(kāi)始著手項(xiàng)目了。
相比Java而言,Python語(yǔ)言是一門(mén)更高級(jí)的語(yǔ)言,抽象度更高。14年Java8發(fā)布,當(dāng)時(shí)周佳并沒(méi)有函數(shù)式編程的概念,學(xué)習(xí)了Python,給他打開(kāi)了一扇新的大門(mén)。函數(shù)式編程抽象程度高于面向?qū)ο螅以诖a的寫(xiě)法上更簡(jiǎn)潔,偏向于數(shù)學(xué)化。但是相對(duì)的,其可讀性不如面向?qū)ο竽菢右子诶斫?。Python的抽象程度高于Java,許多Java需要長(zhǎng)篇大論的代碼,Python代碼只要區(qū)區(qū)幾行就能搞定。這讓周佳對(duì)Python也是愛(ài)不釋手。比如:創(chuàng)建一個(gè)1到100的隊(duì)列,在Java中只能循環(huán)循環(huán)賦值,而在python中range(100)就可以了。只會(huì)一門(mén)編程語(yǔ)言的程序員不是好程序員,當(dāng)你多會(huì)幾門(mén)語(yǔ)言的時(shí)候,你的眼界會(huì)大大的開(kāi)闊,可能不止發(fā)現(xiàn)了一扇門(mén),而是發(fā)現(xiàn)了很多窗,解決問(wèn)題的思路也就多了。
周佳后來(lái)入職的下一家公司,需要做個(gè)后端管理平臺(tái),于是他選型Python的Django框架作為開(kāi)發(fā)平臺(tái)。有空的時(shí)候跟同事聊天,被問(wèn)道當(dāng)初他學(xué)習(xí)Python是怎么入門(mén)的,花了多長(zhǎng)時(shí)間,他說(shuō)一周!其實(shí)語(yǔ)言之間雖然語(yǔ)法千差萬(wàn)別,但是理念都是相通的。當(dāng)初學(xué)習(xí)Java的時(shí)候,他大三學(xué)了一年都是懵逼狀態(tài),學(xué)習(xí)第二門(mén)語(yǔ)言的時(shí)候,真的只用了一周時(shí)間。李連杰的電影里有句話:學(xué)習(xí)乾坤大挪移普通人要30年,打通任督二脈者只需1個(gè)時(shí)辰,想必周佳是打通任督二脈了吧。
Python到云計(jì)算,繼續(xù)拓新
2016年周佳入職到一家做云計(jì)算的公司,在面試的時(shí)候,他提到有Java和Python雙重開(kāi)發(fā)技能,很容易就通過(guò)了面試。到了新公司,又是一個(gè)全新的領(lǐng)域,云計(jì)算是他以前是沒(méi)有接觸過(guò)的。公司云計(jì)算平臺(tái)的底層是用Python做的,上層業(yè)務(wù)平臺(tái)使用Java寫(xiě)的。當(dāng)然,具體的業(yè)務(wù)平臺(tái)架構(gòu)是十分復(fù)雜的,上層使用的Springcloud的微服務(wù)框架,部署于Docker容器內(nèi)。使用Jenkins做持續(xù)集成開(kāi)發(fā)部署。底層基于Docker和虛擬機(jī)做云服務(wù)。剛?cè)肼毜臅r(shí)候,他好些東西不會(huì),硬著頭皮學(xué),抱著大腿就不放,特別是Docker部分,之前他所在的都是一些規(guī)模小的公司,可能沒(méi)有使用Docker的必要。周佳看著教程,對(duì)著命令一遍一遍的練習(xí),拉去鏡像,創(chuàng)建容器,配置網(wǎng)絡(luò),掛載數(shù)據(jù)卷,反復(fù)練習(xí)。經(jīng)過(guò)不長(zhǎng)時(shí)間,他終于從對(duì)云計(jì)算一竅不通的門(mén)外漢變成團(tuán)隊(duì)的中堅(jiān)力量,不僅做上層業(yè)務(wù)平臺(tái),還做底層基礎(chǔ)服務(wù)。堅(jiān)持不懈的學(xué)習(xí)使他在全新技術(shù)領(lǐng)域有了立足之地。
然而程序猿的世界總是充斥著各種突發(fā)事件,前不久云服務(wù)好些個(gè)容器掛載的存儲(chǔ)設(shè)備突然全部變成只讀設(shè)備,無(wú)法進(jìn)行任何操作,在物理服務(wù)器上也無(wú)法執(zhí)行相應(yīng)的Docker命令,無(wú)法查詢(xún)Docker的容器信息,執(zhí)行任何Docker命令都進(jìn)程卡死,周佳判斷肯定是Docker的daemon進(jìn)程被某些容器卡死了。如果重啟daemon能解決問(wèn)題,但是這樣做,這個(gè)物理服務(wù)器上的所有Docker容器會(huì)全部死掉,恢復(fù)工作是災(zāi)難性的,肯定是下下策。關(guān)鍵是找到到底是哪幾個(gè)容器把進(jìn)程卡死的,于是他找到運(yùn)維最近創(chuàng)建的幾個(gè)容器,進(jìn)入容器目錄,查詢(xún)?nèi)萜鞯腃onfig.json配置文件,查詢(xún)?nèi)萜鬟M(jìn)程的pid,將剛剛創(chuàng)建的容器進(jìn)程全部殺掉。試了一下docker ps,果然好了,隨后他重建了這幾個(gè)Docker容器。事后周佳跟運(yùn)維溝通了下,原來(lái)是由于最近運(yùn)維給存儲(chǔ)服務(wù)更換過(guò)硬盤(pán),更換的硬盤(pán)上的存儲(chǔ)設(shè)備對(duì)應(yīng)的正是這個(gè)物理機(jī)上的這幾個(gè)容器,導(dǎo)致容器存儲(chǔ)設(shè)備無(wú)法掛載。
隨著IT技術(shù)的深入發(fā)展,越來(lái)越多的公司都在構(gòu)建自己的云服務(wù),這有兩方面的意義,一個(gè)是構(gòu)建自己的基礎(chǔ)信息平臺(tái),提高開(kāi)發(fā)運(yùn)維的自動(dòng)化程度,提高工作效率;第二個(gè)是可以整合物理資源,出售部分剩余的物理資源為公司獲取一定收入,當(dāng)然做大了,還能成為公司的主營(yíng)業(yè)務(wù)。
一入猿門(mén)深似海,學(xué)海無(wú)涯苦作舟。當(dāng)踏上IT這條道路,就注定走上了終身學(xué)習(xí)的道路。計(jì)算機(jī)技術(shù)飛速發(fā)展,也推動(dòng)著開(kāi)發(fā)者不得不拼命的學(xué)習(xí)新技術(shù)。只有不斷的更新自己的知識(shí)技能,才能成為科技大潮中的弄潮兒。
如果你也愿意分享你的故事,請(qǐng)加51CTO開(kāi)發(fā)者QQ交流群 312724475聯(lián)系群主小官,期待你的精彩故事!
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】