摘要:在云計算剛進入中國的時候,成功地把握住了職業轉型的機會,在實踐中成長為優秀的架構師。技術人攻略在工作中遇到最大的挑戰是什么做云計算的難點在什么地方挑戰最大的是在工作的時候,要從頭到尾搭一套以為基礎的云計算平臺。
導語:本期采訪對象李雨來@Blacktear ,86年生人,是云計算創業公司迅達云成的架構師,提供云計算領域的IaaS服務。畢業于北工大機械專業的他,曾有過長達兩年半的技術編輯生涯,對編程的熱愛支持著他成長,出版社的工作也拓展了他的技術視野。在云計算剛進入中國的時候,成功地把握住了職業轉型的機會,在實踐中成長為優秀的架構師。除了個人的成長經歷,他還談到在云計算領域的實踐經驗和感悟,強調開發要站在運維的角度看問題,在云計算時代,開發和運維的結合將變得越來越重要。
?
“搞編程這行如果不是興趣驅動的話,永遠會覺得它只是一個工具,如果非常有興趣,就會發現很多樂趣。計算機行業更新這么快,如果只是上班工作,下班回家什么也不想,那么用不了幾年就會被淘汰?!?/em>
技術人攻略:你從什么時候開始接觸編程?
我從小學就開始接觸電腦,通過Basic對編程建立了一些感性的認識,高中開始學計算機二級C語言的書??墒强即髮W由于分數不夠,進了機械工程及自動化專業。但還是很喜歡計算機,就一直泡圖書館看相關的書,通過一些小項目積累經驗。計算機這個領域很偏實踐,看書上的理論是一回事,真正動手做了之后再反思自己做的東西,會對理論有更深的理解。
* 技術人攻略:為什么畢業的時候沒有找開發的工作,而是進了出版社做技術編輯?
因為不是計算機專業出身的,HR那關就過不了,那會兒也沒有人脈可以推薦工作,就去了電子工業出版社的博文視點,做了兩年多的技術編輯,工作主要是跟蹤一些技術趨勢,聯系作者做一些書。
也寫了一些程序,根據書的銷售的數據,做一些類似大數據處理的工作。當時出版社的電腦都是很普通的臺式機,計算能力有限,所以用了分布式的方式來實現計算。還有就是從各個網站上抓一些帖子做數據分析。出版社離書比較近,對視野的開闊有幫助,所以感覺這段時間跟讀了個研究生似的。
* 技術人攻略:后來什么時候開始真正的做開發?
在出版社的工作畢竟不是自己最喜歡做的,2010年云計算剛開始進入中國,正好有機會可以去一家美國的云計算公司做開發,于是就辭職加入了。很多人都感覺我跳槽的這個跨度很大,我自己卻覺得還行,在出版社出書也是教別人怎么做Coding,如果你想把一個事兒給大家說明白的話,你自己得先明白。
搞編程這行如果不是興趣驅動的話,永遠會覺得它只是一個工具,如果非常有興趣,就會發現很多樂趣。計算機行業更新這么快,如果只是上班工作,下班回家什么也不想,那么用不了幾年就會被淘汰。我是學機械的,機械這個行業發展了幾百年已經很成熟了,搞機械的人都知道本叫做機械設計手冊的書,基本上你想要做的設計,所有的能拿到的標準件的尺寸,能承受的強度,查手冊都能查出來。而計算機這行發展才幾十年,沒有這樣固定的模式,如果沒有很強興趣驅動,很快就會落后。
?
“云計算這塊遇到的主要問題不是編程,而是運維上的問題,更多考慮的不僅僅是性能,還包括如何保證穩定性。”
技術人攻略:在工作中遇到最大的挑戰是什么?做云計算的難點在什么地方?
挑戰最大的是在China Cache工作的時候,要從頭到尾搭一套以KVM為基礎的云計算平臺。當時考慮過OpenStack,但當時OpenStack的架構還不夠成熟,在跨數據中心部署的情況下會有一些安全性的問題。所以后來完全重新寫了一套,通過這個挑戰在技術上成長得很快。
云計算這塊遇到的主要問題不是編程,而是運維上的問題,更多考慮的不僅僅是性能,還包括如何保證穩定性。為客戶提供服務,程序要寫得很嚴謹,系統在應用一些配置的時候,要設計如果失敗的話回退怎么辦;另外要考慮穩定性的因素,因為中國的網絡環境不是太好,在公網上跑一些東西的時候,大網抖動一下,或者某個數據中心到一個核心節點的鏈路不是很好,導致一些數據連接的中斷,怎么能重建連接,怎么自動做一些重置,怎么保證集群的穩定性,程序必須具備自動診斷、自動恢復的功能。純Hadoop那套東西全在內網,不用考慮網絡環境的問題,云計算的服務器都在公網上,怎么向服務器發送一些消息,服務器怎么保證消息能收到,這些是需要積累經驗的,好多經驗也都是四處碰壁碰來的。
另外一個難點就是對知識面的要求很高,做IaaS****要讓整個數據中心實現自動化,需要了解包括服務器、交換機、網絡、存儲,并且這幾部分如何整合起來,作為一個服務對外提供。云計算的運維不是簡單的會用Linux,不僅是做一些維護性的操作,還要和開發一起討論整個系統的物理架構是什么樣的,交換機的配置是怎么做的,網絡是怎么搭的。因為牽扯到太多的系統,所以對于運維的要求非常高,出問題原因有可能是系統的bug,也有可能是數據中心的網絡等,怎么去快速的定位、解決問題,有很高的技術含量。對于一個復雜系統來說,想了解哪兒出了問題,復雜度不亞于給人看病,而且有時候并不簡簡單單是一個問題,可能是好幾個地方的故障引發的導致嚴重問題。
* 技術人攻略:云計算時代的開發和運維工作是不是會更緊密的融合?
我自己很喜歡學習一些運維自動化的東西,可以開拓視野。做后臺系統的工程師很有必要多了解一些運維知識,因為做出來的系統一方面是給業務人員用,另外一個潛在的客戶就是運維團隊的同事。如果運維在部署系統的時候覺得吃力,可想而知這個系統寫得有多糟,如果運維不部署你的系統,系統一點意義都沒有。開發在搭測試環境的時候,其實相當于做了一部分運維的事兒,這個過程中開發工程師可以想想用什么方式讓它變得更簡單。還有就是自動化部署,用自動化工具來做重復性的工作,這樣可以保證持續Release,增強工程師的滿足感,另外也可以降低出錯的幾率。如果能達到Devops的效果更好,就是開發運維化、運維開發化,這兩個團隊其實是一個團隊了。
運維其實挺苦逼的,干好了沒人說你好,稍微出點錯就挨罵。越牛的運維越是拿錢砸出來的,如果沒摔過跟頭,就不可能知道地上哪兒有坑。有的公司對于運維犯錯這個事兒的思路不太對,運維捅一大簍子,就把人開了招新人,但新人更有可能犯錯,而老人不太會犯同樣的錯誤。運維對于產品來說很重要,能不能讓系統不出大問題,出了問題之后能不能很快恢復。就跟軍隊一樣,養兵千日用兵一時,但是很多公司沒有把運維當軍隊,就當掃地的使。
* 技術人攻略:你現在所在的這家公司是云計算領域的創業公司,你對現在云計算創業的市場環境怎么看?
現在云計算創業這塊創業的人多了,快到了當年大批量上團購的階段。技術含量也已經被壓了下來,因為OpenStack的開源架構已經很成熟,很方便就能搭出一套云平臺,整個行業對云計算的接受程度也越來越高。
不過我們公司的系統完全是自己搭的,一方面因為之前在云計算這塊積累過很多經驗,另一方面,如果完全搭在OpenStack的環境下,會受限制,并且二次開發的工作量也不小。OpenStack****像一個大而全的東西,用起來比較復雜,如果自己做,基于自身的業務特點做技術選型,可以把事情做得更專業,運維起來也更容易。OpenStack的UI界面做得不夠好,需要二次開發,做跟自己業務相關的一套東西。如果不用社區做的一鍵化部署工具的話,OpenStack對運維也很不友好,需要配置的東西太多。
我們公司提供的服務目前還是主要是基于IaaS這層,主要面向游戲客戶,對他們來說采用IaaS更靈活,因為已經積累了一些規則、業務運營模式和系統,用PaaS的方式他們也不一定能接受。
?
“打個比方,如果你了解的語言特別多,等于是在周游世界;如果對某個語言了解得很深,就類似于把北京城每一個角落都去了一遍。因此,當見識過很多東西,對其他語言設計的理念有了解之后,你的視野就變得更開闊了。”
技術人攻略:在開發語言的選擇上你有什么傾向和建議嗎?
語言我用得挺雜的。在語言選擇這塊,我傾向于會得越多越好。打個比方,如果你了解的語言特別多,等于是在周游世界;如果對某個語言了解得很深,就類似于把北京城每一個角落都去了一遍。因此,當見識過很多東西,對其他語言設計的理念有了解之后,你的視野就變得更開闊了。當然對初學者來說,還是應該先對某一門語言了解到一定程度之后,再拓展到其他編程語言會比較好。不同的語言在處理一些特殊的情況下,有不同的做法,例如同樣實現一個根據配置調用不同代碼處理數據的功能,Java和Python的實現方式就會不一樣,Java會用到接口和工廠類,動態語言則可以直接根據配置拼出一個函數名調函數。不管用什么語言,目標就是把問題解決了,根據不同的情況選擇適合的語言。對創業企業來說,用Java搭一套Web界面的人力成本和時間成本遠高于用ROR,所以語言選擇不在于技術本身,跟時間、成本都有關系。
* 技術人攻略:如果不考慮工作的話,你想開發什么東西?
比較感興趣的還是做一些智能家居的東西,搞一些軟件和硬件結合的事兒,例如可以通過iPad控制家里的洗衣機、冰箱等。我個人對硬件還是有點興趣,計算機不能只停留在一個方盒子里,得讓他出來。有的人擔心技術的發展會帶來更多的問題,我舉個航空工業的例子,飛機的自動駕駛系統發明以前,空難的問題主要是人犯的錯誤所帶來的,自動駕駛系統發明之后雖然有時候會失靈,但可以在有問題的時候切換回手動,技術很多時候是有兩面性的,不能因此否定自動駕駛系統對航空工業發展所起到的作用。
* 技術人攻略:有沒有你特別欣賞的人或者公司?
每個人都有他自己的優點,聞道有先后,術業有專攻,在一線做Coding的人應該保持謙虛的心態。
* 技術人攻略:你做技術編輯的時候看了不少書,能不能推薦一些有價值的書?
我覺得看書是一個過程,不是說看了幾本書,就能把計算機領域的東西弄得很清楚了。而且計算機有很多不同的領域,不是你都看過一遍就行了,這幾個領域之間有先后的順序,如果不了解最初的CPU長什么樣,直接看Intel的CPU手冊就跟看天書差不多。任何東西都是循序漸進演化過來的,最重要的是本質上的那些東西,例如CPU再怎么演化也不會逃出馮諾依曼的架構。
很多學計算機的人對單片機了解不多,單片機可以理解為x86架構的一個鼻祖設計。如果你寫一個程序,用現在的編程語言足夠解決問題的話,沒必要看硬件的東西,但如果想提升你的知識,了解操作系統到底怎么干活、硬件總線之間的尋址是怎么工作的,那么推薦有精力的人看看8051和數字電路。計算機是以數字電路為基礎的一門學科,逐漸發展過來,****CPU****看似很復雜,但還是從門電路演化過來的,如果學過數字電路,了解怎么設計加法器、單片機,用單片機做一些小的設備,對你了解計算機會有很大幫助。
編程方面的書,推薦《Java編程思想》,看了這本書之后,會提升對面向對象和java類庫的了解??磿鴳撨吙催呑?,做得差不多的時候再去想,想完之后回來再去看一些東西,在這么一個閉環的過程中逐漸進步。
?
技術人攻略訪談是關于技術人生活和成長的系列訪問,歡迎和我們有共同價值觀的你關注“技術人攻略”,郵箱 devlevelup@gmail.com,新浪微博 @devlevelup,希望能成為技術人成長的精神家園。
歡迎通過微信公眾賬號關注技術人攻略
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25122.html
摘要:導語本期訪談對象許式偉,七牛云存儲,國內語言圈領軍人物,社區發起人。許式偉的經歷頗有傳奇性,大學時就有狂外號的他,憑一份手寫簡歷成功應聘金山,兩年后成長為首席架構師,領導長達年的研發。在某技術大會的間隙,我第一次見到許式偉。 showImg(https://segmentfault.com/img/bVjLDc); 文:Gracia (本文為原創內容,部分或全文轉載均需經過作者授權,...
摘要:我一直認為運維工程師就是讓跳舞的人,當我操縱幾百臺機器,整齊劃一地做一件事情,那種感覺特別棒。技術人攻略你怎么看待,運維和開發的關系應該怎樣平衡國內大家提得多 showImg(http://segmentfault.com/img/bVb66I); 技術人攻略:運維工作普遍很辛苦,你卻能做得如此快樂,有哪些經驗可以分享? 流程比補位更重要,方法比拼命更重要。UPYUN運...
摘要:導語本期采訪對象黃允松,青云創始人及。作為一個純粹的工具理性主義者,黃允松致力于打造優良的工具,大幅降低的復雜性,讓一切變得更加平滑和簡單,這是他讓世界變得美好起來的方式。 showImg(http://segmentfault.com/img/bVbYfe);文:Gracia 攝影:周振邦(本文為原創內容,部分或全文轉載均需經過作者授權,并保留完整的作者信息和技術人攻略介紹。) ...
閱讀 1769·2021-10-19 13:30
閱讀 1335·2021-10-14 09:48
閱讀 1530·2021-09-22 15:17
閱讀 2007·2019-08-30 15:52
閱讀 3273·2019-08-30 11:23
閱讀 1983·2019-08-29 15:27
閱讀 887·2019-08-29 13:55
閱讀 753·2019-08-26 14:05