了解最新公司動態(tài)及行業(yè)資訊
運維工程師的職責和前景
運維關鍵技術點分析: 1. 大量高并發(fā)網(wǎng)站的設計方案; 2、高可靠、高擴展性的網(wǎng)絡架構設計; 3. 網(wǎng)站安全問題,如何避免被黑? 4 南北互聯(lián)問題,動態(tài)CDN解決方案; 5 海量數(shù)據(jù)存儲架構
一、什么是大型網(wǎng)站運維?
首先要明確一點,全文中所說的“運維”是指:大型網(wǎng)站運維,與其他運維有很大區(qū)別;然后我們定義了大型網(wǎng)站和小型網(wǎng)站的范圍。這個定義主要是從運維復雜度的角度,比如網(wǎng)站規(guī)格、人氣、服務器量級、PV量等,其他因素不是重點;因此,我們首先定義服務器規(guī)模大于1000臺,PV至少每天1億(至少國內前1)。 0),如新浪、百度、QQ等;其他小型網(wǎng)站可能沒有真正的運維工程師,這與網(wǎng)站規(guī)格和成本因素不足有關,更多的是網(wǎng)絡、系統(tǒng)和開發(fā)工作的集合,例如一些公司將一些合同采購納入運營范圍和維護職責,IDC網(wǎng)絡規(guī)劃也包括運維職責。因此,了解運維對于其他相關工作類型的重要性非常重要。必須非常熟悉:網(wǎng)絡、系統(tǒng)、系統(tǒng)開發(fā)、存儲、安全、DB等;我這里說的運維工程師是指專職運維工程師。
說說通用產(chǎn)品的“誕生”過程:
1、首先公司管理層給出指導思想,PM定位市場需求(或復制成熟應用)進行研究、分析,最后給出詳細設計。
2、架構師根據(jù)產(chǎn)品設計的需要,如pv大小估算、服務器規(guī)模、應用架構等因素,完成網(wǎng)絡規(guī)劃、架構設計等(基本上對網(wǎng)絡,大型項目除外)
2、
3、開發(fā)工程師實現(xiàn)設計代碼,測試工程師測試應用。
4、好了,運維工程師出來的時候,首先要明確的是,前三步與運維工作無關。相反,前三個步驟與運維有很大關系:應用程序的預架構設計、軟/硬件資源評估、申請采購、應用程序設計性能隱患和評估、IDC、服務性能安全調優(yōu)、服務器系統(tǒng)級優(yōu)化(具體應用相關)等都需要全員參與運維,并主導整個應用上線項目;運維工程師負責產(chǎn)品服務器的準備工作,服務器系統(tǒng)、網(wǎng)絡、IP 和通用工具集的安裝。運維工程師還需要對在線應用系統(tǒng)架構是否合理、是否具有可擴展性、安全風險等因素負責,負責產(chǎn)品(程序)、網(wǎng)絡、系統(tǒng)的拼接和優(yōu)化。 ,最后完成產(chǎn)品上線供用戶使用,反復使用:需求->開發(fā)(升級)->測試->上線(性能、安全問題等,之前估計問題會逐漸出來)這里提一下一點:網(wǎng)站開發(fā)模式與傳統(tǒng)的軟件開發(fā)完全不同。一個網(wǎng)站每天開發(fā)和推出1~5個升級版本是很常見的。用戶體驗為王。如果像 M$ 這樣的在線問題需要 1 年才能解決,那么用戶就會消失。 應用上線后,運維工作才剛剛開始,具體工作可能包括:升級版本上線工作、服務監(jiān)控、應用狀態(tài)統(tǒng)計、日常服務狀態(tài)檢查、突發(fā)故障處理、日常服務變更調整、集群管理、服務性能評估優(yōu)化、數(shù)據(jù)庫管理優(yōu)化、應用架構擴展、安全、運維隨著應用PV的增減而發(fā)展:
一個。嘗試通過工具(如服務監(jiān)控、應用狀態(tài)統(tǒng)計、服務上線等)來實現(xiàn)日常的機械手工作業(yè),以提高效率。
b.解決現(xiàn)實生活中服務的高可靠性和可擴展性等問題。
c。大型集群管理工具的開發(fā),比如10000臺機器如何在1分鐘內完成密碼修改或運行指定任務?如何在2000臺服務器上快速安裝操作系統(tǒng)?如何在每個分布式IDC和存儲集群中快速存儲、共享和分析PB級別的數(shù)據(jù)?一系列的挑戰(zhàn)需要運維工程師的努力。
這里是其他合作類型的描述。在整個項目中,前端應用程序是網(wǎng)絡/系統(tǒng)工程師的黑匣子。同時,開發(fā)工程師只負責完成應用程序的功能開發(fā),以及應用程序本身的性能和安全性。應用程序本身負責,它不負責或關心網(wǎng)絡/系統(tǒng)架構。當然,業(yè)務部門的其他同事如軟/硬件采購人員不會關心這些問題,各司其職,但項目的核心是運維工程師~!與所有其他部門的橋梁。
上面說了很多。我想大家應該對運維有一些概念。我們在這里打個比方。如果我們是一輛在高速公路上高速行駛的汽車,那么運維工程師就是司機和維修工。 , 這個司機不簡單,有時候在高速行駛的時候需要換胎,還要根據(jù)路況換擋。當汽車的速度越來越快時,汽車本身就無法滿足高速。當汽車本身不能滿足高速,汽車性能調?;蛄悴考?,高速行駛中解決車輛故障和性能問題時,時刻注意前方的安全問題,做好預防措施。這是運維工作~!
最后說一下運維工程師的職責:“保證在線穩(wěn)定”,看似簡單,實則不易。運維工程師必須平衡很多不利因素:影響、產(chǎn)品頻繁升級導致的線上bug、運維自動化管理低下導致的人為錯誤、IT行業(yè)追求高效率導致的流程執(zhí)行不足、績效用戶增加帶來的結構壓力、IT行業(yè)松散的技術管理文化、創(chuàng)新風險、互聯(lián)網(wǎng)安全問題等因素都會成為網(wǎng)站穩(wěn)定的大敵。原則性和協(xié)調性,如果你能做到各方面因素的最佳平衡,你就會成為一名優(yōu)秀的運維工程師。
另外,我想在這里談一個題外話??吹竭@里很多人想講講自己的運維經(jīng)驗,比如新浪、QQ、百度等,其實這對他們來說有點難:
一個。每個公司自己的網(wǎng)絡結構和規(guī)模,或多或少都是公司的核心機密,應該保密。另外,對于眾所周知的通用軟件和架構,很多公司會根據(jù)自己的實際業(yè)務需求,同時由于原有的性能、安全性、已知的bug、功能等原因,進行二次開發(fā)(如php、mysql)已經(jīng)進行了,操作系統(tǒng)內核也將根據(jù)不同的業(yè)務類型進行定制。有些是高 IO 類型,或者是大存儲和大內存類型。根據(jù)這些特點進行內核優(yōu)化和定制。比如新浪就對其進行了二次開發(fā),拿出了一個。我們不會談論它是如何完成的,但值得稱道的是它是開源的。國內公司基本要求開源。無貢獻;另外,服務器不是知名機型。根據(jù)業(yè)務特點,大部分已被DELL/HP/ibm定制;另外,他們有自己的分布式存儲解決方案,或者使用現(xiàn)成的開源解決方案,或者自行開發(fā)。但是90%都是借鑒GFS的思想:分布式存儲、計算、大表。
b.每個公司的業(yè)務方向不同,會導致不同的運維模式或方式。比如百度的運維肯定是很不一樣的,因為他們的業(yè)務模式?jīng)Q定了他們的架構、服務器級別、IDC分布、網(wǎng)絡結構和通用技術都會不同。 sina作為主新聞門戶的運維模式,和主要sns的運維模式差別很大,甚至職責也不一樣;但有一點,通用技術和通用架構是相似的,所以不要太神化,更多的公司只是在玩積木游戲,沒有任何技術含量。
c。如前所述,大型網(wǎng)站運維的概念和經(jīng)驗還處于起步階段,還沒有成熟的知識體系??赡苁鞘裁词沁\維,大家應該先考慮一下,或者根本不考慮。想了想,真正的討論只是運維工作的冰山一角,僅限于具體的技術細節(jié),或者是某知名網(wǎng)站的大框架,沒有真正的運維體系。這可能是網(wǎng)上運維相關資料比較少的原因。酒吧?;蛘哒f這也是國內運維人員比較難招,比較好的運維工程師少的原因之一。
二、運維人員需要具備哪些技能和素質
作為一名運維工程師,你需要具備什么樣的技能和素質?先說技能吧。如上所見,運維是一個綜合了多種IT技能和技能的職位。對于->->->->->->->等環(huán)節(jié)需要了解,但有些環(huán)節(jié)需要熟悉甚至精通,比如系統(tǒng)(熟悉使用基礎操作系統(tǒng)、*nix、..)、協(xié)議、系統(tǒng)開發(fā)(每一項重要工作都是自動化運維開發(fā)、大型集群工具開發(fā)、管理)、通用應用(如lvs、ha、web、db 、中間件、存儲等)、網(wǎng)絡、IDC拓撲;
技能總結如下幾點:
1、開發(fā)能力,這個很重要,因為運維工具需要自己開發(fā),開發(fā)語言:c/c++(必須包括一)、perl、php(其中< @一), perl, php)。@一), shell (awk, sed, ....等),需要有實際開發(fā)經(jīng)驗,否則工作會很痛苦。
2、一般應用需要知道:操作系統(tǒng)(國內主要是linux,bsd),相關(nginx,apahe,php,,java...),數(shù)據(jù)庫(mysql,),其他雜七巴拉的東西。 . 系統(tǒng)優(yōu)化,可靠性高。 . 這些只是加分,不是必須的,你可以邊工作邊慢慢學習,這些都不難。當然,在運維上,有的優(yōu)先級不同。
3、系統(tǒng)、網(wǎng)絡、安全、存儲、CDN、DB等都需要很好的理解和了解相關原理。
在個人素質方面:
1、溝通能力和團隊合作:運維中有很多跨部門、跨崗位的工作,需要良好的溝通能力和較強的團隊合作能力;這應該是現(xiàn)代企業(yè)的基本素質要求,不多說了。
2、在工作中要敢于用心:勇于創(chuàng)新,不走尋常路,尤其是運維等新型工作,更需要創(chuàng)新促發(fā)展;小心,運維工程師是網(wǎng)站管理員,擁有最高在線權限的人,一不小心就會后悔一生,或者進入十八層地獄。
3、主動、執(zhí)行力、精力充沛、抗壓能力強:由于IT行業(yè)的特點,變化快;往往計劃跟不上變化,運維工作比較突出,比如國內各大公司的服務器,往往是全國各地it運維技術,便宜又劃算的地方,搬到那里執(zhí)行大- 規(guī)?;姆者w移(涉及數(shù)十萬臺服務器),這是一個非常頭疼的問題;往往時間很緊,比如1周內完成,這種情況下,運維工程師的主動性和執(zhí)行力都有很高的要求:計劃、解決方案、無縫服務遷移、機器搬遷、環(huán)境準備、安全評估、性能評估、基礎設施,和相關部門扯皮,7X24小應急等。
4、其他是一些基本素質:頭腦聰明、邏輯思維能力強、謙虛穩(wěn)重、有親和力、樂于助人、有大局觀。
5、最后,做網(wǎng)站運維需要有探索創(chuàng)新的精神,通過創(chuàng)新思維解決實際問題,因為這是一個處于起步階段的職業(yè)(國外也是如此,但起步較早比中國),沒有成熟的體系或方法可以借鑒,大家只能靠自己的探索和努力。
三、如何成為一名合格的運維工程師
1、確保服務符合要求的上線標準,如99.9%;確保在線穩(wěn)定是運維工程師的基本職責。
2、不斷提高應用的可靠性和健壯性,優(yōu)化性能,提高安全性;這是對主動性和創(chuàng)新思維的考驗。
3、網(wǎng)站各級監(jiān)控統(tǒng)計覆蓋,軟件、硬件、運行狀態(tài),凡是能監(jiān)控的都需要監(jiān)控統(tǒng)計,避免監(jiān)控死角,了解運行情況應用程序的實時性。
4、通過創(chuàng)新思維解決運維效率問題;目前各公司大部分主要運維工作仍依賴人工操作和干預,要盡可能解放雙手。
5、運維知識的積累和沉淀,文檔的完整性,運維是一個很有經(jīng)驗的崗位,好的經(jīng)驗和陷阱需要積累,避免重復犯錯。
6、計劃和執(zhí)行;工作有計劃,計劃后的想法是不找借口,努力實現(xiàn)目標。
7、自動化運維;能將日常機械化工作細化、設計、開發(fā)成工具和系統(tǒng),并盡可能依靠系統(tǒng)自動完成;讓大家有更多的時間去思考和創(chuàng)新思維,做自己喜歡的事。
以上只是技術方面的一部分,當然個人意識也很重要。
四、運維行業(yè)的困惑、現(xiàn)狀與發(fā)展前景
運維崗位不像其他崗位,比如研發(fā)工程師、測試工程師等,職責和職業(yè)規(guī)劃非常明確,有職業(yè)認同感和成就感;以及運維工作的哪些方面可能給人的感覺他們都懂一點,但是比專職工程師更熟練,感覺平時受到的關注較少(除非出現(xiàn)在線故障)。慢慢的大家都會對職業(yè)發(fā)展感到迷茫和迷茫。為什么會這樣? 除了專業(yè)本身的特點外,主要是對運維缺乏深入的了解和表現(xiàn)造成的;其實這個問題也可以出現(xiàn)在其他位置,但是我發(fā)現(xiàn)運維比較典型,出現(xiàn)這個問題的可能性更大;
針對這個問題,我說一下網(wǎng)站運維的現(xiàn)狀和發(fā)展前景(我也在思考,可能不夠深入全面,還請直接補充)
運維現(xiàn)狀:
1、在剛起步的初期,各大公司都有這個全職工作,但重點或重要性不高,可替代性強;小公司更有可能通過其他職位來處理這項工作。沒有全職,也不可能做深入。
2、技術水平比較低;主要處于技術探索和積累階段,沒有系統(tǒng)的概念和技術。
3、體力勞動量過大;這個問題主要和第二點有關。很多事情還是靠人力進行的,還沒有完成好的訓練。大規(guī)模集群沒有成熟的自動化管理方法。需要注意的是,大規(guī)模集群與運維工作密切相關。如果只有一百臺或十臺機器,運行和維護的生存空間并不大。
4、優(yōu)秀的運維人才極度缺乏;目前各大公司基本都是靠自己的培訓。這種情況導致行業(yè)內運維人才的流動性非常低,很多好的技術都局限在各種大公司里面,比如50萬臺機器的科學管理,或者國內前10的一些運維經(jīng)驗互聯(lián)網(wǎng)公司,這些經(jīng)驗非常寶貴,決定了一個公司的核心競爭力;這些問題反過來又導致該行業(yè)的先進操作。維護技術的流通、整合、借用,最終會限制運維的發(fā)展。
5、很多優(yōu)秀的運維經(jīng)驗掌握在大公司手中;這不在于公司的技術實力,而在于大公司的技術規(guī)模、海量PV、硬件規(guī)模,比如百度可怕的流量、海量數(shù)據(jù)~~~~這些因素決定了他們遇到的問題是其他的中小型企業(yè)還沒有遇到,或者即將遇到。但大公司可能已經(jīng)有了很好的解決方案或系統(tǒng)。
發(fā)展前景:
1、從行業(yè)來看,隨著中國互聯(lián)網(wǎng)的快速發(fā)展(目前中國網(wǎng)民已經(jīng)躍居世界第一一),網(wǎng)站規(guī)模越來越大,結構越來越復雜;對專職網(wǎng)站運維工程師和網(wǎng)站架構師的要求會越來越迫切,特別是對于經(jīng)驗豐富、優(yōu)秀的運維人才,年齡越大越有價值;目前國內培訓基本選擇畢業(yè)生(僅限于大公司),培訓成本高,加上缺乏經(jīng)驗的人才會導致公司技術更新慢,影響公司技術發(fā)展;當然,畢業(yè)生也有優(yōu)勢:一張白紙,可塑性強,辨識度高,容易融入企業(yè)文化。
2、從個人角度來說,運維工程師的技術含量和要求會越來越高。同時,他們也是最熟悉公司應用和架構的人,會受到越來越多的關注。
3、網(wǎng)站運維將成為集多學科(網(wǎng)絡、系統(tǒng)、開發(fā)、安全、應用架構、存儲等)為一體的綜合性技術崗位,為大家提供良好的個人能力和技術廣度發(fā)展空間。
4、運維工作的相關經(jīng)驗將變得非常重要,也將成為個人的核心競爭力,具備良好的各級解決問題、提供解決方案、放眼全球的能力。
5、優(yōu)勢和興趣的培養(yǎng);由于運維崗位所接觸的知識面很廣,比較容易培養(yǎng)或發(fā)展某些個人特長或愛好,比如內核、網(wǎng)絡、開發(fā)、數(shù)據(jù)庫等方面,可以做的非常深入和精通并成為該領域的專家。
6、如果以后實在不想做運維,轉其他崗位比較容易,不會有太多限制。當然,你必須真正投入其中。
7、技術發(fā)展方向:網(wǎng)站/系統(tǒng)架構師。
五、運維關鍵技術點分析
1、大規(guī)模集群管理問題
首先要明確集群的概念。集群不是指各種功能服務器的總和,而是指服務器和硬盤資源(多于兩臺機器)的整合,以達到一定的目的或功能。它是一個整體。目前常規(guī)集群可分為:高可用集群(HA)、負載均衡集群(如lvs)、分布式存儲、計算存儲集群(DFS,如gfs、yahoo)、特定應用集群(某種組合具有特定功能的服務器(如db、緩存層等),目前互聯(lián)網(wǎng)行業(yè)主要以這四種為主;前兩種類似,如果業(yè)務簡單,對應用的后期操作相對小,用四層交換機就可以簡單解決(比如f5)就達到了服務高可用/責任均衡的作用。對于資源有限的公司,也有一些開源的解決方案,比如lvs+ha,非常靈活;對于后兩者,將考驗公司的技術實力和應用特點?,F(xiàn)在第三類DFS主要用于海量數(shù)據(jù)應用,比如郵件、搜索等應用, lly 搜索要求更高,除了簡單的海量存儲,還包括數(shù)據(jù)挖掘和用戶行為分析;例如,yahoo 可以保存近一年的用戶記錄分析數(shù)據(jù),而百度應該不到 30 天,soguo 更少……這些對于搜索準備和用戶體驗至關重要。
接下來說一下如何科學的管理集群,有以下幾個重點:
我,監(jiān)控
主要包括故障監(jiān)控和性能、流量、負載等狀態(tài)監(jiān)控,這些監(jiān)控關系到集群的健康運行,以及潛在問題的及時發(fā)現(xiàn)和干預;
一個。服務故障、狀態(tài)監(jiān)控:主要是對服務器本身、上層應用、關聯(lián)服務數(shù)據(jù)的交互監(jiān)控;比如對于前端web,我們可以有很多種監(jiān)控,包括應用端口狀態(tài)監(jiān)控,方便及時發(fā)現(xiàn)是服務器還是應用本身崩潰了,通過icmp包檢測服務器健康狀態(tài),以及上層還可以包括對應用程序各個通道的服務的監(jiān)控。常用的方法是使用人臉行業(yè)特征碼進行判斷,或者對關鍵頁面進行簽名,使網(wǎng)站被黑、被篡改(報警,并自動恢復被篡改的數(shù)據(jù))等,這些只是一部分,有N多種監(jiān)控方式,根據(jù)應用特點,還是有一些問題需要解決,比如集群太大,如何高性能監(jiān)控也是一個現(xiàn)實問題。
b.其他是集群狀態(tài)監(jiān)控或統(tǒng)計,為我們合理管理和調優(yōu)集群提供數(shù)據(jù)參考,包括服務瓶頸、性能問題、流量異常、攻擊等問題。
二、故障管理
一個。硬件故障問題;對于一個擁有成百上千或上萬臺機器的多集群,服務器崩潰和硬件故障的概率非常高。電源、內存、開關。針對這種情況,我們在設計網(wǎng)站架構時需要充分考慮這些問題,并將其作為規(guī)范;更多地依靠應用程序的冗余機制來規(guī)避這種風險,但要給系統(tǒng)工程師足夠的時間來處理它。 (如果不是聲稱800臺機器同時死機,服務不會受到任何影響);這是測試運維工程師和網(wǎng)站架構師功能的地方。一個好的設計可以達到描述的自恢復能力,比如gfs,一個不好的。設計上是某臺服務器的故障可能引起大規(guī)模的服務鏈故障反射,直接拒絕響應用戶。
b.應用失敗問題;可能是bug被觸發(fā),或者超過了某個性能閾值,攻擊等等,但重要的是對這些問題有預防措施。不能想當然,不會出錯,如果有問題,怎么處理?這需要運維工程師做大量的工作,包括應急響應速度、科學的故障處理、備份方案的有效性。
三、自動化
自動化:簡而言之it運維技術,就是通過工具和系統(tǒng)將我們日常的一些手工工作自動化,解放我們的雙手和繁瑣的重復勞動,例如:在沒有工具之前,我們需要一個系統(tǒng)來安裝一個裸機安裝,比如2000臺,可能需要10人/10天,銷毀N盤,人工成本更大。 . 現(xiàn)在,通過自動化工具,只需幾個簡單的命令即可完成。還有類似機器人的程序,自動完成過去每天人工干預的工作,從而自動完成并報告結果。它具有一定的專家系統(tǒng)能力,可以做一些簡單的是/否判斷、優(yōu)化選擇等。 這些好處是顯而易見的,不用多說。 . 應該說,自動化運維是運維工程師的專業(yè)追求,造福大眾,造福大眾,雖然這是一項極其艱巨的任務:不斷變化的業(yè)務、非標準的應用設計、開發(fā)模式、網(wǎng)絡架構變更、IDC變更、規(guī)范變更等因素可能會對現(xiàn)有自動化系統(tǒng)產(chǎn)生影響,因此需要模塊化、接口化、可變因素參數(shù)化等。因此,自動化相關工作是運維工程師的核心重點工作之一,也是很有價值的。反映。