/* 運維是在於一個量 最少的人,最多的事 而且保證業務 好比說google的一個數據中心,只有幾我的在維護 運維不能直接的創造價值,而是能夠變相的節約成本 你節約的成本x你的意識x你的覺悟=你的價值 ———-來自 98素辭 */
1.對服務版本選擇,要和開發溝通,若是開發用的php語言,那就問他寫的代碼是哪一個版本的,不一樣版本可能不兼容一些語法,會致使出錯php
要選擇穩定版,太新的可能會致使一些bug,從而崩潰或服務出錯。選擇新版本惟一的目的應該是須要新的功能,不然老的版本最穩定html
服務部署後要進行簡單測試,讓服務能夠照常運行才能夠,不能裝完就算了。對於java這種替換版本,1.7升級到1.8可能致使某些依賴1.7的JDK,這都要去考慮清楚。java
當服務運行後要注意他的啓動用戶是什麼,可能用戶不對形成沒法讀取文件。好比nginx啓動時www用戶,他就無法讀取/data裏找html發送給用戶。python
數據庫若是要和庫,要考慮是否有表名字重複。若是公用一個redis進行緩存,要考慮寫入的數據是否衝突。mysql
2.根據業務進行結構分析,是使用nginx仍是apache,選擇前填寫調研文檔,進行測試,寫測試文檔和部署,使用文檔linux
3.根據業務量進行機器的數量選擇還有配置選擇,最好將配置作成套餐,好比將tomcat機器,每一個都是8核16G內存,硬盤100基礎,這個做爲一個套餐來建立虛擬機或者雲機器選購。ios
4.根據需求進行主從,或者負載均衡選擇,可能還要選擇備份容災,cdn等等nginx
5.對服務的日誌進行分析,好比ip來源地址,pv,uvgit
6.對服務和系統進行優化,優化前和優化後差異很大,性能能夠差一倍。程序員
7.安全防禦,不僅有ddos,還有登錄問題。多關注軟件可能暴露的一些安全問題,或者linux自己的系統問題
說不定謀個nginx版本忽然說有問題,你還沒關注到,那就很容易被黑掉
8.網絡問題,不少時候都是這樣,某個地方訪問慢,但其餘人訪問不慢,很頭疼,須要抓包再逐步排查
9.性能問題,可能最初還好。隨着壓力來臨,數據庫可能有慢查詢,須要進行排查和解決。網站可能有部分用戶訪問不了,或者訪問緩慢,都須要去排查
這塊是最可貴,須要各方面知識,若是遇到忽然訪問不了,那就回想以前作了哪些操做,再針對性排查
10.關注版本問題,像nginx1.9將支持tcp的4層代理,而不只僅是以前的7層了,這樣性能會提升不少,對公司業務頗有幫助
11.優化,不只是系統的內核方面優化,還有服務的配置文件優化,這點須要長久深入的理解才行。默認的都是最標準的,可是能夠根據狀況捨棄一部分的東西,來增強另外一部分,達到適合業務。
好比nginx作反向代理,能夠優化內核參數,快速釋放連接,超時時間配置短一些,這樣能夠處理更高的併發。可是若是提供php等服務的話,就要配置長一些,來達到穩定的效果
12.要考慮總體結構狀況。好比nginx作負載均衡,可能抗壓能力很出色,可是後面的數據庫只有3臺,致使數據庫帶寬被打滿,也會形成訪問不了的問題
1.如何發佈,是手動仍是自動,若是機器多了,須要jenkins之類進行自動發佈
2.容災問題,代碼若是發佈失敗,須要迅速回滾,不影響問題,發佈的時候也不要全部節點一塊兒發佈,挨個節點發布
3.還要對老的代碼進行備份,防止將來可能忽然發生的問題,須要回滾
1.運維並非整天都是忙着去排錯,大部分時間都是空閒的,這時候就須要自制力去學習東西了
2.運維的價值=你節約的成本 x 你的意識 x 你的覺悟
運維並不能直接搞出價值,可是能夠優化,調整結構來省錢,不出事就是最好的價值。同時分析日誌能創造隱形的價值給公司。
3.優化現有的方式,公司在成長中,確定會有不少隱患,好比最初是用一個腳原本批量操做10-20臺機器,後面公司擴充有100臺機器,就要用ansible來批量操做了。這些都須要自動化,後面還要自動發佈,壓力大來自動擴容,報警cpu不夠自動調節緩解當前機器壓力等待
4.服務也不是照着百度吧配置文件放上便可,像負載均衡,可能調度算法填寫的不對,形成一臺壓力大,一臺壓力小。還可能服務佔用一個cpu壓力大,其餘都閒着,這些都是不行的。
5.文檔要多寫,好比資產文檔,那些機器的配置,還有密碼錶,服務鏈接文檔,部署文檔,維護文檔都要寫,文檔的做用一個是本身用,另外一個是等你離職或者新員工加入,他們能夠快速來維護。
6.部署一個新服務,必需要測試事後才上線,而測試不是安裝便可,須要找數據進行深度測試,模擬線上環境。
7.謹慎甚微,任何操做琢磨幾遍再打,不要隨意就打了,好比重啓線上nignx用reload,不然當前業務中斷了。
8.監控很重要,能夠查看流量,某些服務使用內存是否超標,沒有監控出了事都不知道,監控不只要監控服務的端口防止掛掉,還要他深度的使用,好比mysql的慢查詢,命中率,主從狀態等等。
9.體系,運維最好制定一些發佈流程,虛擬機申請流程,巡檢流程等等。巡檢也是很重要的,雲服務器也要定時看看是否磁盤滿了,是否要續費等等。不然哪天出問題,問題就大了。
10.對業務進行機器規劃,當壓力大時擴容,不大時逐步關閉
11.測試也很重要,一個服務從多方面進行測試,好比nginx從靜態頁面,動態頁面,提交數據,模擬多個在線用戶登陸訪問等等。
12.修改文件前必須備份,方便回滾,操做日誌最好有審計
(1)提早積累技術,可能明白了謀個東西,優化後讓服務器性能提升2個點
(2)提早預防問題,防範於未然
(3)想多些可能性,當前結構可能妥當,但一定不是最好的
運維的工做方向比較多,隨着業務規模的不斷髮展,越成熟的互聯網公司,運維崗位會劃分得越細。當前不少大型的互聯網公司,在初創時期只有系統運維,隨着業務規模、服務質量的要求,也逐漸進行了工做細分。通常狀況下運維團隊的工做分類(見圖1-1)和職責以下。
系統運維負責IDC、網絡、CDN和基礎服務的建設(LVS、NTP、DNS);負責資產管理,服務器選型、交付和維修。詳細的工做職責以下:
(1)IDC數據中心建設
收集業務需求,預估將來數據中心的發展規模,從骨幹網的分佈,數據中心建築,以及Internet接入、網絡攻擊防護能力、擴容能力、空間預留、外接專線能力、現場服務支撐能力等多個方面評估選型數據中心。負責數據中心的建設、現場維護工做。(2)網絡建設
設計及規劃生產網絡架構,這裏麪包括:數據中心網絡架構、傳輸網架構、CDN網絡架構等,以及網絡調優等平常運維工做。(3)LVS負載均衡和SNAT建設
LVS是整個站點架構中的流量入口,根據網絡規模和業務需求,構建負載均衡集羣;完成網絡與業務服務器的銜接,提供高性能、高可用的負載調度能力,以及統一的網絡層防攻擊能力;SNAT集中提供數據中心的公網訪問服務,經過集羣化部署,保證出網服務的高性能與高可用。(4)CDN規劃和建設
CDN工做劃分爲第三方和自建兩部分。創建第三方CDN的選型和調度控制;根據業務發展趨勢,規劃CDN新節點建設佈局;完善CDN業務及監控,保障CDN系統穩定、高效運行;分析業務加速頻道的文件特性和數量,制定最優的加速策略和資源匹配;負責用戶劫持等CDN平常故障排查工做。(5)服務器選型、交付和維護
負責服務器的測試選型,包含服務器整機、部件的基礎性測試和業務測試,下降整機功率,提高機架部署密度等。結合對公司業務的瞭解,推廣新硬件、新方案減小業務的服務器投入規模。負責服務器硬件故障的診判定位,服務器硬件監控、健康檢查工具的開發和維護。(6)OS、內核選型和OS相關維護工做
負責總體平臺的OS選型、定製和內核優化,以及Patch的更新和內部版本發佈;創建基礎的YUM包管理和分發中心,提供經常使用包版本庫;跟進平常各種OS相關故障;針對不一樣的業務類型,提供定向的優化支持。(7)資產管理
記錄和管理運維相關的基礎物理信息,包括數據中心、網絡、機櫃、服務器、ACL、IP等各類資源信息,制定有效的流程,確保信息的準確性;開放API接口,爲自動化運維提供數據支持。(8)基礎服務建設
業務對DNS、NTP、SYSLOG等基礎服務的依賴很是高,須要設計高可用架構避免單點,提供穩定的基礎服務。
應用運維負責線上服務的變動、服務狀態監控、服務容災和數據備份等工做,對服務進行例行排查、故障應急處理等工做。詳細的工做職責以下所述。
(1)設計評審
在產品研發階段,參與產品設計評審,從運維的角度提出評審意見,使服務知足運維准入的高可用要求。(2)服務管理
負責制定線上業務升級變動及回滾方案,並進行變動實施。掌握所負責的服務及服務間關聯關係、服務依賴的各類資源。可以發現服務上的缺陷,及時通報並推動解決。制定服務穩定性指標及准入標準,同時不斷完善和優化程序和系統的功能、效率,提升運行質量。完善監控內容,提升報警準確度。在線上服務出現故障時,第一時間響應,對已知線上故障能按流程進行通報並按預案執行,未知故障組織相關人員聯合排障。(3)資源管理
對各服務的服務器資產進行管理,梳理服務器資源情況、數據中心分佈狀況、網絡專線及帶寬狀況,可以合理使用服務器資源,根據不一樣服務的需求,分配不一樣配置的服務器,確保服務器資源的充分利用。(4)例行檢查
制定服務例行排查點,並不斷完善。根據制定的服務排查點,對服務進行按期檢查。對排查過程當中發現的問題,及時進行追查,排除可能存在的隱患。(5)預案管理
肯定服務所需的各項監控、系統指標的閾值或臨界點,以及出現該狀況後的處理預案。創建和更新服務預案文檔,並根據平常故障狀況不斷補充完善,提升預案完備性。可以制定和評審各種預案,週期性進行預案演練,確保預案的可執行性。(6)數據備份
制定數據備份策略,按規範進行數據備份工做。保證數據備份的可用性和完整性,按期開展數據恢復性測試。
數據庫運維負責數據存儲方案設計、數據庫表設計、索引設計和SQL優化,對數據庫進行變動、監控、備份、高可用設計等工做。詳細的工做職責以下所述。
(1)設計評審
在產品研發初始階段,參與設計方案評審,從DBA的角度提出數據存儲方案、庫表設計方案、SQL開發標準、索引設計方案等,使服務知足數據庫使用的高可用、高性能要求。(2)容量規劃
掌握所負責服務的數據庫的容量上限,清楚地瞭解當前瓶頸點,當服務還未到達容量上限時,及時進行優化、分拆或者擴容。(3)數據備份與災備
制定數據備份與災備策略,按期完成數據恢復性測試,保證數據備份的可用性和完整性。(4)數據庫監控
完善數據庫存活和性能監控,及時瞭解數據庫運行狀態及故障。(5)數據庫安全
建設數據庫帳號體系,嚴格控制帳號權限與開放範圍,下降誤操做和數據泄露的風險;增強離線備份數據的管理,下降數據泄露的風險。(6)數據庫高可用和性能優化
對數據庫單點風險和故障設計相應的切換方案,下降故障對數據庫服務的影響;不斷對數據庫總體性能進行優化,包括新存儲方案引進、硬件優化、文件系統優化、數據庫優化、SQL優化等,在保障成本不增長或者少許增長的狀況下,數據庫能夠支撐更多的業務請求。(7)自動化系統建設
設計開發數據庫自動化運維繫統,包括數據庫部署、自動擴容、分庫分表、權限管理、備份恢復、SQL審覈和上線、故障切換等功能。
運維研發負責通用的運維平臺設計和研發工做,如:資產管理、監控系統、運維平臺、數據權限管理系統等。提供各類API供運維或研發人員使用,封裝更高層的自動化運維繫統。詳細的工做職責以下所述。
(1)運維平臺
記錄和管理服務及其關聯關係,協助運維人員自動化、流程化地完成平常運維操做,包括機器管理、重啓、更名、初始化、域名管理、流量切換和故障預案實施等。(2)監控系統
負責監控系統的設計、開發工做,完成公司服務器和各類網絡設備的資源指標、線上業務運行指標的收集、告警、存儲、分析、展現和數據挖掘等工做,持續提升告警的及時性、準確性和智能性,促進公司服務器資源的合理化調配。(3)自動化部署系統
參與部署自動化系統的開發,負責自動化部署系統所須要的基礎數據和信息,負責權限管理、API開發、Web端開發。結合雲計算,研發和提供PaaS相關高可用平臺,進一步提升服務的部署速度和用戶體驗,提高資源利用率。
運維安全負責網絡、系統和業務等方面的安全加固工做,進行常規的安全掃描、滲透測試,進行安全工具和系統研發以及安全事件應急處理。詳細的工做職責以下所述。
(1)安全制度創建
根據公司內部的具體流程,制定切實可行,且行之有效的安全制度。(2)安全培訓
按期向員工提供具備針對性的安全培訓和考覈,在全公司內創建安全負責人制度。(3)風險評估
經過黑白盒測試和檢查機制,按期產生對物理網絡、服務器、業務應用、用戶數據等方面的整體風險評估結果。(4)安全建設
根據風險評估結果,加固最薄弱的環節,包括設計安全防線、部署安全設備、及時更新補丁、防護病毒、源代碼自動掃描和業務產品安全諮詢等。爲了下降可能泄露數據的價值,經過加密、匿名化、混淆數據,乃至按期刪除等技術手段和流程來達到目的。(5)安全合規
爲了知足例如支付牌照等合規性要求,安全團隊承擔着安全合規的對外接口人工做。(6)應急響應
創建安全報警系統,經過安全中心收集第三方發現的安全問題,組織各部門對已經發現的安全問題進行修復、影響面評估、過後安全緣由追查。
這是一個熱門運維問題,也是不少剛進入運維工做的同窗面臨的心境。
確實,【 運維 】多是分水嶺最明顯的職位之一:有的人畢業6年,月薪從3K漲到到50K;有的人工做4年,依然作着重啓服務器、檢查機房的機械工做,這都是知乎上能看到的真實事例。
今天,咱們就經過拉勾上,薪資 5K 到 100K 的運維招聘要求,來看看運維從搬磚到大神,都要學習些什麼。
「昨天又搬了65臺服務器……」
——本階段工做描述
一張圖歸納:
招聘崗位和要求
/* 崗位一: 崗位職責: 公司電腦多媒體以及網絡平常維護,以及桌面運維支持 任職資格: 一、能熟練更換PC硬件 二、熟悉辦公經常使用軟件以及郵箱 三、對網絡運維方面有必定了解,並可以熟練配置交換機防火牆以及路由器。 (4K—6K 百度文學) 崗位二: 崗位職責: 一、負責公司內、外網絡平臺的搭建、實施及網絡(含無線網絡技術、設備)的具體維護工做; 二、針對公司開展的網絡技術方案的定型與實施工做提出建議; 三、網絡及安全技術實施方案中安裝、調試、維護工做; 四、負責公司辦公網絡及IDC網絡平常維護工做; 五、負責集團網絡設備及廣域線路的統計工做。 任職資格: 一、2018屆畢業生,專科及以上學歷、計算機相關專業; 二、誠實守信,性格開朗,無不良歷史記錄; 三、善於學習,善於溝通,文檔功底好,敢於面對挑戰,勇於承擔工做壓力; 四、學生幹部或有相關網絡工程師認證(Cisco認證、Juniper認證、Huawei認證等)者優先考慮; 五、熟悉Linux操做系統和虛擬化技術的優先。 (JD) */
技術關鍵字
Linux、服務器、環境部署
運維工程師 —— 「Operations Engineer」,字面意思可理解爲管理系統、服務器的工程師。初級運維最多見的工做就是熟悉和維護服務器——因此檢查機房、搬服務器是90%的運維都會經歷的。
進階一點的,就要開始學習搭建服務器、搭建網絡、配置環境等工做了。絕大多數服務器都使用Linux系統,因此熟練使用Linux是硬性要求;服務器須要配置網絡,因此對路由協議、網絡協議等網絡原理也要掌握;產品開發完成後,還須要運維部署環境,安裝相應的軟件;安裝完成後就能夠上線嗎?不,有時你還須要部署一套測試環境……
在這個階段中,運維的大部分工做都是簡單和機械性的,對技術水平的要求不多,以致於薪資也較低。因此剛畢業的程序員每每有一個錯覺:運維崗不如開發崗。他們會感到「迷茫」,甚至「焦慮」
「感受本身就是個網管……」
「天天的工做就是維護、重啓服務器,看不到但願……」但其實,運維是一場真正的馬拉松。一樣是第一個階段,你只跑了1%,開發的同窗已經跑了20%,你的提高空間遠遠超過他們。
從刪庫到跑路
一張圖歸納
or
招聘崗位和要求
/* 【崗位職責】: 1,負責服務器的配置、維護、監控、調優,故障排除等; 2,運維自動化及運維腳本開發; 3,大用戶量下高性能服務器系統部署方案的制定及實施與監控; 4,及時響應並處理線上故障。 【任職要求】: 1,計算機相關專業大學本科以上學歷,具備紮實的計算機基礎理論知識; 2,熟悉mysql、mongodb、redis、mq、elk、nginx、tomcat的安裝部署及優化; 3,具備良好的故障排查能力,良好的邏輯分析能力及技術敏感度; 4,熟悉掌握使用shell、python腳本語言,能熟練進行腳本/工具開發,對自動化運維有較深刻的理解或者經驗者優先; 5,高度的責任感,較強的故障分析及排查能力,善於在工做中學習,能承受工做壓力。 (10-20K —— 樂視) */
技術關鍵字
故障排查、優化、Shell、Python、監控
隨着自身技術的積累,運維的薪資在突飛猛漲。這時,你已經能夠在公司或某項目裏獨當一面(du zi bei guo)。要達到這個階段的要求,你須要掌握這些技能:
1.排錯和調優
上線沒多久,服務就502了,還不被老闆罵死。儘管你有一肚子的委屈,我只是個運維,代碼不是我寫的,爲何要我來背這鍋?!委屈歸委屈,服務訪問不了了,就是運維的事。儘快定位問題,解決問題纔是王道。怎麼來定位問題呢?最簡單直接的辦法就是看日誌,看系統日誌,看軟件相關的日誌,結合故障現象和經驗,快速的進行定位和恢復。而後就是總結經驗,吸收教訓,寫事故報告。OK,如今你知道,須要對系統環境須要進行必定的調優操做,再也不作背鍋俠。相關技術: top, vmstat, iftop, awk, sed, sar, iostat, strace, …
2.備份
以前的Gitlab刪庫事件的教訓猶在眼前,丟失了幾小時的數據,雖然大部分的備份策略都失效了,但仍是挽救了幾小時前的一個備份,纔沒有形成更大的數據丟失和公司損失。咱們須要對設備進行備份冗餘,須要對數據庫進行備份及離線備份,須要對網站靜態進行備份冗餘,須要對機房進行備用,能作到雙活,那是更好的啦。相關技術: rsync, crontab, lvm快照, mysqldump, extrabackup, 徹底備份, 差別備份, 增量備份, 離線異地備份, …
3.高可用集羣
沒有永垂不朽,咱們不能保證硬件24小時在線,但須要保障服務24小時在線。出現故障後,若是作好高可用和冗餘,故障自動切換,移除故障節點,那樣也就保障了服務的實時在線。在老闆和用戶不知情的狀況下,悄麼的把故障處理好的,KPI算是保住了,獎金也許就會有的吧。
相關技術: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各類其餘分佈式集羣方案, …
4.監控和警報
時刻擔憂網站掛掉,一年365天、每週7天、天天24小時,時刻保持精神高度緊張,就算你是神仙都會撐不住的。咱們須要一個機器來監督其餘的機器工做,咱們須要解放咱們本身。當有故障發生的時候,經過短信、微信、釘釘、郵件等等通知對應的運維工程師來處理,甚至是自動切換或摘除故障節點,而後咱們離線對故障節點進行問題排查。相關技術:Zabbix, Nagios, Cacti, Prometheus, open-falcon, Ganglia, sar, …
Linux運維真的隨心所欲
一張圖歸納
招聘崗位和要求
/* 職位一 【崗位職責】: 一、制定和優化運維解決方案,包括但不限於柔性容災、智能調度、彈性擴容與防攻擊; 二、推進及開發高效的自動化運維、管理工具,提高運維工做效率; 三、探索、研究新的運維技術方向。 【崗位要求】: 一、本科及以上學歷,3年以上的Linux系統使用和管理經驗; 二、熟悉 Linux 操做系統原理、TCP/IP 以及經常使用RPC協議; 三、熟悉腳本語言Bash/Python等腳本語言的一種並有相關開發經驗; 四、熟悉Docker、Kubernetes等開源軟件; 五、熟悉常見應用配置及優化,如Nginx/Haproxy/MySQL/DNS/Redis/MongoDB等; 六、熟悉經常使用的監控系統,如 Zabbix、Nagios 和 Ganglia 等; 七、熟悉systemtap、perf、oprofile 等分析調試工具;很強的Troubleshooting能力、且可以推進業務問題改善和解決; 八、具備良好的的溝通、執行能力和強烈的責任心; 九、耐心、細緻、學習能力強,較強的工做計劃; 十、在開源社羣活躍並有積極貢獻者優先, ( 22-40K —— 陌陌 ) 職位二 【 工做職責 】 負責京東內部信息安全平臺的基礎運維工做,處理值班問題,確保系統服務穩定性; 負責運維自動化/標準化方案設計,自動化工具及平臺研發,提高運維效率; 負責生產、測試、灰度多套環境的部署和維護,配合研發、測試團隊進行應用部署; 制定信息安全集羣監控和報警方案,處理報警問題; 定位與分析運維問題,給出解決方案。 【 職位要求 】 計算機相關專業,本科及以上學歷,至少2年以上的大規模系統運維經驗,2年以上運維開發經驗,有deveops開發經驗或有中大型互聯網公司運維自動化經驗者優先; 具有openstack或docker集羣運維經驗; 掌握shell/python/perl/php其中一種腳本語言,有Python實際項目經驗,熟練掌握Django、Tornado等任一Web開發框架者優先; 掌握互聯網經常使用的中間件維護、管理,例如redis、mongodb、kafka、memcached、dubbo等; 掌握tomcat、nginx等常見應用的搭建、配置、優化; 掌握zabbix、nagios、elk等系統的搭建、配置、優化; 掌握一種大規模自動化運維工具(saltstack、ansible、puppet),有二次開發經驗優先; 熟悉linux/uinx,windows操做系統基礎原理及經常使用操做; 熟悉常見運維配置及優化,如Svn/git/Ansible/Nginx/Tomcat/salt等; 熟悉TCP/IP、HTTP等協議,有良好的網絡、數據傳輸、安全、計算機體系結構方面的知識; 認同DevOps文化,重視自動化方式處理各類問題; 具有良好的項目規劃、推動能力; 具備良好的溝通協調能力、較強的團隊合做精神、優秀的執行能力; 有很強的分析和解決問題的能力。 ( 30 - 50K 京東 ) */
技術關鍵詞
自動化、DevOps、雲服務、Docker、kubernetes、安全……
deveops、openstack、docker、集羣運維、shell/python/perl/php、Django、Tornado、redis、mongodb、kafka、memcached、dubbo、omcat、nginx、zabbix、nagios、elk、saltstack、ansible、puppet、linux/uinx系統基礎原理、Svn/git/Ansible/Nginx/Tomcat/salt、TCP/IP、HTTP……
看到這些技術名詞,相信你必定會明白,高端運維爲什麼配得上這麼高的薪資。
雖然以上這些技術並非所有須要掌握的,同一類型掌握同樣便可,但仍能夠看出,這個階段的運維已是集大成者 —— 在中型公司能夠勝任CTO的位置,在大型公司能夠擔任項目的技術負責人。想達到這個階段,你須要掌握這些技能:
1.安全和審計
不安全的網絡環境和服務器配置,無異於在網絡世界裸奔,任何人均可以窺探你的隱私。你的應用是否作了SQL防注入?你的防火牆是否開啓?是否還在用root+密碼的方式登陸服務器?網站開啓了https麼?是否對系統操做進行審計?相關技術: iptables, firewalld, waf, auditd, 各服務的正確配置, …
2.DevOps 與自動化
偷懶是社會進步的第一動力。聰明的咱們怎麼會讓本身一直在重複枯燥的事情上浪費時間,裝系統、部署環境、發版本、批量操做,把這一切交給程序去實現吧,咱們須要的是享受生活。相關技術: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, …
3.虛擬化和雲計算
雲計算革命的發起人是賣書的亞馬遜,這傢伙但願賣一切能夠賣的東西,包括本身閒置的服務器資源。如今國內的阿里雲和騰訊雲也發展得如日中天,他們幾乎提供了運維所須要的一切,甚至可讓一個公司再也不須要運維的崗位。你須要服務器,只須要幾秒鐘,就能夠建立一臺。你須要數據庫集羣,只須要鼠標點擊幾下,就能夠開通。相關技術:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, …
一張圖歸納本階段:
招聘崗位和要求
/* 80K—100K 【崗位職責】 1.做爲公有云SRE軟件技術專家,負責自動化運維平臺的系統分析和架構設計,指導研發團隊實現設計,規劃將來平臺技術架構方向; 2.負責全局性和前瞻性的架構設計,以及關鍵技術細節的實現,解決業務發展遇到的架構問題,持續提高系統平臺穩定性; 3.負責持續關注業務技術發展和最佳實踐,並結合華爲雲運維產品業務特色推動新技術及實現方案的落地; 【崗位要求】 1.本科及以上學歷,6年以上大型業務應用系統的架構設計和落地的實際能力,熟悉分佈式、緩存、消息等機制,能對分佈式經常使用技術進行合理應用,解決實際架構問題; 2.海量數據處理和架構能力及經驗,熟悉SOA並具備系統的架構設計經驗; 3.精通Java/Python/Go/C/C++其中至少1種編程語言; 4.精通操做系統,數據庫,IO、多線程編程原理、集合等基礎框架,對JVM原理有深刻的瞭解; 5.精通分佈式事務處理框架原理和實現,精通多線程及高性能的應用的設計,編碼及性能調優經驗; */
技術關鍵詞
???
這個級別的大佬要麼是有極強的管理能力,要麼是對某技術有底層的深刻研究,已沒法概括具體的技術要求,您:
愛學什麼學什麼吧……
/* 總之…… 運維是個須要不斷學習的職位 100K 還遠遠不是天花板 (銀行、BAT、華爲了解一下……) 若是你肯定了要努力的方向,那就學起來吧! */
新手在學習的時候,一般遇到的問題是沒有一整套學習計劃,不知道具體學哪些纔會對工做有幫助,遇到問題也沒人解答,而這2點也是培訓機構的賣點。
這種狀況,最好的方法是加個技術羣,看看誰在裏面老回答問題,能夠加好友具體問問,而後請他喝杯咖啡。
資料方面不要看不少,在豆瓣中搜索相關書籍,評分高都看一本就好了,畢竟技術都是積累的,沒有一會兒就學圓滿的。
有下面的知識,運維才能邁出第一步,否則就是比較殘缺的,沒法造成大局觀。例如某些用戶訪問網站有問題,報錯505,你只會linux方面的,對網絡不清楚,那若是問題出在運營商身上,或者服務器之間的網絡通訊上,就會抓瞎。
- 計算機基礎知識(瞭解計算機哪幾個部分組成,如何裝系統,上下架等等)
- 網絡基礎知識(不用太深刻,知道協議有哪些,什麼意思,路由器交換機工做原理)
- 安全基礎知識(知道什麼叫ddos,知道基本防護方法)
- 測試基礎知識(知道性能測試和web測試用什麼工具,否則你優化完怎麼證實它性能提升了?)
- 開發基礎知識(基本的構建,打包知道什麼意思,異步非阻塞之類的)
- linux基礎知識(這部分就是對linux的瞭解了,linux啓動順序,命令等等)
不過大公司會專門作某一部分,例如應用運維不須要關注測試和安全等方面,但建議都學學,舉一反三有好處。
有這些基礎,進到公司就能夠去完成基礎的建設工做了。好比會安排你搭建服務,整理資產報表,清理一些日誌,這些基本工做能夠幫助你瞭解公司當前有哪些服務,各類服務之間是如何運做的,以後再慢慢參與到業務中,薪資一線城市能夠達到6-10k左右。
當進入公司一年以上後,就是衝刺階段,這個階段會學習到大量知識,由於剛工做,會明白不少書本上和模擬遇不到的東西,天天都會有大量進步。
會知道一個項目從建立到上線的過程,會發現公司有大量東西須要改善,例如部署服務還在使用手工部署,當一個新項目上線,須要花不少時間部署,你就能夠嘗試用腳原本自動部署。
公司須要監控,你能夠參與選擇軟件,用zabbix仍是cacti,或者不是你選擇,你也能夠對原有監控項進行優化和完善。這些都是實際應用的,你會明白比原先學習的更多東西。
這塊是公司有需求或者用到什麼,就去學習什麼。不要看什麼運維必須掌握的命令和工具大全之類的文章,你都用不到學了有啥用。若你業務都掌握明白了,有空餘時間,能夠搞搞docker之類熱門應用,在此以前,仍是把精力花在手頭事情上。
同時要創建好的學習方法,否則在熟悉工做後,很容易懈怠,而後在羣裏划水,學習激情會減退。個人方法是帶着目的學習,而後寫文章讓你們看,得到激勵後就有動力繼續學習了。
這段衝刺期會維持3-5年,會讓人感受天天都有進步,明白的東西愈來愈多。算是中級運維了,薪資一線城市能夠達到10-20k左右。
再往前就會分出不少個岔道,開發、安全、DBA、測試、應用運維、基礎運維等等。
時間有限,須要從中挑選適合的。只有選定方向才能不迷路,也才能更快的到達目的地。到了這時,就已經邁步向高級運維了。須要選擇一個方向去努力,否則運維的東西太雜,很難面面俱到。
如何要作運維開發,就須要去學習python,html,各類框架,也能夠學go。
要作DBA,就要專門研究數據庫,搞清楚數據庫的原理結構,每一個詳細點。
每一門日後都有大量的東西要學習的,專精才能錢多,而且有成長。
不過當前都在往運維開發方向靠攏,將來的運維都要會一些開發才行。之前是shell,當今是python,須要的技術愈來愈深刻,緊跟潮流纔不會被落下。
高級運維,通常5-10年經驗,薪資15-35k左右
技術是沒有終點的,固然能夠有你本身的終點。當工做10年,技術已經很厲害了,就須要靠攏一些別的東西了。
能夠根據你掌握的技術,去搞博客,出售一些視頻,寫付費文章或者付費問答。甚至能夠看準機會後,去作產品的。像寶塔面板,cdn,都是一大批運維或者開發看準機會後從技術轉型成創業者。
購買基金彩票和增值物品也能夠,區塊鏈就算了,不獲得國家認可和保護的東西,終究沒有大的發展的。有些股票或者基金仍是很妥當,很不錯的,雖然進步慢,可是很穩定不會虧。
就像《教父》小說中說的,不要把雞蛋放在一個籠子裏,能夠愛好技術,但也要搞副業,來應對來爲可能形成的衝擊。