你想面試運維看一下你合格了嗎?

今天小編爲你們盤點一下,一個新手面試Linux 運維工做至少須要知道哪些知識?
1、什麼是大型網站運維?
首先明確一下,全文所講的」運維「是指:大型網站運維,與其它運維的區別仍是蠻大的;而後咱們再對大型網站與小型網站進行範圍定義,此定義主要從運維複雜性角度考慮,如網站規範、知名度、服務器 量級、pv量等考慮,其它因素不是重點;所以,咱們先定義服務器規模大於1000臺,pv天天至少上億(至少國內排名前10),如sina、baidu、 QQ等等;其它小型網站可能沒有真正意義上的運維工程師,這與網站規範不夠和成本因素有關,更多的是集合網絡、系統 、開發工做於一身的「複合性人才」,就若有些公司把一些合同採購都歸入了運維職責範圍,還有如IDC網絡規劃也歸入運維職責。因此,很是重要必定須要明白:運維對其它關聯工種必須很是瞭解熟悉:網絡、系統、系統開發、存儲,安全,DB等;我在這裏所講的運維工程師就是指專職運維工程師。
咱們再來講說通常產品的「出生」流程:
一、首先公司管理層給出指導思想,PM定位市場需求(或copy成熟應用)進行調研、分析、最終給出詳細設計。
二、架構師根據產品設計的需求,如pv大小預估、服務器規模、應用架構等因素完成網絡規劃,架構設計等(基本上對網絡變更不大,除非大項目)
三、開發工程師將設計code實現出來、測試工程師對應用進行測試。
四、好,到運維工程師出馬了,首先明確一點不是說前三步就與運維工做無關了,偏偏相反,前三步與運維關係很大:應用的前期架構設計、軟/硬件資源評估申請採購、應用設計性能隱患及評估、IDC、服務性能\安全調優、服務器系統級優化(與特定應用有關)等都需運維全程參與,並主導整個應用上線項目;運維工程師負責產品服務器上架準備工做,服務器系統安裝、網絡、IP、通用工具集安裝。運維工程師還須要對上線的應用系統架構是否合理、是否具有可擴展性、及安全隱患等因素負責,並負責最後將產品(程序)、網絡、系統三者進行拼接並最優化的組合在一塊兒,最終完成產品上線提供用戶使用,並周而復使:需求->開發(升級)->測試->上線(性能、安全問題等以前預估外的問題隨之慢慢就全出來了)在這裏提一點:網站開發模式與傳統軟件開發徹底不同,網站一天開發上線1~5個升級版本是屢見不鮮,用戶體驗爲王嘛,若是某個線上問題像M$ 須要1年解決,用戶早跑光了;應用上線後,運維工做纔剛開始,具體工做可能包括:升級版本上線工做、服務監控、應用狀態統計、平常服務狀態巡檢、突發故障處理、服務平常變動調整、集羣管理、服務性能評估優化、數據庫管理優化、隨着應用PV增減進行應用架構的伸縮、安全、運維開發工做:
a 、儘可能將平常機械性手工工做經過工具實現(如服務監控、應用狀態統計、服務上線等等),提升效率。
b、解決現實中服務存在的問題,如高可靠性、可擴展性問題等。
c、大規模集羣管理工具的開發,如1萬臺機器如何在1分鐘內完成密碼修改、或運行指定任務?2000臺服務器如何快速安裝操做系統?各分佈式IDC、存儲集羣中數PT級的數據如何快速的存儲、共享、分析?等一系列挑戰都需運維工程師的努力。
在此說明一下其它配合工種狀況,在整個項目中,前端應用對於網絡/系統工程師來講是黑匣子,同時開發工程師職責只是負責完成應用的功能性開發,並對應用自己性能、安全性等應用自己負責,它不負責或關心網絡/系統架構方面事宜,固然軟/硬件採購人員等事業部其它同事也不會關心這些問題,各司其職,但項目的核心是運維工程師~!全部其它部門的橋樑。
上面說了不少,我想你們應該對運維有一些概念了,在此打個比方吧,若是咱們是一輛高速行駛在高速公路上的汽車,那運維工程師就是司機兼維修工,這個司機不簡單,有時須要在高速行駛過程當中換輪胎、並根據道路狀況換檔位、當汽車速度愈來愈快,汽車自己不能知足高速度時對汽車性能調優或零件升級、高速行進中解決汽車故障及性能問題、時刻關注前方安全問題,並先知先覺的採起規避手段。這就是運維工做~!
最後說一下運維工程師的職責:」確保線上穩定「,看似簡單,但實屬不容易,運維工程師必須在諸多不利因素中進行權衡:新產品模式對現有架構及技術的衝擊、產品高頻度的升級帶來的線上BUG隱患、運維自動化管理承度不高致使的人爲失誤、IT行業追求的高效率致使流程執行上的缺失、用戶增漲帶來的性能及架構上的壓力、IT行業寬鬆的技術管理文化、創新風險、互聯網安全性問題等因素,都會是網站穩定的大敵,運維工程師必須把控好這最後一關,需具體高度的責任感、原則性及協調能力,若是能作到各因素的最佳平衡,那就是一名優秀的運維工程師了。
另外在此聊點題外話,我在這裏看到有不少人要sina、QQ、baidu等聊自已的運維方面的經驗,其實這對於它們有點免爲其難:
a、各公司自已網絡架構、規模、或多或少還算是公司的核心祕密,要保密,另外,對於你們所熟知的通用軟件、架構,因爲不少公司會根據自已實際業務須要,同時由於原版性能、安全性、已知bug、功能等緣由,進行過二次開發(如apache,php,mysql ),操做系統內核也會根據不一樣業務類型進行定製的,如某些應用屬於運算型、某些是高IO型、或大存儲大內存型。根據這些特色進行內核優化定製,如sina就在 memcache上進行過二次開發,搞出了一個MemcacheDB,具體作得如何咱們不談,但開源了,是值得稱讚的,國內公司對於開源基本上是索取,沒有貢獻;另外,服務器也不是你們所熟知的型號,根據業務特色,大部份都是找DELL/HP/ibm進行過定製;另外,在分佈式儲存方面都有自已解決方案,要不就是使用現成開源hadoop等解決方案,或自已開發。但90%都是借鑑google GFS的思想:分佈式存儲、計算、大表。
b、各公司業務方向不同,會致使運維模式或方法都不同。由於他們業務模式決定了其架構、服務器量級、 IDC分佈、網絡結構、通用技術都會不同,主打新聞門戶
c、如上面所講,目前大型網站運維還處於幼年時期理念和經驗都比較零散,沒有成熟的知識體系,可能具體什麼是運維,你們都要先思索一番,或壓根沒想過,真正討論也只是運維工做的冰山一角,侷限於具體技術細節,或某某著名網站大的框架,真正運維體系化東西沒有,這也許是目前網上運維相關資料 比較少的原故吧。或者也是國內運維人員比較難招,比較牛的運維工程師比較少見的緣由之一吧。
2、運維工做師須要什麼樣的技能及素質
作爲一名運維工程師須要什麼樣的技能及素質呢,首先說說技能吧,如你們上面所看到,運維是一個集多IT工種技能與一身的崗位,對系統->網絡 ->存儲->協議->需求->開發->測試->安全等各環節都須要瞭解一些,但對於某些環節需熟悉甚至精通,如系統 (基本操做系統的熟悉使用,*nix,windows ..)、協議、系統開發(平常很重要的工做是自動運維化相關開發、大規模集羣工具開發、管理)、通用應用(如lvs、ha、web server 、db、中間件、存儲等)、網絡,IDC拓樸架構;
技能方面總結如下幾點:
一、開發能力,這點很是重要,由於運維工具都須要自已開發,開發語言:perl、python、php(其中之一)、shell(awk,sed,expect….等),須要有過實際項目開發經驗,不然工做會很是痛苦。
二、通用應用方面須要瞭解:操做系統(目前國內主要是linux、bsd)、webserver相關 (nginx,apahe,php,lighttpd,java。。。)、數據庫(mysql,oralce)、其它雜七八拉的東東;系統優化,高可靠性;這些只是加分項,不需必備,能夠邊工做邊慢慢學,這些東西都不難。固然在運維中,有些是有分工偏重點不同。
三、系統、網絡、安全,存儲,CDN,DB等須要至關了解,知道其相關原理。
我的素質方面:
一、溝通能力、團隊協做:運維工做跨部門、跨工種工做不少,需善於溝通、而且團隊協做能力要強;這應該是現代企業的基本素質要求了,很少說。
二、工做中需膽大心細:膽大才能創新、不走尋常路,特別對於運維這種新的工種,更需創新才能促進發展;心細,運維工程師是網站admin,最高線上權限者,一不當心就會遺憾終生或打入十八層地獄。
三、主動性、執行力、精力旺盛、抗壓能力強:因爲IT行業的特性,變化快;每每計劃趕不上變化,運維工做就更突出了,好比國內各大公司服務器每每是全國各地,哪裏便宜性價比高,就那往搬,進行大規模服務遷移(牽扯的服務器成百上千臺),這是一個很是頭痛的問題;每每時間 很是緊迫,如限1周內完成,這種狀況下,運維工程師的主動性及執行力就有很高的要求了:計劃、方案、服務無縫遷移、機器搬遷上架、環境準備、安全評估、性能評估、基建、各關聯部門扯皮,7X24小緊急事故響應等。
四、其它就是一些基本素質了:頭腦要靈光、邏輯思惟能力強、爲人謙虛穩重、親和力、樂於助人、有大局觀。
五、最後一點,作網站運維須要有探索創新精神,經過創新型思惟解決現實中的問題,由於這是一個處於幼年的職業(國外也同樣,但比國內起步早點),沒有成熟體系或方法論能夠借鑑,只能靠你們自已摸索努力。
3、怎樣纔算是一個合格的運維工程師
一、保證服務達到要求的線上標準,如99.9%;保證線上穩定,這是運維工程師的基本責職所在。
二、不斷的提高應用的可靠性與健壯性、性能優化、安全提高;這方面很是考驗主動性和創新思惟。
三、網站各層面監控、統計的覆蓋度,軟件、硬件、運行狀態,能監控的都須要監控統計,避免監控死角、並能實時瞭解應用的運轉狀況。
四、經過創新思惟解決運維效率問題;目前各公司大部份運維主要工做仍是依賴人工操做干預,須要儘量的解放雙手。
五、運維知識的積累與沉澱、文檔的完備性,運維是一個經驗性很是強的崗位,好的經驗與陷阱都需積累下來,避免重複性範錯。
六、計劃性和執行力;工做有計劃,計劃後想法設法達到目標,不找藉口。
七、自動化運維;能對平常機械化工做進行提煉、設計並開發成工具、系統,能讓系統自動完成的儘可能依靠系統;讓你們更多的時間用於思考、創新思惟、作自已喜歡的事情。
4、運維職業的迷惘、現狀與發展前景
運維崗位不像其它崗位,如研發工程師、測試工程師等,有很是明確的職責定位及職業規劃,比較有職業認同感與成就感;而運維工做可能給人的感受是哪方面都瞭解一些,但又都比上專職工程師更精通、感受平時被關注度比較低(除非線上出現故障),慢慢的你們就會迷惘,對職業發展產生困惑,爲何會有這種現象呢?除了職業自己特色外,主要仍是由於對運維瞭解不深刻、作得不深刻致使;其實這個問題其它崗位也會出現,但我發現運維更典型,更容易出現這個問題;
運維現狀:
一、處於剛起步的初級階段,各大公司有此專職,但重視或重要程度不高,可替代性強;小公司更可能是由其它崗位來兼顧作這一塊工做,沒有專職,也不可能作得深刻。
二、技術層次比較低;主要處於技術探索、積累階段,沒有型成體系化的理念、技術。
三、體力勞動偏大;這個問題主要與第二點有關係,不少事情仍是依靠人力進行,沒有完成好的提練,對於大規模集羣沒有成熟的自動化管理方法,在此說明一下,大規模集羣與運維工做是息息相關的若是隻是百十來臺機器,那就沒有運維太大的生存空間了。
四、優秀運維人才的極度缺少;目前各大公司基本上都靠自已培養,這個現狀致使行業內運維人才的流動性很是低,很是多好的技術都侷限在各大公司內部,如 google 50萬臺機器科學的管理,或者國內互聯公司top 10 的一些運維經驗,這些經驗是很是有價值的東西並決定了一個公司的核心競爭力;這些問題進而致使業內先進運維技術的流通、貫通、與借籤,並最終將限制了運維發展。
五、不少優秀的運維經驗都掌握在大公司手中;這不在於公司的技術實力,而在於大公司的技術規模、海量PV、硬件規模足夠大,如baidu可怕的流量、 php

相關文章
相關標籤/搜索