-
1 # 梅落南山
-
2 # 爬牆去看海
首先說一下“運維工程師”的概念:說到運維工程師,一般人都會認為是修電腦的,其實不然,並非只是會修電腦這樣簡單的技能就可行的。說白了運維就是“執行維護”,那麼也就可以理解運維工程師的職能就是保障業務的正常執行並在出現問題時及時維護。
運維工程師的日常分為兩種情況:
第一種,運維工程師需要他們完成一個專案產品的時候,有的時候需要加班好幾個星期。
他們在產品專案完成的不同階段會發揮不同的作用。所以其實他們的工作內容很多:
產品釋出前:負責參與並稽核架構設計的合理性和可運維性,以確保在產品釋出之後能高效穩定的執行。
產品釋出階段:負責用自動化的技術或者平臺確保產品可以高效的釋出上線,之後可以快速穩定迭代。
產品執行維護階段:負責保障產品7*24H穩定執行,在此期間對出現的各種問題可以快速定位並解決;在日常工作中不斷最佳化系統架構和部署的合理性,以提升系統服務的穩定性。
小結:
運維工程師是一個需要二十四小時線上的職業,因為你不知道什麼時候系統就需要你去維護。所以就算你休假在家,需要運維工程師的時候也需要出手。
運維工程師會有著很多業務需求,如果運維工程師能夠滿足業務需求,或者主動挖掘業務的痛點和改進方法,就能為業務實現更多的價值。業務由於故障引起的中斷一定會造成損失,所以能在發病之前就將它修理好,這才是運維工程師的核心價值。在滿足業務需求時,優先面對業務快速發展非常重要的需求,例如穩定性,部署和變更效率,容量管理。
第二種,沒有專案的日常,運維工程師們都在幹嘛,是不是無所事事的玩手機?
當然不是了,如果你這麼做的話,會被炒魷魚的。那運維工程師日常工作是幹嘛呢?
1,每日定時對機房內的網路伺服器、資料庫伺服器、Internet伺服器進行日常巡視,檢查是否正常工作,公司的網站是否能正常訪問;
2,每日巡查計算機系統各個終端電腦、印表機、影印機等裝置是否工作正常,是否有不正確的操作使用,是否有帶故障工作的裝置;
3,每天夜間在大家都下班之後對財務軟體進行自動實時備份,每週做一次物理資料備份,並在備份伺服器中進行邏輯備份的驗證工作;
4,每週至少對檔案伺服器做一次物理資料備份;還有就是處理各種有關網路的突發問題。
小結:
當然每個公司的運維工程師從事的工作是大同小異的,有的公司可能還會給運維工程師安排其他的工作。
所以,正在學習從事和想要成為運維工程師的你們,對於自己想要從事的崗位工作內容有沒有多一點了解?希望以後別人問起來運維工程師是幹嘛的,千萬別再讓別人覺得你就是個修電腦的了。
-
3 # 做銷售的小哥
運維工程師(Operations),負責維護並確保整個服務的高可用性,同時不斷最佳化系統架構提升部署效率、最佳化資源利用率提高整體的ROI。
運維工程師面對的最大挑戰是大規模叢集的管理問題,如何管理好幾十萬臺伺服器上的服務,同時保障服務的高可用性,是運維工程師面臨的最大挑戰。
職責
無論做什麼運維,運維工程師最基本的職責都是負責服務的穩定性,確保服務可以7*24H不間斷地為使用者提供服務。在此之上運維工程師的主要工作職責如下:
質量:保障並不斷提升服務的可用性,確保使用者資料安全,提升使用者體驗。
效率:用自動化的工具/平臺提升軟體在研發生命週期中的工程效率。
成本:透過技術手段最佳化服務架構、效能調優;透過資源最佳化組合降低成本、提升ROI。
從產品的生命週期來看:
1. 產品釋出前:負責參與並稽核架構設計的合理性和可運維性,以確保在產品釋出之後能高效穩定的執行。
2. 產品釋出階段:負責用自動化的技術或者平臺確保產品可以高效的釋出上線,之後可以快速穩定迭代。
3. 產品執行維護階段:負責保障產品7*24H穩定執行,在此期間對出現的各種問題可以快速定位並解決;在日常工作中不斷最佳化系統架構和部署的合理性,以提升系統服務的穩定性。
職業發展
運維人員的要求特別嚴苛,因為運維人員針對不同的問題,需要不斷的補充擴大自己的知識和研究範疇。
在初級階段,優秀運維人員會體現出格外出眾的主動性和責任心,面對陌生的業務會主動學習和拓展自己對業務對認識和相應的知識範疇,以能夠足夠的勝任業務的獨立維護。
在逐步的發展階段中,注重總結反省的工程師會逐漸成長為高階運維人員,通常他們會有比較體系化的服務運維理解。也有一部分工程師由於出色的專案管理規劃能力,逐漸成為專案經理。
再進一步的發展,高階的運維人員對於產品的理解將非常的透徹,因而在這種情況下,高階運維人員甚至可以成為產品的產品經理、產品研發的諮詢顧問,在產品功能的設計與開發中起到至關重要的角色。
-
4 # 中富榮匯天寶齋
運維工程師到底是做什麼呢?我給大家分析一下:
1、保障業務長期穩定執行(如網站伺服器、遊戲伺服器等)。
2、保障資料安全可靠(如使用者名稱密碼、遊戲資料、部落格文章、交易資料等)。
由這兩句話推演運維工程師要做些什麼?
一、保障業務長期穩定執行
出一點點差錯,使用者就要投訴了。
1、業務跑在什麼上面?
網站伺服器一般是apache,nginx,tomcat等。但是真正跑通流程還需要Mysql資料庫來儲存使用者密碼及其它。很多程式都要php的解析,所以LNMP、LAMP(即nginx、apache、mysql、php)環境部署是必須掌握的技能。
2、業務出了問題怎麼及時知道?
這就需要監控軟體來郵件或簡訊來通知你,常用的有zabbix,nagios等。報警發郵件,也得一個郵件程式呀,sendmail或postfix。
3、在家裡收到報警,但伺服器是內網IP,怎麼也得解決問題吧?
在公司搭建openvpn或pptp或openswan,在家裡透過VPN撥入內網,24小時解決問題…唉,半夜爬起來解決問題也沒工資。
二、保障資料安全可靠
出一點點差錯,領導要找你喝茶了。
1、有時需要手動改資料庫內容?
所以要會基本的Mysql資料庫增刪查改命令。
2、萬一資料庫伺服器硬體壞了怎麼辦?
需要有個備庫以備不時之需,所以需要Mysql主從複製。
3、資料庫要還原怎麼辦?
所以需要在crond中定期全備Mysql資料,以便還原使用。如果要還原到指定時間點,還要學會Mysql增量備份與恢復。
4、如果是使用者上傳的圖片或檔案伺服器壞了怎麼辦?
定時備份可能還不夠,需要使用rsync加inotify來實時備份。以便任一時刻主伺服器壞掉,也能保障所有圖片有備份可以用來恢復。
5、小心駭客,要增加伺服器安全性?
ssh輕易不能讓外人訪問,那麼就設定只允許公司的IP或跳板機IP訪問,這些都透過iptables來控制。
三、大效能
1、越來越多的使用者來訪問我們的網站,一臺web伺服器抗不住了怎麼辦?
那就需要多臺web伺服器來負擔,但多臺伺服器之間怎麼進行負載均衡呢,這就需要用到nginx反向代理或LVS+keepalived或haproxy+heartbeat了。
資料庫壓力分為讀和寫,如果寫抗不住,需要進行分表分庫到多個伺服器上。如果是讀壓力不夠了,可以使用mysql-proxy讀寫分離,
來分擔讀的壓力。更簡單方便的方法,把資料庫裡的內容放到記憶體上,這就用上memcache或redis了。
3、N多使用者上傳下載檔案,磁碟抗不住了怎麼辦?
把多塊磁碟做成raid,或者使用分散式儲存檔案系統如MFS,GlusterFS來提高磁碟的讀寫能力。
4、網站上好多圖片,總有使用者反應網站載入太慢,怎麼辦?
這時可以把網站上的圖片透過squid或varnish快取到網站前端,儘可能的增加訪問速度,當然,最好是購買商業的CDN加速。
5、運營商是個大難題,他們之間的頻寬好像很小,聯通IP訪問我電信網站怎麼就這麼慢呢?
這時可以使用bind自建一個DNS伺服器,把網站的DNS記錄指向自建DNS伺服器上,配置好解析規則,以後聯通IP解析到聯通網站上,
電信IP解析到電信網站上,體驗就會好很多啦。
四、自動化
終極目標:跑宕機器,閒死人。
1、公司新買100臺伺服器,公司竟然就1個移動光碟機,這裝系統得到什麼時候?
使用kickstart或cobbler來網路遠端自動安裝系統吧。
2、每次裝完機要最佳化很多內容,什麼檔案描述符、埠、軟體安裝啊,手動操作不累死去?
趕緊學會shell,將解放非常多的工作量。
3、系統裝完後登陸要輸入密碼,這麼多臺啊?
使用expect吧,自動讀取提示來輸入密碼,並執行命令。
4、要批次把新程式碼釋出到線上伺服器,怎麼辦?
使用saltstack或puppet或ansible吧,絕對爽歪歪。
五、其他
1、搭整套測試環境需要5臺伺服器,但公司窮的只有一臺空閒伺服器?
學會xen或kvm或docker吧,虛擬出多臺伺服器,就能解決資源問題了。特別是docker,強烈推薦,以後某個研發人員讓你部署一套新環境,分分鐘幫他解決。
2、研發人員的程式碼控制,許可權控制,總要運維人員管呀?
svn或git,這個是肯定要有的。
現在我們在回過頭來思考,運維工程師平時幹些啥呢?
1、 隨時解決報警故障。
2、 業務程式更新。
3、 編寫一些指令碼,監控或完成其他可自動完成功能。
4、 運維架構完善,部署一些用起來更方便更可靠或效能更好的開源工具以及制定運維流程規範。
5、 打雜,如調交換機,裝系統,部署新環境等。
-
5 # 鐸玲
加班多,基本24小時待命的工作
產品使用者量越大,對於崗位的技能要求越高,從基礎的部署,到架構的設計等等
陪著研發熬夜加班上線的是你
放假別人玩耍隨時準備待命的是你
也是每個產品必不可少的支柱
-
6 # 在廣東打工的仔
運維工程師(Operations),負責維護並確保整個服務的高可用性,同時不斷最佳化系統架構提升部署效率、最佳化資源利用率提高整體的ROI. 運維工程師面對的最大挑戰是大規模叢集的管理問題,如何管理好幾十萬臺伺服器上的服務,同時保障服務的高可用性,是運維工程師面臨的最大挑戰。
中文名
運維工程師
外文名
Operations
技能
伺服器、作業系統、資料庫
應用
網路、伺服器
解釋
負責維護並確保整個服務的高可用性,同時不斷最佳化系統架構提升部署效率、最佳化資源利用率提高整體的ROI
-
7 # 豪傑天地
運維工程師其實它分為很多種,以下我分析幾種希望幫助到你。
一、通訊類,負責工作是維護所在地區的各種通訊商的裝置正常執行,只要出現裝置故障或者通訊故障就要去處理故障,還有就是網路最佳化。
二、電力類,主要是國家電網公司的電力維護故障搶修。
三、環境工程類,負責站的的裝置正常執行與校準日常巡檢。
其實運維工程師的工作就是日常維護、故障搶修、日常巡檢,但主要是看你從事那一個行業的,工作其實都差不多。
-
8 # 萬江明月
從字面理解,運維工程師就是做執行維護保障的。但是分類比較多,做的工作也就不一樣。有軟體運維工程師,負責對應用系統進行日常維護;有硬體運維工程師,負責對網路、主機、儲存等硬體裝置進行日常巡檢和維護;有資料庫運維工程師,負責對資料庫進行巡檢和維護;有桌面運維工程師,負責對辦公用膝上型電腦或者桌上型電腦日常使用進行維護保障。
-
9 # 實現價值
職責
無論做什麼運維,運維工程師最基本的職責都是負責服務的穩定性,確保服務可以7*24H不間斷地為使用者提供服務。在此之上運維工程師的主要工作職責如下:
質量:保障並不斷提升服務的可用性,確保使用者資料安全,提升使用者體驗。
效率:用自動化的工具/平臺提升軟體在研發生命週期中的工程效率。
成本:透過技術手段最佳化服務架構、效能調優;透過資源最佳化組合降低成本、提升ROI。
從產品的生命週期來看:
1. 產品釋出前:負責參與並稽核架構設計的合理性和可運維性,以確保在產品釋出之後能高效穩定的執行。
2. 產品釋出階段:負責用自動化的技術或者平臺確保產品可以高效的釋出上線,之後可以快速穩定迭代。
3. 產品執行維護階段:負責保障產品7*24H穩定執行,在此期間對出現的各種問題可以快速定位並解決;在日常工作中不斷最佳化系統架構和部署的合理性,以提升系統服務的穩定性。
工作內容
在軟體產品的整個生命週期中運維工程師都需要適時地參與併發揮不同的作用,因此運維工程師的工作內容和方向非常多:
事件管理:目標是在服務出現異常時儘可能快速的恢復服務,從而保障服務的可用性;同時深入分析故障產生的原因,推動並修復服務存在的問題,同時設計並開發相關的預案以確保服務出現故障時可以高效的止損。在這方面主要工作內容有:
問題發現:設計並開發高效的監控平臺和告警平臺,使用機器學習、大資料分析等方法對系統中的大量監控資料進行彙總分析,以及在系統出現異常的時候可以快速的發現問題和判斷故障的影響。
問題處理:設計並開發高效的問題處理平臺和工具,在系統出現異常的時候可以快速/自動決策並觸發相關止損預案,快速恢復服務。
問題跟蹤:透過分析問題發生時系統的各種表現(日誌、變更、監控)確定問題發生的根本原因,制定並開發預案工具。
變更管理:以可控的方式,儘可能高效的完成產品功能的迭代的變更工作。在這方面主要工作內容有:
配置管理:透過配置管理平臺(自研、開源)管理服務涉及到的多個模組、多個版本的關係以及配置的準確性。
釋出管理:透過構建自動化的平臺確保每一次版本變更可以安全可控地釋出到生產環境。
容量管理:在服務執行維護階段,為了確保服務架構部署的合理性同時掌握服務整體的冗餘,需要不斷評估系統的承載能力,並不斷最佳化之。在這方面主要工作內容有:
容量評估:透過技術手段模擬實際的使用者請求,測試整個系統所能承擔的最大吞吐;透過建立容量評估模型分析壓力測試過程中的資料以評估整個服務的容量。
容量最佳化:基於容量評估資料,判斷系統的瓶頸並提供容量最佳化的解決方案。比如透過調整系統引數、最佳化服務部署架構等方法來高效的提升系統容量。
架構最佳化:為了支援產品的不斷迭代,需要不斷的進行架構最佳化調整。以確保整個產品能夠在功能不斷豐富和複雜的條件下,同時保持高可用性。
能力要求
基礎技能:
精通shell/Python/Perl等1至2種程式語言
熟練掌握常用資料結構和演算法,並能靈活運用
熟悉網路基礎知識
深入理解Linux作業系統
-
10 # 省者無疆
運維是一個內容比較基礎,但也可能比較雜亂的工作。比如可能會涉及到測試、售前、售後等。但是做得好能做資料庫運維和管理也是很不錯的。
回覆列表
運維本質上是對網路、伺服器、服務的生命週期各個階段的運營與維護,在成本、穩定性、效率上達成一致可接受的狀態。因此運維通常屬於技術部門。
運維工程師是做什麼的?很多人好奇,總體來說只有兩個任務:保障業務長期穩定執行(如網站伺服器、遊戲伺服器等)、保障資料安全可靠(如使用者名稱密碼、遊戲資料、部落格文章、交易資料等)。由此我們也可以推斷出運維工程師要學什麼,今天我來給大家介紹一下。
無論做什麼運維,運維工程師最基本的職責都是負責服務的穩定性,因此運維工程師需要掌握的技能也很多,包括基礎技能和加分技能。
基礎技能:精通shell/Python/Perl等1至2種程式語言;掌握常用資料結構和演算法,並能靈活運用;熟悉網路基礎知識;理解Linux作業系統。
加分技能:熟悉開源的監控平臺工具,比如Ganglia、Nagios等;掌握Shell指令碼熟悉Awk、Sed等基礎工具;熟悉分散式計算或者儲存系統,比如Hadoop/Hbase/Storm等;熟悉TCP/IP、HTTP等網路協議,精通socket網路程式設計。
在軟體產品的整個生命週期中運維工程師都需要適時地參與併發揮不同的作用,針對不同的問題,運維人員也需要不斷的補充擴大自己的知識和研究範疇,因此並不能簡單的以為掌握基礎知識就可以勝任運維工程師職位。
運維工作
運維人員對公司網際網路業務所依賴的基礎設施、基礎服務、線上業務進行穩定性加強,進行日常巡檢發現服務可能存在的隱患,對整體架構進行最佳化以遮蔽常見的執行故障,多資料中接入提高業務的容災能力。
不難看出運維的職責其實是覆蓋了產品從設計到釋出、執行維護、變更升級及至下線的生命週期。
所以說,我們不難看出運維人員對公司網際網路業務所依賴的基礎設施、基礎服務、線上業務進行穩定性加強,進行日常巡檢發現服務可能存在的隱患,對整體架構進行最佳化以遮蔽常見的執行故障,多資料中接入提高業務的容災能力。
1、每日工作:
(1)工程方面:
裝置的上下架、裝置的利舊和改造。
軟體部署,除錯,聯調,測試。
配合做驗收、上線。
等
(2)維護方面:
上線程式碼
收集伺服器資訊,對裝置進行巡檢。
給各個部門搭建測試環境,配置部門測試。
寫一些shell或者python指令碼,進行自動化運維的調整。
等
2、至於忙不忙的話,每天和每天也不一樣,如果趕上上線程式碼的話,可能會通宵也說不定,如果業務除了問題,很承擔很大壓力,並且運維的活,是非常急的。所以必須要有很好的心理素質。平常做做基礎的檢查工作,還是比較輕鬆吧,不過對待生產裝置還是要非常小心。
3、轉開發的話,如果你是學的計算機的話,轉是比較好轉的,自學還是比較容易的。如果你沒有任何基礎的話,一定要做開發的話,建議去培訓機構,做做培訓,比較快,純自學很吃力,並且沒有系統的方法。找工作也是比較困難。
當然如果做運維開發的話,可以慢慢學習shell或者python這些語言,然後再慢慢的轉,反正萬事都有一個過程,急不得。
本人就再轉運維開發,也做一些運維開發的事情,每天寫寫python,慢慢提高自己的程式設計能力。