devops這個詞表明,開發和運維需要通力合作。然而在現實生活中,雙方都會有不同的工作職責,同時看待問題的視角也不盡相同。大多數情況下,都是運維一方得到不公正待遇。為了讓開發人員能更好地理解運維同學,而且能幫忙解決一些問題,本文分享了一些經驗和看法。
1.不斷湧現出新開發技術
一般而言,開發人員通過產品功能來衡量工作成果,而系統管理員和運維團隊則由穩定性指標來進行考量,後者往往反對這些新技術。開發同學使用這些新技術可以幫他們更快搞定某項功能開發,也許是一種新程式語言scala,它具有良好的伸縮性,同時也能更好地支援各種元件;或者他們更喜歡使用流行的資料庫,比如mongodb,這種非關係型資料庫能幫助開發人員更快、更靈活地更新**。
雖然這些新技術可能會給開發同學帶來諸多好處。但不可否認,這些新技術同時也可能會給運維同學帶來很多困難。因為乙個標準公司產品可能由數十個,數百個,甚至數千個技術棧構成,它們可能基於各種不同技術來進行開發。然而對於開發者來說,他們只需要專注於某一項技術(或者少數幾個)。而大多數情況下,每個運維可能需要在同一時間裡對多個甚至幾十個應用進行監控。如果缺乏專業級監控軟體比如oneapm,就很難進行管理。
對於開發人員來說,他們只需要精通某項技術就可以做出一款偉大的產品。但是對擁有多產品線的企業而言,就可能帶來擴充套件性限制或者安全性問題。運維同學就需要不斷學習新技能,從而避免被各種執行bug所難倒。如果某應用最初的開發人員又不幸離開了團隊,估計運維同學就瘋了。當然還有一些情況,比如很多開發同學都喜歡使用一些開源產品,但其相容性往往都很差,這也給運維同學帶來很多困擾。
開發人員可以提供哪些幫助?
在開發或者更新產品時,開發同學應該提前諮詢一下運維同學,現在哪些技術最常用,而且還要考慮,在未來短期時間內,即使面臨複雜的生產環境也能夠順利完成開發工作,運維同學則需要給出「慎重」的回答。這裡有個好建議,就是盡可能堅持使用一些標準化元件。
2.不得不處理大量「遺留」**
開發同學相對來講很幸運,因為他們通常可以不用處理遺留**問題。運維則不然,很多企業的資料中心就像乙個「科技博物館」。甚至一些幾乎用不到的老應用,運維仍需保障其正常執行,因為說不定它跟某個關鍵應用還有某種「藕斷絲連」的關係。
開發人員可以提供哪些幫助?
其實,這個問題從本質上來看就是第乙個問題,因為隨著時間流逝,很多企業已經逐漸失去對技術層面的管控能力。而解決方案幾乎一樣:保持技術棧簡單化和標準化,並考慮到未來需要哪些成員來進行維護。
3.應用可以在開發環境上執行,但是無法在生產環境上工作
很多開發同學經常說類似「我們在開發環境上跑的很好啊」這種話,然後把問題直接推給運維同學。遇到這種情況,一般是由於開發人員把**嵌入到生產環境之前並沒有做好測試工作。「我總不能老測試**吧?我們已經在開發過程中完成了」,開發同學擺出這種態度,就意味著所有工作都拋向了運維。如果關係搞得很僵硬,開發同學甚至還會進行更頻繁的部署,這無疑會讓事情變得更糟。
開發人員可以提供哪些幫助?
其實,傳統交付原始碼或者軟體包最大問題就在於,軟體執行期間所「依賴的環境」無法控制,不能標準化,it人員常常需要耗費很多精力來解決因為「環境」而導致軟體執行出現的各種問題。開發人員可以了解一下docker技術,這是乙個輕量級的容器管理引擎,它可以將軟體與其「依賴的環境」打包在一起,以映象方式進行交付,這樣就可以讓軟體執行在標準環境裡,這也非常符合雲計算的發展要求。當然開發人員也可以邀請運維同學參與到開發會議中,確保日誌記錄和監控等事情能夠被妥善解決,這樣基本上可以搞定這件事。
4.經常為他人背「黑鍋」
一般而言,公司管理者往往對技術了解不多。但是,無論是**訪問緩慢,還是系統出現各種錯誤,不管是因為誰,公司老大們都是找運維同學解決。從一定意義上講,運維同學有責任去解決這些問題,但是不排除很多情況下是因為開發同學某段**出現了問題,所以運維同學難免會抓狂。不僅要承擔別人犯下的錯誤,還要拼死拼活地去解決可能非自身原因造成的問題。因為沒有專業工具,運維很難快速定位問題所在,所以他們常常「有苦難言」。
開發人員可以提供哪些幫助?
開發同學要學會使用「暫停」模式,嘗試把**交付時間向後暫緩一下。這樣可以保證在出現問題之前,及時向開發同學伸出援助之手。通常而言,開發人員擁有更專業的經驗和技術來修復各種問題。
其實,應用效能管理第一品牌oneapm在這點體現最為明顯,因為其核心價值就是希望幫助it運維人員進行故障預警和定位,幫助減少業務系統維護工作量。同時能夠能夠實現從**類、方法到資料庫語句級別快速效能診斷。除了能讓運維同學少背「黑鍋」,還能幫助開發同學準確定位到問題**段。從此,開發和運維同學也能在一起愉快地玩耍。
軟體開發的10件事
我依然記得當我完成學業時,我是多麼的天真。那時我深信自己已經準備好進入任何一家軟體公司,並開始成為乙個頂級的開發人員。顯然,開始工作後沒多久我就 意識到,還有很多事是我所不了解的。在不斷吸取經驗的同時,我一直在努力學習那些我從來沒有學過的,但卻是成為優秀的開發人員所應了解的基本知識。以下是我希望自己...
鍛鍊後應該做的4件事
當你按下跑步機上的停止鍵 或舉完最後一下啞鈴後,接著就擦汗 洗澡 回家睡覺了嗎?不不不,你還有些非常重要的事情得做。運動期間,身體所消耗的能量與使用的肌肉都有待補充和恢復,以下4件事是你運動後缺一不可的動作,因為這些舉動能幫助你身體恢復更迅速!緩和 高強度的有氧運動會讓你的心跳跳得相當快,突發性的靜...
APP開發新手應該知道的5件事
世界已經進入移動標準樣式,移動應用產業也因為這個獲得很大進展。2012年整個兒產業價值530億美圓 而到2016年將提高到1430億美圓。每私人都想從這個移動市場中分一杯羹,不過眾多研發者卻對眾多事情的真實情況並不成解。在應用商行之中,每個應用就像曲直常渺小。假如你想讓你的產品脫穎而出,那末就務必曉...