時間飛逝,轉眼之間做運維開發工作已經過了2年多,對這項工作有些體會,這裏總結下來,希望可以幫助到對運維感興趣的同學。
運維的職責
簡單介紹一下運維工程師職責:主要是保證網站可用性,並完成相關工具研發。
參考百科:http://baike.baidu.com/view/8535239.htm?fr=aladdin
項目過程中的技術點
下面介紹一下一個運維工程師(OP or SRE)在一個互聯網項目的價值和技術點。
一.立項和詳細設計階段
項目開始,產品經理(Product Manager)獲得調研結果,完成產品的詳細需求設計(MRD)。研發工程師(RD)和產品經理(PM)溝通MRD的合理性和技術實現難度,這時,研發工程師(RD)會完成對項目技術實現的詳細設計,產品經理(PM),運維工程師(OP)與研發(RD)一起共同討論這份實現詳設是否滿足各自要求,這裏運維(OP)就需要考慮如下問題:
1.技術選型,這裏需要注意的幾個要點和原則:
1)使用實現技術安全可靠:如已經廣泛使用的,有成功案例的,或者已經經過我們測試多次測試調研的有數據支持的新技術等的
2)如滿足需求,使用技術儘量收斂,減輕運維複製度:如我們的web項目都使用java tomcat,進一步我們使用jdk1.6/tomcat6.0.41/mysql,框架使用spring struts mybatis等等
我們以一個常見的web項目爲例。
開發語言 | java | php | c++ | python | 其他 |
框架 | pring,struts,mybatis,hibernate | Yii,zend | STL | flask,webpy,django | |
常用的關聯 | rmi,mcpack,HTTP | socket,HTTP | socket | socket,HTTP | |
通信框架 | protobuf,thrift | ||||
2.項目多模塊之間做到高內聚低耦合,使用較輕的關聯解耦方式。
3.預計容量,設計容量,方案瓶頸,冗餘:如設計實現的容量是否有充足冗餘
4.需要的資源:如機器數,虛擬IP,域名等
二、項目開發測試階段
這個階段OP需要做的事:關注項目上線時間點,提前準備好需求資源,及時協助RD,QA處理項目開發測試階段問題,對於項目中的重要變化反饋意見。
三、項目上線和維護階段
當項目開發測試完成後,項目團體集體合作完成上線和檢查。由於項目剛上線迭代,修復bug較多可以先考慮RD自主運維,然後等項目穩定後,OP將完成從參與到主導運維過程,這期間OP需要完成工作如下:
1.變更,有一套可靠的變更系統完成日常的上線,檢查,回滾等
2.監控,對服務做盡量做全方面的數據收集,異常報警和問題定位。
3.預案、備份,對於特殊的,極端的服務異常採取必要可靠的措施。
以上就是一個運維工程基本需求的素質,對於近幾年比較熱門的devOps將另外編寫,敬請期待,謝謝