范范20130108
這是網(wǎng)絡(luò)工程需要學(xué)的課程:第一階段1、計算機(jī)操作基礎(chǔ)2、Office辦公自動化3、計算機(jī)組裝與維護(hù)4、精講TCP/IP技術(shù)5、網(wǎng)絡(luò)設(shè)備調(diào)試6、職業(yè)素養(yǎng)課:養(yǎng)成教育第二階段1、Windows Server系統(tǒng)管理2、Windows Server 服務(wù)器配置3、Linux系統(tǒng)管理與SHELL腳本編程4、Linux 服務(wù)器配置與應(yīng)用5、SQL Server 數(shù)據(jù)庫管理與應(yīng)用6、Pyhton網(wǎng)絡(luò)編程第三階段1、網(wǎng)絡(luò)設(shè)備與網(wǎng)絡(luò)設(shè)計CCNA2、IPV6及無線網(wǎng)絡(luò)技術(shù)3、網(wǎng)絡(luò)安全4、(黑客攻防技術(shù))5、結(jié)構(gòu)化綜合布線6、Linux服務(wù)器操作系統(tǒng)7、SQL Server數(shù)據(jù)庫設(shè)計查詢第四階段1、企業(yè)網(wǎng)安全管理(硬件防火墻)2、高級路由和交換技術(shù)CCNP3、云計算、云存儲技術(shù)4、畢業(yè)綜合實(shí)訓(xùn)
ID換了又換
一、什么是大型網(wǎng)站運(yùn)維?首先明確一下,全文所講的”運(yùn)維“是指:大型網(wǎng)站運(yùn)維,與其它運(yùn)維的區(qū)別還是蠻大的;然后我們再對大型網(wǎng)站與小型網(wǎng)站進(jìn)行范圍定義,此定義主要從運(yùn)維復(fù)雜 性角度考慮,如網(wǎng)站規(guī)范、知名度、服務(wù)器量級、pv量等考慮,其它因素不是重點(diǎn);因此,我們先定義服務(wù)器規(guī)模大于1000臺,pv每天至少上億(至少國內(nèi) 排名前10),如sina、baidu、QQ,等等;其它小型網(wǎng)站可能沒有真正意義上的運(yùn)維工程師,這與網(wǎng)站規(guī)范不夠和成本因素有關(guān),更多的 是集合網(wǎng)絡(luò)、系統(tǒng)、開發(fā)工作于一身的“復(fù)合性人才”,就如有些公司把一些合同采購都納入了運(yùn)維職責(zé)范圍,還有如IDC網(wǎng)絡(luò)規(guī)劃也納入運(yùn)維職責(zé)。所以,非常 重要一定需要明白:運(yùn)維對其它關(guān)聯(lián)工種必須非常了解熟悉:網(wǎng)絡(luò)、系統(tǒng)、系統(tǒng)開發(fā)、存儲,安全,DB等;我在這里所講的運(yùn)維工程師就是指專職運(yùn)維工程師。我們再來說說一般產(chǎn)品的“出生”流程:1、首先公司管理層給出指導(dǎo)思想,PM定位市場需求(或copy成熟應(yīng)用)進(jìn)行調(diào)研、分析、最終給出詳細(xì)設(shè)計。2、架構(gòu)師根據(jù)產(chǎn)品設(shè)計的需求,如pv大小預(yù)估、服務(wù)器規(guī)模、應(yīng)用架構(gòu)等因素完成網(wǎng)絡(luò)規(guī)劃,架構(gòu)設(shè)計等(基本上對網(wǎng)絡(luò)變動不大,除非大項目)3、開發(fā)工程師將設(shè)計code實(shí)現(xiàn)出來、測試工程師對應(yīng)用進(jìn)行測試。4、好,到運(yùn)維工程師出馬了,首先明確一點(diǎn)不是說前三步就與運(yùn)維工作無關(guān)了,恰恰相反,前三步與運(yùn)維關(guān)系很大:應(yīng)用的前期架構(gòu)設(shè)計、軟/硬件資源評估申請 采購、應(yīng)用設(shè)計性能隱患及評估、IDC、服務(wù)性能\安全調(diào)優(yōu)、服務(wù)器系統(tǒng)級優(yōu)化(與特定應(yīng)用有關(guān))等都需運(yùn)維全程參與,并主導(dǎo)整個應(yīng)用上線項目;運(yùn)維工程 師負(fù)責(zé)產(chǎn)品服務(wù)器上架準(zhǔn)備工作,服務(wù)器系統(tǒng)安裝、網(wǎng)絡(luò)、IP、通用工具集安裝。運(yùn)維工程師還需要對上線的應(yīng)用系統(tǒng)架構(gòu)是否合理、是否具備可擴(kuò)展性、及安全 隱患等因素負(fù)責(zé),并負(fù)責(zé)最后將產(chǎn)品(程序)、網(wǎng)絡(luò)、系統(tǒng)三者進(jìn)行拼接并最優(yōu)化的組合在一起,最終完成產(chǎn)品上線提供用戶使用,并周而復(fù)使:需求->開 發(fā)(升級)->測試->上線(性能、安全問題等之前預(yù)估外的問題隨之慢慢就全出來了)在這里提一點(diǎn):網(wǎng)站開發(fā)模式與傳統(tǒng)軟件開發(fā)完全不一樣, 網(wǎng)站一天開發(fā)上線1~5個升級版本是家常便飯,用戶體驗為王嘛,如果某個線上問題像M$ 需要1年解決,用戶早跑光了;應(yīng)用上線后,運(yùn)維工作才剛開始,具體工作可能包括:升級版本上線工作、服務(wù)監(jiān)控、應(yīng)用狀態(tài)統(tǒng)計、日常服務(wù)狀態(tài)巡檢、突發(fā)故障 處理、服務(wù)日常變更調(diào)整、集群管理、服務(wù)性能評估優(yōu)化、數(shù)據(jù)庫管理優(yōu)化、隨著應(yīng)用PV增減進(jìn)行應(yīng)用架構(gòu)的伸縮、安全、運(yùn)維開發(fā)工作:a 、盡量將日常機(jī)械性手工工作通過工具實(shí)現(xiàn)(如服務(wù)監(jiān)控、應(yīng)用狀態(tài)統(tǒng)計、服務(wù)上線等等),提高效率。b、解決現(xiàn)實(shí)中服務(wù)存在的問題,如高可靠性、可擴(kuò)展性問題等。c、大規(guī)模集群管理工具的開發(fā),如1萬臺機(jī)器如何在1分鐘內(nèi)完成密碼修改、或運(yùn)行指定任務(wù)?2000臺服務(wù)器如何快速安裝操作系統(tǒng)?各分布式IDC、存儲集群中數(shù)PT級的數(shù)據(jù)如何快速的存儲、共享、分析?等一系列挑戰(zhàn)都需運(yùn)維工程師的努力。在此說明一下其它配合工種情況,在整個項目中,前端應(yīng)用對于網(wǎng)絡(luò)/系統(tǒng)工程師來說是黑匣子,同時開發(fā)工程師職責(zé)只是負(fù)責(zé)完成應(yīng)用的功能性開發(fā),并對應(yīng)用本 身性能、安全性等應(yīng)用本身負(fù)責(zé),它不負(fù)責(zé)或關(guān)心網(wǎng)絡(luò)/系統(tǒng)架構(gòu)方面事宜,當(dāng)然軟/硬件采購人員等事業(yè)部其它同事也不會關(guān)心這些問題,各司其職,但項目的核 心是運(yùn)維工程師~!所有其它部門的橋梁。上面說了很多,我想大家應(yīng)該對運(yùn)維有一些概念了,在此打個比方吧,如果我們是一輛高速行駛在高速公路上的汽車,那運(yùn)維工程師就是司機(jī)兼維修工,這個司機(jī)不 簡單,有時需要在高速行駛過程中換輪胎、并根據(jù)道路情況換檔位、當(dāng)汽車速度越來越快,汽車本身不能滿足高速度時對汽車性能調(diào)優(yōu)或零件升級、高速行進(jìn)中解決 汽車故障及性能問題、時刻關(guān)注前方安全問題,并先知先覺的采取規(guī)避手段。這就是運(yùn)維工作~!最后說一下運(yùn)維工程師的職責(zé):”確保線上穩(wěn)定“,看似簡單,但實(shí)屬不容易,運(yùn)維工程師必須在諸多不利因素中進(jìn)行權(quán)衡:新產(chǎn)品模式對現(xiàn)有架構(gòu)及技術(shù)的沖擊、 產(chǎn)品高頻度的升級帶來的線上BUG隱患、運(yùn)維自動化管理承度不高導(dǎo)致的人為失誤、IT行業(yè)追求的高效率導(dǎo)致流程執(zhí)行上的缺失、用戶增漲帶來的性能及架構(gòu)上 的壓力、IT行業(yè)寬松的技術(shù)管理文化、創(chuàng)新風(fēng)險、互聯(lián)網(wǎng)安全性問題等因素,都會是網(wǎng)站穩(wěn)定的大敵,運(yùn)維工程師必須把控好這最后一關(guān),需具體高度的責(zé)任感、 原則性及協(xié)調(diào)能力,如果能做到各因素的最佳平衡,那就是一名優(yōu)秀的運(yùn)維工程師了。另外在此聊點(diǎn)題外話,我在這里看到有很多人要sina、QQ、baidu,等聊自已的運(yùn)維方面的經(jīng)驗,其實(shí)這對于它們有點(diǎn)免為其難:a、各公司自已網(wǎng)絡(luò)架構(gòu)、規(guī)模、或多或少還算是公司的核心秘密,要保密,另外,對于大家所熟知的通用軟件、架構(gòu),由于很多公司會根據(jù)自已實(shí)際業(yè)務(wù)需要,同 時因為原版性能、安全性、已知bug、功能等原因,進(jìn)行過二次開發(fā)(如apache,php,mysql),操作系統(tǒng)內(nèi)核也會根據(jù)不同業(yè)務(wù)類型進(jìn)行定制 的,如某些應(yīng)用屬于運(yùn)算型、某些是高IO型、或大存儲大內(nèi)存型。根據(jù)這些特點(diǎn)進(jìn)行內(nèi)核優(yōu)化定制,如sina就在memcache上進(jìn)行過二次開發(fā),搞出了 一個MemcacheDB,具體做得如何我們不談,但開源了,是值得稱贊的,國內(nèi)公司對于開源基本上是索取,沒有貢獻(xiàn);另外,服務(wù)器也不是大家所熟知的型 號,根據(jù)業(yè)務(wù)特點(diǎn),大部份都是找DELL/HP/ibm進(jìn)行過定制;另外,在分布式儲存方面都有自已解決方案,要不就是使用現(xiàn)成開源hadoop等解決方 案,或自已開發(fā)。但90%都是借鑒google GFS的思想:分布式存儲、計算、大表。b、各公司業(yè)務(wù)方向不一樣,會導(dǎo)致運(yùn)維模式或方法都不一樣,如和baidu運(yùn)維肯定區(qū)別很大,因為他們業(yè)務(wù)模式?jīng)Q定了其架構(gòu)、服務(wù)器量級、 IDC分布、網(wǎng)絡(luò)結(jié)構(gòu)、通用技術(shù)都會不一樣,主打新聞門戶的sina與主打sns的運(yùn)維模式差異就非常大,甚至職責(zé)都不大一樣;但有一點(diǎn),通 用技術(shù)及大致架構(gòu)上都大同小異,大家不要太神化,更多的公司只是玩壘積木的游戲罷了,沒什么技術(shù)含量。c、如上面所講,目前大型網(wǎng)站運(yùn)維還處于幼年時期理念和經(jīng)驗都比較零散,沒有成熟的知識體系,可能具體什么是運(yùn)維,大家都要先思索一番,或壓根沒想過,真 正討論也只是運(yùn)維工作的冰山一角,局限于具體技術(shù)細(xì)節(jié),或某某著名網(wǎng)站大的框架,真正運(yùn)維體系化東西沒有,這也許是目前網(wǎng)上運(yùn)維相關(guān)資料比較少的原故吧。 或者也是國內(nèi)運(yùn)維人員比較難招,比較牛的運(yùn)維工程師比較少見的原因之一吧。二、運(yùn)維工作師需要什么樣的技能及素質(zhì)做為一名運(yùn)維工程師需要什么樣的技能及素質(zhì)呢,首先說說技能吧,如大家上面所看到,運(yùn)維是一個集多IT工種技能與一身的崗位,對系統(tǒng)->網(wǎng)絡(luò) ->存儲->協(xié)議->需求->開發(fā)->測試->安全等各環(huán)節(jié)都需要了解一些,但對于某些環(huán)節(jié)需熟悉甚至精通,如系統(tǒng) (基本操作系統(tǒng)的熟悉使用,*nix,windows..)、協(xié)議、系統(tǒng)開發(fā)(日常很重要的工作是自動運(yùn)維化相關(guān)開發(fā)、大規(guī)模集群工具開發(fā)、管理)、通用 應(yīng)用(如lvs、ha、web server、db、中間件、存儲等)、網(wǎng)絡(luò),IDC拓樸架構(gòu);技能方面總結(jié)以下幾點(diǎn):1、開發(fā)能力,這點(diǎn)非常重要,因為運(yùn)維工具都需要自已開發(fā),開發(fā)語言:c/c++(必備其中之一)、perl、python、php(其中之一)、shell(awk,sed,expect….等),需要有過實(shí)際開發(fā)經(jīng)驗,否則工作會非常痛苦。2、通用應(yīng)用方面需要了解:操作系統(tǒng)(目前國內(nèi)主要是linux、bsd)、webserver相關(guān) (nginx,apahe,php,lighttpd,java。。。)、數(shù)據(jù)庫(mysql,oralce)、其它雜七八拉的東東。。。系統(tǒng)優(yōu)化,高可 靠性。。。這些只是加分項,不需必備,可以邊工作邊慢慢學(xué),這些東西都不難。當(dāng)然在運(yùn)維中,有些是有分工偏重點(diǎn)不一樣。3、系統(tǒng)、網(wǎng)絡(luò)、安全,存儲,CDN,DB等需要相當(dāng)了解,知道其相關(guān)原理。個人素質(zhì)方面:1、 溝通能力、團(tuán)隊協(xié)作:運(yùn)維工作跨部門、跨工種工作很多,需善于溝通、并且團(tuán)隊協(xié)作能力要強(qiáng);這應(yīng)該是現(xiàn)代企業(yè)的基本素質(zhì)要求了,不多說。2、工作中需膽大心細(xì):膽大才能創(chuàng)新、不走尋常路,特別對于運(yùn)維這種新的工種,更需創(chuàng)新才能促進(jìn)發(fā)展;心細(xì),運(yùn)維工程師是網(wǎng)站admin,最高線上權(quán)限者,一不小心就會遺憾終生或打入十八層地獄。3、主動性、執(zhí)行力、精力旺盛、抗壓能力強(qiáng):由于IT行業(yè)的特性,變化快;往往計劃趕不上變化,運(yùn)維工作就更突出了,比如國內(nèi)各大公司服務(wù)器往往是全國各 地,哪里便宜性價比高,就那往搬,進(jìn)行大規(guī)模服務(wù)遷移(牽扯的服務(wù)器成百上千臺),這是一個非常頭痛的問題;往往時間非常緊迫,如限1周內(nèi)完成,這種情況 下,運(yùn)維工程師的主動性及執(zhí)行力就有很高的要求了:計劃、方案、服務(wù)無縫遷移、機(jī)器搬遷上架、環(huán)境準(zhǔn)備、安全評估、性能評估、基建、各關(guān)聯(lián)部門扯 皮,7X24小緊急事故響應(yīng)等。4、其它就是一些基本素質(zhì)了:頭腦要靈光、邏輯思維能力強(qiáng)、為人謙虛穩(wěn)重、親和力、樂于助人、有大局觀。5、最后一點(diǎn),做網(wǎng)站運(yùn)維需要有探索創(chuàng)新精神,通過創(chuàng)新型思維解決現(xiàn)實(shí)中的問題,因為這是一個處于幼年的職業(yè)(國外也一樣,但比國內(nèi)起步早點(diǎn)),沒有成熟體系或方法論可以借鑒,只能靠大家自已摸索努力。三、怎樣才算是一個合格的運(yùn)維工程師1、保證服務(wù)達(dá)到要求的線上標(biāo)準(zhǔn),如;保證線上穩(wěn)定,這是運(yùn)維工程師的基本責(zé)職所在。2、不斷的提升應(yīng)用的可靠性與健壯性、性能優(yōu)化、安全提升;這方面非??简炛鲃有?、和創(chuàng)新思維。3、網(wǎng)站各層面監(jiān)控、統(tǒng)計的覆蓋度,軟件、硬件、運(yùn)行狀態(tài),能監(jiān)控的都需要監(jiān)控統(tǒng)計,避免監(jiān)控死角、并能實(shí)時了解應(yīng)用的運(yùn)轉(zhuǎn)情況。4、通過創(chuàng)新思維解決運(yùn)維效率問題;目前各公司大部份運(yùn)維主要工作還是依賴人工操作干預(yù),需要盡可能的解放雙手。5、運(yùn)維知識的積累與沉淀、文檔的完備性,運(yùn)維是一個經(jīng)驗性非常強(qiáng)的崗位,好的經(jīng)驗與陷阱都需積累下來,避免重復(fù)性范錯。6、計劃性和執(zhí)行力;工作有計劃,計劃后想法設(shè)法達(dá)到目標(biāo),不找借口。7、自動化運(yùn)維;能對日常機(jī)械化工作進(jìn)行提煉、設(shè)計并開發(fā)成工具、系統(tǒng),能讓系統(tǒng)自動完成的盡量依靠系統(tǒng);讓大家更多的時間用于思考、創(chuàng)新思維、做自已喜歡的事情。以上只是技術(shù)上的一些層面,當(dāng)然個人意識也是很重要的。四、運(yùn)維職業(yè)的迷惘、現(xiàn)狀與發(fā)展前景運(yùn)維崗位不像其它崗位,如研發(fā)工程師、測試工程師等,有非常明確的職責(zé)定位及職業(yè)規(guī)劃,比較有職業(yè)認(rèn)同感與成就感;而運(yùn)維工作可能給人的感覺是哪方面都了 解一些,但又都比上專職工程師更精通、感覺平時被關(guān)注度比較低(除非線上出現(xiàn)故障),慢慢的大家就會迷惘,對職業(yè)發(fā)展產(chǎn)生困惑,為什么會有這種現(xiàn)象呢? 除了職業(yè)本身特點(diǎn)外,主要還是因為對運(yùn)維了解不深入、做得不深入導(dǎo)致;其實(shí)這個問題其它崗位也會出現(xiàn),但我發(fā)現(xiàn)運(yùn)維更典型,更容易出現(xiàn)這個問題;針對這個問題我談一下網(wǎng)站運(yùn)維的現(xiàn)狀及發(fā)展前景(也在思考中,可能不太深入全面,也請大家斧正補(bǔ)充)運(yùn)維現(xiàn)狀:1、處于剛起步的初級階段,各大公司有此專職,但重視或重要承度不高,可替代性強(qiáng);小公司更多是由其它崗位來兼顧做這一塊工作,沒有專職,也不可能做得深入2、技術(shù)層次比較低;主要處于技術(shù)探索、積累階段,沒有型成體系化的理念、技術(shù)。3、體力勞動偏大;這個問題主要與第二點(diǎn)有關(guān)系,很多事情還是依靠人力進(jìn)行,沒有完成好的提練,對于大規(guī)模集群沒有成熟的自動化管理方法,在此說明一下,大規(guī)模集群與運(yùn)維工作是息息相關(guān)的如果只是百十來臺機(jī)器,那就沒有運(yùn)維太大的生存空間了。4、優(yōu)秀運(yùn)維人才的極度缺乏;目前各大公司基本上都靠自已培養(yǎng),這個現(xiàn)狀導(dǎo)致行業(yè)內(nèi)運(yùn)維人才的流動性非常低,非常多好的技術(shù)都局限在各大公司內(nèi)部,如 google 50萬臺機(jī)器科學(xué)的管理,或者國內(nèi)互聯(lián)公司top 10 的一些運(yùn)維經(jīng)驗,這些經(jīng)驗是非常有價值的東西并決定了一個公司的核心競爭力;這些問題進(jìn)而導(dǎo)致業(yè)內(nèi)先進(jìn)運(yùn)維技術(shù)的流通、貫通、與借簽,并最終將限制了運(yùn)維 發(fā)展。5、很多優(yōu)秀的運(yùn)維經(jīng)驗都掌握在大公司手中;這不在于公司的技術(shù)實(shí)力,而在于大公司的技術(shù)規(guī)模、海量PV、硬件規(guī)模足夠大,如baidu可怕的流量、 海量數(shù)據(jù)~~~~這些因素決定了他們遇到的問題都是其它中/小公司還沒有遇到的,或即將遇到。但大公司可能已有很好的解決方案或系統(tǒng)。發(fā)展前景:1、從行業(yè)角度來看,隨著中國互聯(lián)網(wǎng)的高速發(fā)展(目前中國網(wǎng)民已躍升為全球第一)、網(wǎng)站規(guī)模越來越來大、架構(gòu)越來越復(fù)雜;對專職網(wǎng)站運(yùn)維工程師、網(wǎng)站架構(gòu) 師的要求會越來越急迫,特別是對有經(jīng)驗的優(yōu)秀運(yùn)維人才需求量大,而且是越老越值錢;目前國內(nèi)基本上都是選擇畢業(yè)生培養(yǎng)(限于大公司),培養(yǎng)成本高,而且沒 有經(jīng)驗人才加入會導(dǎo)致公司技術(shù)更新緩慢、影響公司的技術(shù)發(fā)展;當(dāng)然,畢業(yè)生也有好處:白紙一張,可塑性強(qiáng),比較認(rèn)同并容易融入企業(yè)文化。2、從個人角度,運(yùn)維工程師技術(shù)含量及要求會越來越高,同時也是對公司應(yīng)用、架構(gòu)最了解最熟悉的人、越來越得到重視。3、網(wǎng)站運(yùn)維將成為一個融合多學(xué)科(網(wǎng)絡(luò)、系統(tǒng)、開發(fā)、安全、應(yīng)用架構(gòu)、存儲等)的綜合性技術(shù)崗位,給大家提供一個很好的個人能力與技術(shù)廣度的發(fā)展空間。4、運(yùn)維工作的相關(guān)經(jīng)驗將會變得非常重要,而且也將成為個人的核心競爭力,具備很好的各層面問題的解決能力及方案提供、全局思考能力等。5、特長發(fā)控和興趣的培養(yǎng);由于運(yùn)維崗位所接觸的知識面非常廣闊,更容易培養(yǎng)或發(fā)揮出個人某些方面的特長或愛好,如內(nèi)核、網(wǎng)絡(luò)、開發(fā)、數(shù)據(jù)庫等方面,可以做得非常深入精通、成為這方面的專家。6、如果真要以后不想做運(yùn)維了,轉(zhuǎn)到其它崗位也比較容易,不會有太大的局限性。當(dāng)然了,你得真正用心去做。7、技術(shù)發(fā)展方向、網(wǎng)站/系統(tǒng)架構(gòu)師。
難得明白
面試 的目的是確定面試者如何處理他們所選擇的研究領(lǐng)域的問題,以及他們?nèi)绾闻行缘厮伎紗栴}。下面我給大家?guī)?021面試網(wǎng)絡(luò)工程師的題目參考,希望能幫助到大家!
Java多線程 面試題 目
1、什么是線程?
線程是 操作系統(tǒng) 能夠進(jìn)行運(yùn)算調(diào)度的最小單位,它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。程序員可以通過它進(jìn)行多處理器編程,你可以使用多線程對運(yùn)算密集型任務(wù)提速。比如,如果一個線程完成一個任務(wù)要100毫秒,那么用十個線程完成改任務(wù)只需10毫秒。
2、線程和進(jìn)程有什么區(qū)別?
線程是進(jìn)程的子集,一個進(jìn)程可以有很多線程,每條線程并行執(zhí)行不同的任務(wù)。不同的進(jìn)程使用不同的內(nèi)存空間,而所有的線程共享一片相同的內(nèi)存空間。每個線程都擁有單獨(dú)的棧內(nèi)存用來存儲本地數(shù)據(jù)。
3、如何在Java中實(shí)現(xiàn)線程?
兩種方式: 類的實(shí)例就是一個線程但是它需要調(diào)用接口來執(zhí)行,由于線程類本身就是調(diào)用的Runnable接口所以你可以繼承 類或者直接調(diào)用Runnable接口來重寫run() 方法 實(shí)現(xiàn)線程。
4、Java 關(guān)鍵字volatile 與 synchronized 作用與區(qū)別?
Volatile:
它所修飾的變量不保留拷貝,直接訪問主內(nèi)存中的。
在Java內(nèi)存模型中,有main memory,每個線程也有自己的memory (例如寄存器)。為了性能,一個線程會在自己的memory中保持要訪問的變量的副本。這樣就會出現(xiàn)同一個變量在某個瞬間,在一個線程的memory中的值可能與另外一個線程memory中的值,或者main memory中的值不一致的情況。 一個變量聲明為volatile,就意味著這個變量是隨時會被其他線程修改的,因此不能將它c(diǎn)ache在線程memory中。
synchronized:
當(dāng)它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多只有一個線程執(zhí)行該段代碼。
一、當(dāng)兩個并發(fā)線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間內(nèi)只能有一個線程得到執(zhí)行。另一個線程必須等待當(dāng)前線程執(zhí)行完這個代碼塊以后才能執(zhí)行該代碼塊。
二、然而,當(dāng)一個線程訪問object的一個synchronized(this)同步代碼塊時,另一個線程仍然可以訪問該object中的非synchronized(this)同步代碼塊。
三、尤其關(guān)鍵的是,當(dāng)一個線程訪問object的一個synchronized(this)同步代碼塊時,其他線程對object中所有 其它 synchronized(this)同步代碼塊的訪問將被阻塞。
四、當(dāng)一個線程訪問object的一個synchronized(this)同步代碼塊時,它就獲得了這個object的對象鎖。結(jié)果,其它線程對該object對象所有同步代碼部分的訪問都被暫時阻塞。
五、以上規(guī)則對其它對象鎖同樣適用。
5、有哪些不同的線程生命周期?
當(dāng)我們在Java程序中新建一個線程時,它的狀態(tài)是New。當(dāng)我們調(diào)用線程的start()方法時,狀態(tài)被改變?yōu)镽unnable。線程調(diào)度器會為Runnable線程池中的線程分配CPU時間并且講它們的狀態(tài)改變?yōu)镽unning。其他的線程狀態(tài)還有Waiting,Blocked 和Dead。
6、你對線程優(yōu)先級的理解是什么?
每一個線程都是有優(yōu)先級的,一般來說,高優(yōu)先級的線程在運(yùn)行時會具有優(yōu)先權(quán),但這依賴于線程調(diào)度的實(shí)現(xiàn),這個實(shí)現(xiàn)是和操作系統(tǒng)相關(guān)的(OS dependent)。
我們可以定義線程的優(yōu)先級,但是這并不能保證高優(yōu)先級的線程會在低優(yōu)先級的線程前執(zhí)行。線程優(yōu)先級是一個int變量(從1-10),1代表最低優(yōu)先級,10代表最高優(yōu)先級。
7、什么是死鎖(Deadlock)?如何分析和避免死鎖?
死鎖是指兩個以上的線程永遠(yuǎn)阻塞的情況,這種情況產(chǎn)生至少需要兩個以上的線程和兩個以上的資源。
分析死鎖,我們需要查看Java應(yīng)用程序的線程轉(zhuǎn)儲。我們需要找出那些狀態(tài)為BLOCKED的線程和他們等待的資源。每個資源都有一個唯一的id,用這個id我們可以找出哪些線程已經(jīng)擁有了它的對象鎖。
避免嵌套鎖,只在需要的地方使用鎖和避免無限期等待是避免死鎖的通常辦法。
8、什么是線程安全?Vector是一個線程安全類嗎?
如果你的代碼所在的進(jìn)程中有多個線程在同時運(yùn)行,而這些線程可能會同時運(yùn)行這段代碼。如果每次運(yùn)行結(jié)果和單線程運(yùn)行的結(jié)果是一樣的,而且其他的變量的值也和預(yù)期的是一樣的,就是線程安全的。
一個線程安全的計數(shù)器類的同一個實(shí)例對象在被多個線程使用的情況下也不會出現(xiàn)計算失誤。很顯然你可以將集合類分成兩組,線程安全和非線程安全的。Vector 是用同步方法來實(shí)現(xiàn)線程安全的, 而和它相似的ArrayList不是線程安全的。
9、Java中如何停止一個線程?
Java提供了很豐富的API但沒有為停止線程提供API。JDK 本來有一些像stop(), suspend()和resume()的控制方法但是由于潛在的死鎖威脅因此在后續(xù)的JDK版本中他們被棄用了,之后Java API的設(shè)計者就沒有提供一個兼容且線程安全的方法來停止一個線程。
當(dāng)run()或者 call()方法執(zhí)行完的時候線程會自動結(jié)束,如果要手動結(jié)束一個線程,你可以用volatile 布爾變量來退出run()方法的循環(huán)或者是取消任務(wù)來中斷線程。
10、什么是ThreadLocal?
ThreadLocal用于創(chuàng)建線程的本地變量,我們知道一個對象的所有線程會共享它的全局變量,所以這些變量不是線程安全的,我們可以使用同步技術(shù)。但是當(dāng)我們不想使用同步的時候,我們可以選擇ThreadLocal變量。
每個線程都會擁有他們自己的Thread變量,它們可以使用get()set()方法去獲取他們的默認(rèn)值或者在線程內(nèi)部改變他們的值。ThreadLocal實(shí)例通常是希望它們同線程狀態(tài)關(guān)聯(lián)起來是private static屬性。
Kubernetes面試題匯總
1、什么是Kubernetes?
Kubernetes是一個開源容器管理工具,負(fù)責(zé)容器部署,容器擴(kuò)縮容以及負(fù)載平衡。作為Google的創(chuàng)意之作,它提供了出色的社區(qū),并與所有云提供商合作。因此,我們可以說Kubernetes不是一個容器化平臺,而是一個多容器管理解決方案。
2、Kubernetes與Docker有什么關(guān)系?
眾所周知,Docker提供容器的生命周期管理,Docker鏡像構(gòu)建運(yùn)行時容器。但是,由于這些單獨(dú)的容器必須通信,因此使用Kubernetes。因此,我們說Docker構(gòu)建容器,這些容器通過Kubernetes相互通信。因此,可以使用Kubernetes手動關(guān)聯(lián)和編排在多個主機(jī)上運(yùn)行的容器。
3、什么是Container Orchestration?
考慮一個應(yīng)用程序有5-6個微服務(wù)的場景。現(xiàn)在,這些微服務(wù)被放在單獨(dú)的容器中,但如果沒有容器編排就無法進(jìn)行通信。因此,由于編排意味著所有樂器在音樂中和諧共處,所以類似的容器編排意味著各個容器中的所有服務(wù)協(xié)同工作以滿足單個服務(wù)器的需求。
4、Kubernetes如何簡化容器化部署?
由于典型應(yīng)用程序?qū)⒕哂锌缍鄠€主機(jī)運(yùn)行的容器集群,因此所有這些容器都需要相互通信。因此,要做到這一點(diǎn),你需要一些能夠負(fù)載平衡,擴(kuò)展和監(jiān)控容器的東西。由于Kubernetes與云無關(guān)并且可以在任何公共/私有提供商上運(yùn)行,因此必須是您簡化容器化部署的選擇。
5、您對Kubernetes的集群了解多少?
Kubernetes背后的基礎(chǔ)是我們可以實(shí)施所需的狀態(tài)管理,我的意思是我們可以提供特定配置的集群服務(wù),并且集群服務(wù)將在基礎(chǔ)架構(gòu)中運(yùn)行并運(yùn)行該配置。
因此,正如您所看到的,部署文件將具有提供給集群服務(wù)所需的所有配置?,F(xiàn)在,部署文件將被提供給API,然后由集群服務(wù)決定如何在環(huán)境中安排這些pod,并確保正確運(yùn)行的pod數(shù)量。
因此,位于服務(wù)前面的API,工作節(jié)點(diǎn)和節(jié)點(diǎn)運(yùn)行的Kubelet進(jìn)程,共同構(gòu)成了Kubernetes集群。
6、Kubernetes Architecture的不同組件有哪些?
Kubernetes Architecture主要有兩個組件 - 主節(jié)點(diǎn)和工作節(jié)點(diǎn)。如下圖所示,master和worker節(jié)點(diǎn)中包含許多內(nèi)置組件。主節(jié)點(diǎn)具有kube-controller-manager,kube-apiserver,kube-scheduler等。而工作節(jié)點(diǎn)具有在每個節(jié)點(diǎn)上運(yùn)行的kubelet和kube-proxy。
7、您能否介紹一下Kubernetes中主節(jié)點(diǎn)的工作情況?
Kubernetes master控制容器存在的節(jié)點(diǎn)和節(jié)點(diǎn)內(nèi)部?,F(xiàn)在,這些單獨(dú)的容器包含在容器內(nèi)部和每個容器內(nèi)部,您可以根據(jù)配置和要求擁有不同數(shù)量的容器。
因此,如果必須部署pod,則可以使用用戶界面或命令行界面部署它們。然后,在節(jié)點(diǎn)上調(diào)度這些pod,并根據(jù)資源需求,將pod分配給這些節(jié)點(diǎn)。kube-apiserver確保在Kubernetes節(jié)點(diǎn)和主組件之間建立通信。
8、kube-apiserver和kube-scheduler的作用是什么?
kube -apiserver遵循橫向擴(kuò)展架構(gòu),是主節(jié)點(diǎn)控制面板的前端。這將公開Kubernetes主節(jié)點(diǎn)組件的所有API,并負(fù)責(zé)在Kubernetes節(jié)點(diǎn)和Kubernetes主組件之間建立通信。
kube-scheduler負(fù)責(zé)工作節(jié)點(diǎn)上工作負(fù)載的分配和管理。因此,它根據(jù)資源需求選擇最合適的節(jié)點(diǎn)來運(yùn)行未調(diào)度的pod,并跟蹤資源利用率。它確保不在已滿的節(jié)點(diǎn)上調(diào)度工作負(fù)載。
9、你對Kubernetes的負(fù)載均衡器有什么了解?
負(fù)載均衡器是暴露服務(wù)的最常見和標(biāo)準(zhǔn)方式之一。根據(jù)工作環(huán)境使用兩種類型的負(fù)載均衡器,即內(nèi)部負(fù)載均衡器或外部負(fù)載均衡器。內(nèi)部負(fù)載均衡器自動平衡負(fù)載并使用所需配置分配容器,而外部負(fù)載均衡器將流量從外部負(fù)載引導(dǎo)至后端容器。
10、Replica Set 和 Replication Controller之間有什么區(qū)別?
Replica Set 和 Replication Controller幾乎完全相同。它們都確保在任何給定時間運(yùn)行指定數(shù)量的pod副本。不同之處在于復(fù)制pod使用的選擇器。Replica Set使用基于集合的選擇器,而Replication Controller使用基于權(quán)限的選擇器。
Equity-Based選擇器:這種類型的選擇器允許按標(biāo)簽鍵和值進(jìn)行過濾。因此,在外行術(shù)語中,基于Equity的選擇器將僅查找與標(biāo)簽具有完全相同 短語 的pod。
示例:假設(shè)您的標(biāo)簽鍵表示app = nginx,那么,使用此選擇器,您只能查找標(biāo)簽應(yīng)用程序等于nginx的那些pod。
Selector-Based選擇器:此類型的選擇器允許根據(jù)一組值過濾鍵。因此,換句話說,基于Selector的選擇器將查找已在集合中提及其標(biāo)簽的pod。
示例:假設(shè)您的標(biāo)簽鍵在(nginx,NPS,Apache)中顯示應(yīng)用程序。然后,使用此選擇器,如果您的應(yīng)用程序等于任何nginx,NPS或Apache,則選擇器將其視為真實(shí)結(jié)果。
滲透攻擊的測試步驟
1.如果原始值為2,我們使用(1+1)或(3-1),程序作出相同回應(yīng),表明易受攻擊
2.如果單引號被過濾掉,我們可以用ASCII命令,使它返回字符的數(shù)字化代碼,如51-ASCII(1)
3.在URL編碼中,&和=用于鏈接名稱/值對,建立查詢字符串應(yīng)當(dāng)分別使用%26和%3d進(jìn)行編碼
4.如查詢字符串不允許使用空格,使用+或%20編碼
5.分號被用于分割cookie自讀,使用%3d編碼
2021面試網(wǎng)絡(luò)工程師的題目相關(guān) 文章 :
★ 關(guān)于網(wǎng)絡(luò)工程師的面試題有哪些
★ 網(wǎng)絡(luò)管理員面試題及答案大全
★ 最新的運(yùn)維工程師面試題目整理
★ 網(wǎng)絡(luò)測試工程師面試題及答案
★ 計算機(jī)網(wǎng)絡(luò)面試題及參考答案
★ 網(wǎng)絡(luò)工程師面試自我介紹范文五篇
★ 面試網(wǎng)絡(luò)技術(shù)工程師的有哪些提問
★ 最新的it運(yùn)維工程師面試題整理
佐鉺三鉺洞
一、網(wǎng)絡(luò)工程師要考以下科目:
1、 計算機(jī)與網(wǎng)絡(luò)知識,考試時間為150分鐘,筆試;
2、 網(wǎng)絡(luò)系統(tǒng)設(shè)計與管理,考試時間為150分鐘,筆試。
二、兩門課程的基本考點(diǎn):
1、IP地址的劃分;Cisco路由器與交換機(jī)的基本配置;
2、網(wǎng)絡(luò)安全與網(wǎng)絡(luò)管理等基礎(chǔ)知識;Web、Ftp、Email等各種服務(wù)器的搭建與配置;
3、各種網(wǎng)絡(luò)故障的排查與判斷;路由器和交換機(jī)的工作原理;
4、如何利用三層路由器和交換機(jī)進(jìn)行VLAN的劃分。
三、考證書類
1、如果為了考證你可以去自學(xué),理論性的東西主要是為考證的,但是企業(yè)是不會聘請一個只會考試的工程師的;
2、沒有設(shè)備你永遠(yuǎn)也不知道它具體是怎么回事的.有關(guān)培訓(xùn)機(jī)構(gòu)是最好的選擇,不過這個你一定要看好;
3、目前有信息產(chǎn)業(yè)部的認(rèn)證,有華為的,也有微軟的,也有思科的相對思科比較權(quán)威份量足些,它分為,ccna,ccnp,ccie(依次為從初級到高級的三個不同等級)。
四、工作待遇
網(wǎng)絡(luò)工程師工資待遇與發(fā)展前景是比較好的,這也是許多的人會想要報網(wǎng)絡(luò)工程師培訓(xùn)機(jī)構(gòu)進(jìn)行專業(yè)的學(xué)習(xí),從而獲得網(wǎng)絡(luò)工程師證書的。
擴(kuò)展資料:
網(wǎng)絡(luò)工程師職業(yè)定位
網(wǎng)絡(luò)工程師是通過學(xué)習(xí)和訓(xùn)練,掌握網(wǎng)絡(luò)技術(shù)的理論知識和操作技能 的網(wǎng)絡(luò)技術(shù)人員.
工作內(nèi)容:
1、負(fù)責(zé)機(jī)房內(nèi)的網(wǎng)絡(luò)聯(lián)接及網(wǎng)絡(luò)間的系統(tǒng)配置。
2、負(fù)責(zé)系統(tǒng)網(wǎng)絡(luò)的拓?fù)鋱D的建立和完善,并做好系統(tǒng) 路由的解析和資料的整理。
3、負(fù)責(zé)機(jī)房線路的布置和協(xié)議的規(guī)范工作。
4、負(fù)責(zé)計算機(jī)間的網(wǎng)絡(luò)聯(lián)接及網(wǎng)絡(luò)共享,并負(fù)責(zé)網(wǎng)絡(luò)間安全性的設(shè)置。
5、負(fù)責(zé)對網(wǎng)絡(luò)障礙的分析,及時處理和解決網(wǎng)絡(luò)中出現(xiàn)的問題。
6、利用網(wǎng)絡(luò)分析分析儀,定期對現(xiàn)有的網(wǎng)絡(luò)進(jìn) 行優(yōu)化工作。
7、負(fù)責(zé)網(wǎng)絡(luò)平臺框架的布局和設(shè)置;如java軟件工程師,java網(wǎng)絡(luò)工程師。
8、負(fù)責(zé)網(wǎng)絡(luò)平臺信息的采集和錄入支持;如:信息技術(shù)工程師。
9、負(fù)責(zé)網(wǎng)絡(luò)平臺的推廣方向和推廣模式,如:網(wǎng)絡(luò)推廣大師。
10、負(fù)責(zé)網(wǎng)絡(luò)平臺的運(yùn)作方向以及平臺維護(hù)管理等工作,如:網(wǎng)絡(luò)運(yùn)營工程師。
11、負(fù)責(zé)網(wǎng)絡(luò)平臺發(fā) 展到一定階段的商業(yè)模式和盈 利方向;如:網(wǎng)站商務(wù)工 程師,電子商 務(wù)工程師。
12、負(fù)責(zé)網(wǎng)絡(luò)產(chǎn)品的定位和封裝;如:項目工程師。可以做網(wǎng)絡(luò)管理員和網(wǎng)站編程技術(shù)。
網(wǎng)絡(luò)工程師的職位進(jìn)階
一、小企業(yè)的網(wǎng)絡(luò)管理員;
二、進(jìn)入 大中型企業(yè),從事同樣的網(wǎng)絡(luò) 管理工作,工資待遇等就可有明顯的 提升;
三、學(xué)習(xí)更全面的知識成為普通的網(wǎng)絡(luò)工程師;
四、成為側(cè)重于某一專業(yè)的網(wǎng)絡(luò)工程師,如網(wǎng)絡(luò)存儲工程師、綜合布線工程師、網(wǎng)絡(luò)安全工程師等
五、可進(jìn)階 到專家級別,如IT項目 經(jīng)理、網(wǎng)絡(luò)主管或者技術(shù)專家等,這也是網(wǎng)絡(luò)工 程師在30歲以后的主要發(fā)展方向和發(fā)展目標(biāo)。
參考資料來源:百度百科:網(wǎng)絡(luò)工程師
春雨蒙蒙a2015
一個優(yōu)秀的運(yùn)維工程師標(biāo)準(zhǔn)是什么,是不是做運(yùn)維是一個比較低級的工作?做IT這行是不是只有做編程才能掙高薪?發(fā)現(xiàn)畢業(yè)后大部分同學(xué)都去編程了. 像我這種做了運(yùn)維的主要是linux系統(tǒng)管理方面的.就偶一個 首先明確一下,全文所講的”運(yùn)維“是指:大型網(wǎng)站運(yùn)維,與其它運(yùn)維的區(qū)別還是蠻大的;然后我們再對大型網(wǎng)站與小型網(wǎng)站進(jìn)行范圍定義,此定義主要從運(yùn)維復(fù)雜 性角度考慮,如網(wǎng)站規(guī)范、知名度、服務(wù)器量級、pv量等考慮,其它因素不是重點(diǎn);因此,我們先定義服務(wù)器規(guī)模大于1000臺,pv每天至少上億(至少國內(nèi) 排名前10),如sina、baidu、QQ,等等;其它小型網(wǎng)站可能沒有真正意義上的運(yùn)維工程師,這與網(wǎng)站規(guī)范不夠和成本因素有關(guān),更多的 是集合網(wǎng)絡(luò)、系統(tǒng)、開發(fā)工作于一身的“復(fù)合性人才”,就如有些公司把一些合同采購都納入了運(yùn)維職責(zé)范圍,還有如IDC網(wǎng)絡(luò)規(guī)劃也納入運(yùn)維職責(zé)。所以,非常 重要一定需要明白:運(yùn)維對其它關(guān)聯(lián)工種必須非常了解熟悉:網(wǎng)絡(luò)、系統(tǒng)、系統(tǒng)開發(fā)、存儲,安全,DB等;我在這里所講的運(yùn)維工程師就是指專職運(yùn)維工程師。我們再來說說一般產(chǎn)品的“出生”流程:1、首先公司管理層給出指導(dǎo)思想,PM定位市場需求(或copy成熟應(yīng)用)進(jìn)行調(diào)研、分析、最終給出詳細(xì)設(shè)計。2、架構(gòu)師根據(jù)產(chǎn)品設(shè)計的需求,如pv大小預(yù)估、服務(wù)器規(guī)模、應(yīng)用架構(gòu)等因素完成網(wǎng)絡(luò)規(guī)劃,架構(gòu)設(shè)計等(基本上對網(wǎng)絡(luò)變動不大,除非大項目)3、開發(fā)工程師將設(shè)計code實(shí)現(xiàn)出來、測試工程師對應(yīng)用進(jìn)行測試。4、好,到運(yùn)維工程師出馬了,首先明確一點(diǎn)不是說前三步就與運(yùn)維工作無關(guān)了,恰恰相反,前三步與運(yùn)維關(guān)系很大:應(yīng)用的前期架構(gòu)設(shè)計、軟/硬件資源評估申請 采購、應(yīng)用設(shè)計性能隱患及評估、IDC、服務(wù)性能\安全調(diào)優(yōu)、服務(wù)器系統(tǒng)級優(yōu)化(與特定應(yīng)用有關(guān))等都需運(yùn)維全程參與,并主導(dǎo)整個應(yīng)用上線項目;運(yùn)維工程 師負(fù)責(zé)產(chǎn)品服務(wù)器上架準(zhǔn)備工作,服務(wù)器系統(tǒng)安裝、網(wǎng)絡(luò)、IP、通用工具集安裝。運(yùn)維工程師還需要對上線的應(yīng)用系統(tǒng)架構(gòu)是否合理、是否具備可擴(kuò)展性、及安全 隱患等因素負(fù)責(zé),并負(fù)責(zé)最后將產(chǎn)品(程序)、網(wǎng)絡(luò)、系統(tǒng)三者進(jìn)行拼接并最優(yōu)化的組合在一起,最終完成產(chǎn)品上線提供用戶使用,并周而復(fù)使:需求->開 發(fā)(升級)->測試->上線(性能、安全問題等之前預(yù)估外的問題隨之慢慢就全出來了)在這里提一點(diǎn):網(wǎng)站開發(fā)模式與傳統(tǒng)軟件開發(fā)完全不一樣, 網(wǎng)站一天開發(fā)上線1~5個升級版本是家常便飯,用戶體驗為王嘛,如果某個線上問題像M$ 需要1年解決,用戶早跑光了;應(yīng)用上線后,運(yùn)維工作才剛開始,具體工作可能包括:升級版本上線工作、服務(wù)監(jiān)控、應(yīng)用狀態(tài)統(tǒng)計、日常服務(wù)狀態(tài)巡檢、突發(fā)故障 處理、服務(wù)日常變更調(diào)整、集群管理、服務(wù)性能評估優(yōu)化、數(shù)據(jù)庫管理優(yōu)化、隨著應(yīng)用PV增減進(jìn)行應(yīng)用架構(gòu)的伸縮、安全、運(yùn)維開發(fā)工作:a 、盡量將日常機(jī)械性手工工作通過工具實(shí)現(xiàn)(如服務(wù)監(jiān)控、應(yīng)用狀態(tài)統(tǒng)計、服務(wù)上線等等),提高效率。b、解決現(xiàn)實(shí)中服務(wù)存在的問題,如高可靠性、可擴(kuò)展性問題等。c、大規(guī)模集群管理工具的開發(fā),如1萬臺機(jī)器如何在1分鐘內(nèi)完成密碼修改、或運(yùn)行指定任務(wù)?2000臺服務(wù)器如何快速安裝操作系統(tǒng)?各分布式IDC、存儲集群中數(shù)PT級的數(shù)據(jù)如何快速的存儲、共享、分析?等一系列挑戰(zhàn)都需運(yùn)維工程師的努力。在此說明一下其它配合工種情況,在整個項目中,前端應(yīng)用對于網(wǎng)絡(luò)/系統(tǒng)工程師來說是黑匣子,同時開發(fā)工程師職責(zé)只是負(fù)責(zé)完成應(yīng)用的功能性開發(fā),并對應(yīng)用本 身性能、安全性等應(yīng)用本身負(fù)責(zé),它不負(fù)責(zé)或關(guān)心網(wǎng)絡(luò)/系統(tǒng)架構(gòu)方面事宜,當(dāng)然軟/硬件采購人員等事業(yè)部其它同事也不會關(guān)心這些問題,各司其職,但項目的核 心是運(yùn)維工程師~!所有其它部門的橋梁。上面說了很多,我想大家應(yīng)該對運(yùn)維有一些概念了,在此打個比方吧,如果我們是一輛高速行駛在高速公路上的汽車,那運(yùn)維工程師就是司機(jī)兼維修工,這個司機(jī)不 簡單,有時需要在高速行駛過程中換輪胎、并根據(jù)道路情況換檔位、當(dāng)汽車速度越來越快,汽車本身不能滿足高速度時對汽車性能調(diào)優(yōu)或零件升級、高速行進(jìn)中解決 汽車故障及性能問題、時刻關(guān)注前方安全問題,并先知先覺的采取規(guī)避手段。這就是運(yùn)維工作~!最后說一下運(yùn)維工程師的職責(zé):”確保線上穩(wěn)定“,看似簡單,但實(shí)屬不容易,運(yùn)維工程師必須在諸多不利因素中進(jìn)行權(quán)衡:新產(chǎn)品模式對現(xiàn)有架構(gòu)及技術(shù)的沖擊、 產(chǎn)品高頻度的升級帶來的線上BUG隱患、運(yùn)維自動化管理承度不高導(dǎo)致的人為失誤、IT行業(yè)追求的高效率導(dǎo)致流程執(zhí)行上的缺失、用戶增漲帶來的性能及架構(gòu)上 的壓力、IT行業(yè)寬松的技術(shù)管理文化、創(chuàng)新風(fēng)險、互聯(lián)網(wǎng)安全性問題等因素,都會是網(wǎng)站穩(wěn)定的大敵,運(yùn)維工程師必須把控好這最后一關(guān),需具體高度的責(zé)任感、 原則性及協(xié)調(diào)能力,如果能做到各因素的最佳平衡,那就是一名優(yōu)秀的運(yùn)維工程師了。另外在此聊點(diǎn)題外話,我在這里看到有很多人要sina、QQ、baidu,等聊自已的運(yùn)維方面的經(jīng)驗,其實(shí)這對于它們有點(diǎn)免為其難:a、各公司自已網(wǎng)絡(luò)架構(gòu)、規(guī)模、或多或少還算是公司的核心秘密,要保密,另外,對于大家所熟知的通用軟件、架構(gòu),由于很多公司會根據(jù)自已實(shí)際業(yè)務(wù)需要,同 時因為原版性能、安全性、已知bug、功能等原因,進(jìn)行過二次開發(fā)(如apache,php,mysql),操作系統(tǒng)內(nèi)核也會根據(jù)不同業(yè)務(wù)類型進(jìn)行定制 的,如某些應(yīng)用屬于運(yùn)算型、某些是高IO型、或大存儲大內(nèi)存型。根據(jù)這些特點(diǎn)進(jìn)行內(nèi)核優(yōu)化定制,如sina就在memcache上進(jìn)行過二次開發(fā),搞出了 一個MemcacheDB,具體做得如何我們不談,但開源了,是值得稱贊的,國內(nèi)公司對于開源基本上是索取,沒有貢獻(xiàn);另外,服務(wù)器也不是大家所熟知的型 號,根據(jù)業(yè)務(wù)特點(diǎn),大部份都是找DELL/HP/ibm進(jìn)行過定制;另外,在分布式儲存方面都有自已解決方案,要不就是使用現(xiàn)成開源hadoop等解決方 案,或自已開發(fā)。但90%都是借鑒google GFS的思想:分布式存儲、計算、大表。b、各公司業(yè)務(wù)方向不一樣,會導(dǎo)致運(yùn)維模式或方法都不一樣,如和baidu運(yùn)維肯定區(qū)別很大,因為他們業(yè)務(wù)模式?jīng)Q定了其架構(gòu)、服務(wù)器量級、 IDC分布、網(wǎng)絡(luò)結(jié)構(gòu)、通用技術(shù)都會不一樣,主打新聞門戶的sina與主打sns的運(yùn)維模式差異就非常大,甚至職責(zé)都不大一樣;但有一點(diǎn),通 用技術(shù)及大致架構(gòu)上都大同小異,大家不要太神化,更多的公司只是玩壘積木的游戲罷了,沒什么技術(shù)含量。c、如上面所講,目前大型網(wǎng)站運(yùn)維還處于幼年時期理念和經(jīng)驗都比較零散,沒有成熟的知識體系,可能具體什么是運(yùn)維,大家都要先思索一番,或壓根沒想過,真 正討論也只是運(yùn)維工作的冰山一角,局限于具體技術(shù)細(xì)節(jié),或某某著名網(wǎng)站大的框架,真正運(yùn)維體系化東西沒有,這也許是目前網(wǎng)上運(yùn)維相關(guān)資料比較少的原故吧。 或者也是國內(nèi)運(yùn)維人員比較難招,比較牛的運(yùn)維工程師比較少見的原因之一吧。二、運(yùn)維工作師需要什么樣的技能及素質(zhì)做為一名運(yùn)維工程師需要什么樣的技能及素質(zhì)呢,首先說說技能吧,如大家上面所看到,運(yùn)維是一個集多IT工種技能與一身的崗位,對系統(tǒng)->網(wǎng)絡(luò) ->存儲->協(xié)議->需求->開發(fā)->測試->安全等各環(huán)節(jié)都需要了解一些,但對于某些環(huán)節(jié)需熟悉甚至精通,如系統(tǒng) (基本操作系統(tǒng)的熟悉使用,*nix,windows..)、協(xié)議、系統(tǒng)開發(fā)(日常很重要的工作是自動運(yùn)維化相關(guān)開發(fā)、大規(guī)模集群工具開發(fā)、管理)、通用 應(yīng)用(如lvs、ha、web server、db、中間件、存儲等)、網(wǎng)絡(luò),IDC拓樸架構(gòu);技能方面總結(jié)以下幾點(diǎn):1、開發(fā)能力,這點(diǎn)非常重要,因為運(yùn)維工具都需要自已開發(fā),開發(fā)語言:c/c++(必備其中之一)、perl、python、php(其中之一)、shell(awk,sed,expect….等),需要有過實(shí)際開發(fā)經(jīng)驗,否則工作會非常痛苦。2、通用應(yīng)用方面需要了解:操作系統(tǒng)(目前國內(nèi)主要是linux、bsd)、webserver相關(guān) (nginx,apahe,php,lighttpd,java。。。)、數(shù)據(jù)庫(mysql,oralce)、其它雜七八拉的東東。。。系統(tǒng)優(yōu)化,高可 靠性。。。這些只是加分項,不需必備,可以邊工作邊慢慢學(xué),這些東西都不難。當(dāng)然在運(yùn)維中,有些是有分工偏重點(diǎn)不一樣。3、系統(tǒng)、網(wǎng)絡(luò)、安全,存儲,CDN,DB等需要相當(dāng)了解,知道其相關(guān)原理。個人素質(zhì)方面:1、 溝通能力、團(tuán)隊協(xié)作:運(yùn)維工作跨部門、跨工種工作很多,需善于溝通、并且團(tuán)隊協(xié)作能力要強(qiáng);這應(yīng)該是現(xiàn)代企業(yè)的基本素質(zhì)要求了,不多說。2、工作中需膽大心細(xì):膽大才能創(chuàng)新、不走尋常路,特別對于運(yùn)維這種新的工種,更需創(chuàng)新才能促進(jìn)發(fā)展;心細(xì),運(yùn)維工程師是網(wǎng)站admin,最高線上權(quán)限者,一不小心就會遺憾終生或打入十八層地獄。3、主動性、執(zhí)行力、精力旺盛、抗壓能力強(qiáng):由于IT行業(yè)的特性,變化快;往往計劃趕不上變化,運(yùn)維工作就更突出了,比如國內(nèi)各大公司服務(wù)器往往是全國各 地,哪里便宜性價比高,就那往搬,進(jìn)行大規(guī)模服務(wù)遷移(牽扯的服務(wù)器成百上千臺),這是一個非常頭痛的問題;往往時間非常緊迫,如限1周內(nèi)完成,這種情況 下,運(yùn)維工程師的主動性及執(zhí)行力就有很高的要求了:計劃、方案、服務(wù)無縫遷移、機(jī)器搬遷上架、環(huán)境準(zhǔn)備、安全評估、性能評估、基建、各關(guān)聯(lián)部門扯 皮,7X24小緊急事故響應(yīng)等。4、其它就是一些基本素質(zhì)了:頭腦要靈光、邏輯思維能力強(qiáng)、為人謙虛穩(wěn)重、親和力、樂于助人、有大局觀。5、最后一點(diǎn),做網(wǎng)站運(yùn)維需要有探索創(chuàng)新精神,通過創(chuàng)新型思維解決現(xiàn)實(shí)中的問題,因為這是一個處于幼年的職業(yè)(國外也一樣,但比國內(nèi)起步早點(diǎn)),沒有成熟體系或方法論可以借鑒,只能靠大家自已摸索努力。三、怎樣才算是一個合格的運(yùn)維工程師1、保證服務(wù)達(dá)到要求的線上標(biāo)準(zhǔn),如;保證線上穩(wěn)定,這是運(yùn)維工程師的基本責(zé)職所在。2、不斷的提升應(yīng)用的可靠性與健壯性、性能優(yōu)化、安全提升;這方面非??简炛鲃有浴⒑蛣?chuàng)新思維。3、網(wǎng)站各層面監(jiān)控、統(tǒng)計的覆蓋度,軟件、硬件、運(yùn)行狀態(tài),能監(jiān)控的都需要監(jiān)控統(tǒng)計,避免監(jiān)控死角、并能實(shí)時了解應(yīng)用的運(yùn)轉(zhuǎn)情況。4、通過創(chuàng)新思維解決運(yùn)維效率問題;目前各公司大部份運(yùn)維主要工作還是依賴人工操作干預(yù),需要盡可能的解放雙手。5、運(yùn)維知識的積累與沉淀、文檔的完備性,運(yùn)維是一個經(jīng)驗性非常強(qiáng)的崗位,好的經(jīng)驗與陷阱都需積累下來,避免重復(fù)性范錯。6、計劃性和執(zhí)行力;工作有計劃,計劃后想法設(shè)法達(dá)到目標(biāo),不找借口。7、自動化運(yùn)維;能對日常機(jī)械化工作進(jìn)行提煉、設(shè)計并開發(fā)成工具、系統(tǒng),能讓系統(tǒng)自動完成的盡量依靠系統(tǒng);讓大家更多的時間用于思考、創(chuàng)新思維、做自已喜歡的事情。以上只是技術(shù)上的一些層面,當(dāng)然個人意識也是很重要的。四、運(yùn)維職業(yè)的迷惘、現(xiàn)狀與發(fā)展前景運(yùn)維崗位不像其它崗位,如研發(fā)工程師、測試工程師等,有非常明確的職責(zé)定位及職業(yè)規(guī)劃,比較有職業(yè)認(rèn)同感與成就感;而運(yùn)維工作可能給人的感覺是哪方面都了 解一些,但又都比上專職工程師更精通、感覺平時被關(guān)注度比較低(除非線上出現(xiàn)故障),慢慢的大家就會迷惘,對職業(yè)發(fā)展產(chǎn)生困惑,為什么會有這種現(xiàn)象呢? 除了職業(yè)本身特點(diǎn)外,主要還是因為對運(yùn)維了解不深入、做得不深入導(dǎo)致;其實(shí)這個問題其它崗位也會出現(xiàn),但我發(fā)現(xiàn)運(yùn)維更典型,更容易出現(xiàn)這個問題;針對這個問題我談一下網(wǎng)站運(yùn)維的現(xiàn)狀及發(fā)展前景(也在思考中,可能不太深入全面,也請大家斧正補(bǔ)充)運(yùn)維現(xiàn)狀:1、處于剛起步的初級階段,各大公司有此專職,但重視或重要承度不高,可替代性強(qiáng);小公司更多是由其它崗位來兼顧做這一塊工作,沒有專職,也不可能做得深入2、技術(shù)層次比較低;主要處于技術(shù)探索、積累階段,沒有型成體系化的理念、技術(shù)。3、體力勞動偏大;這個問題主要與第二點(diǎn)有關(guān)系,很多事情還是依靠人力進(jìn)行,沒有完成好的提練,對于大規(guī)模集群沒有成熟的自動化管理方法,在此說明一下,大規(guī)模集群與運(yùn)維工作是息息相關(guān)的如果只是百十來臺機(jī)器,那就沒有運(yùn)維太大的生存空間了。4、優(yōu)秀運(yùn)維人才的極度缺乏;目前各大公司基本上都靠自已培養(yǎng),這個現(xiàn)狀導(dǎo)致行業(yè)內(nèi)運(yùn)維人才的流動性非常低,非常多好的技術(shù)都局限在各大公司內(nèi)部,如 google 50萬臺機(jī)器科學(xué)的管理,或者國內(nèi)互聯(lián)公司top 10 的一些運(yùn)維經(jīng)驗,這些經(jīng)驗是非常有價值的東西并決定了一個公司的核心競爭力;這些問題進(jìn)而導(dǎo)致業(yè)內(nèi)先進(jìn)運(yùn)維技術(shù)的流通、貫通、與借簽,并最終將限制了運(yùn)維 發(fā)展。5、很多優(yōu)秀的運(yùn)維經(jīng)驗都掌握在大公司手中;這不在于公司的技術(shù)實(shí)力,而在于大公司的技術(shù)規(guī)模、海量PV、硬件規(guī)模足夠大,如baidu可怕的流量、 海量數(shù)據(jù)~~~~這些因素決定了他們遇到的問題都是其它中/小公司還沒有遇到的,或即將遇到。但大公司可能已有很好的解決方案或系統(tǒng)。發(fā)展前景:1、從行業(yè)角度來看,隨著中國互聯(lián)網(wǎng)的高速發(fā)展(目前中國網(wǎng)民已躍升為全球第一)、網(wǎng)站規(guī)模越來越來大、架構(gòu)越來越復(fù)雜;對專職網(wǎng)站運(yùn)維工程師、網(wǎng)站架構(gòu) 師的要求會越來越急迫,特別是對有經(jīng)驗的優(yōu)秀運(yùn)維人才需求量大,而且是越老越值錢;目前國內(nèi)基本上都是選擇畢業(yè)生培養(yǎng)(限于大公司),培養(yǎng)成本高,而且沒 有經(jīng)驗人才加入會導(dǎo)致公司技術(shù)更新緩慢、影響公司的技術(shù)發(fā)展;當(dāng)然,畢業(yè)生也有好處:白紙一張,可塑性強(qiáng),比較認(rèn)同并容易融入企業(yè)文化。2、從個人角度,運(yùn)維工程師技術(shù)含量及要求會越來越高,同時也是對公司應(yīng)用、架構(gòu)最了解最熟悉的人、越來越得到重視。3、網(wǎng)站運(yùn)維將成為一個融合多學(xué)科(網(wǎng)絡(luò)、系統(tǒng)、開發(fā)、安全、應(yīng)用架構(gòu)、存儲等)的綜合性技術(shù)崗位,給大家提供一個很好的個人能力與技術(shù)廣度的發(fā)展空間。4、運(yùn)維工作的相關(guān)經(jīng)驗將會變得非常重要,而且也將成為個人的核心競爭力,具備很好的各層面問題的解決能力及方案提供、全局思考能力等。5、特長發(fā)控和興趣的培養(yǎng);由于運(yùn)維崗位所接觸的知識面非常廣闊,更容易培養(yǎng)或發(fā)揮出個人某些方面的特長或愛好,如內(nèi)核、網(wǎng)絡(luò)、開發(fā)、數(shù)據(jù)庫等方面,可以做得非常深入精通、成為這方面的專家。6、如果真要以后不想做運(yùn)維了,轉(zhuǎn)到其它崗位也比較容易,不會有太大的局限性。當(dāng)然了,你得真正用心去做。7、技術(shù)發(fā)展方向、網(wǎng)站/系統(tǒng)架構(gòu)師。五、運(yùn)維關(guān)鍵技術(shù)點(diǎn)解剖1、 大規(guī)模集群管理問題首先我們先要明確集群的概念,集群不是泛指各功能服務(wù)器的總合,而是指為了達(dá)到某一目的或功能的服務(wù)器、硬盤資源的整合(機(jī)器數(shù)大于兩臺),對于應(yīng)用來說 它就是一個整體,目前常規(guī)集群可分為:高可用性集群(HA),負(fù)載均衡集群(如lvs),分布式儲、計算存儲集群(DFS,如go
優(yōu)質(zhì)工程師考試問答知識庫