《大神告訴你,DevOps美但卻難落地?》要點:
本文介紹了大神告訴你,DevOps美但卻難落地?,希望對您有用。如果有疑問,可以聯系我們。
如果你或者你的公司組織正在尋求向DevOps過渡,我建議可以多注重洞察力方面的戰略性前瞻思維,起碼它可以協助構建敏捷實踐和自動化過程.
現在的IT部門是企業能夠快速響應市場和得到競爭優勢的主要動力.IT專人開始改變自己在行業中管理項目的方式方法,而管理方法本身也在不斷改進.試想一下,當下互聯網正在顛覆一個個行業,我們試著從高層角度看這件事,作為信息行業的領導者/追隨者,IT項目管理方式不強大怎么行?
DevOps發起于發達國家,它們的互聯網起步比我們早.在此理論的影響下,敏捷性和持續交付成了軟件開發和測試領域的新鮮熱門話題,因為它描繪了一個有效應對現代工作流程的一些核心原則和流程.
DevOps全貌沒有非黑即白立馬呈現,想要落地就要接受一個逐步進化的步驟和階段.換句話說,世上最不會改變的就是改變,DevOps不是老板一拍腦袋就能很快落地的事,在實施過程中的各種具體執行也不存在一勞永逸.翻譯成IT術語,DevOps通過簡化組織的工作方式,分解組織孤島(部門墻)來實現,有效促成合作.
本篇聊聊典型組織跟進DevOps要跨越的彎路,以及為什么絕大部分仍舊走不出適合自己的DevOps路子.除了devops內容,我們順便討論了不同程度的敏捷性,組織需要克服的障礙.
現代軟件交付鏈涉及許多重要工具和流程,許多組織正在打怪升級,不斷進入DevOps下一階段.一口雖然吃不了胖子,但DevOps內有4個主要的敏捷階段可以作為一定的參考標準.
- 瀑布流:瀑布交付是很多企業在用的交付模式,其內涵包括一些手動過程,比如測試.代碼按照特定節奏編寫,測試和交付.所有的整體團隊,包括開發人員,運營和質量保證,都在孤立地運作,很少合作.
- 初始的敏捷:一般來說,有一定程度敏捷的組織正處于瀑布的快速階段.但是由于靈活性,重定位或修復bug的機會有限,最終產品說不定……咳咳,我們往下說.實際操作階段,GitHub上一大堆工具是很有可能為工作流程帶來一定程度上的自動化和可擴展性.不過即便在此基礎上又有了一些自動化方面的測試,但基礎流程決定約束仍然存在,比如一些并行測試.
- 持續集成:DevOps跑到一定階段的標志是用了諸如Jenkins,CircleCI和TeamCity等持續整合平臺,這些工具對構建自動化大有益處.這里確定交付模式存在的深層次問題,把開發運營角色職能匯聚起來,使得快速診斷和快速解決得到落實,又沒有占用額外資源.
- 持續交付:走到這里,DevOps基本已經落地成型.實現持續交付的組織采用了近乎全自動化的開發流程,甚至于包括高頻而精確的自動化測試.此外,開發,運營和QA團隊也已形成一股戰斗力,不斷地相互同步.這個階段調整業務需求、IT項目、開發團隊和IT運營人員等曾經比較頭疼的大動作都變得更加順暢,以便持續提供新的應用程序版本.
通過采用跟開發,交付和產品相關的工具開啟DevOps落地的組織很可能會發現自己在敏捷方面受到高效自動化測試流程的限制.我知道說來容易,但破解之道確實就是提高測試效率.先前的DevOps工具和方法提高了部分測試效率,比如自動測試、云測試、并行測試…不過這些使測試更有效率以提高敏捷性的策略迄今沒成為DevOps對話的核心部分,但它們構成了簡單,低成本的增長更靈活的方法,以便實現全面持續交付的目標.
自動化測試的作用本質在實現持續交付方面與其他DevOps工具區別開來.當目標是實現全面的敏捷性時,自動化測試的重要性就凸顯了.在印象里,開發Web應用的企業在過去很多年就充分利用到受DevOps啟發的工具和技術了.從GitHub倉庫,到Jenkins,它們已經實現了幾種方法來構建部分的自動化流程.這些摸爬滾打探索出來的流程很大程度上能確保開發可以輕松加愉快的與QA和運維溝通對話.換個角度,部分這些特定的企業已經很大程度上吸收了DevOps文化.
然而熟歸熟,該指出的短處還是要指出,它們缺乏自動測試的DevOps資源,還是赤手空拳打天下.雖然測試可以腳本化,但大多數測試都是在臨時搭建的基礎上進行,而團隊還沒有在構建過程中把自動化測試囊括進去.
缺乏完整的測試自動化過程意味著產出高頻且可靠質量的應用依舊(相對)困難.此外,這很有可能會擾亂組織已經執行的其他新變更,削弱開發和交付的管道價值.雖然這些變化已經優化了開發和部署,但沒有實際的自動測試導致連續交付依然困難.因此,即便工作流程更敏捷了,但還是沒達到持續交付的效果.
此階段并非對持續交付就沒什么價值,既然缺一環,那就能理解它的價值在鋪墊,繼續DevOps下一步的鋪墊.使自動化測試成為持續集成工作流程的一部分的工具,這對現有流程的敏捷性幫助就大了.
DevOps你也可以看成是一種交付心態,一種人人為我、我為人人的協作心態.團隊每個人都肩負業務指標,協作搞定需求,共同思考開發,構建,測試并部署到集成環境.跨團隊合作,創造性挑戰和勇氣,隨著越來越多的迭代進步,都包含DevOps概念.DevOps是高效軟件交付的核心部分.大多數超出用戶預期的公司,他們的IT模式早已不是你我能隨便趕超的樣子,他們都在做最好的工作,深諳DevOps之道.拋開這種大神級文明,我們為了達到持續交付實質性階段并盡可能全面敏捷,要做的不單是用幾個DevOps工具,也可以用DevOps涉及的語言.
組織需要徹底改革在瀑布發展時期建立的做法,讓工作流程完全敏捷、完整的DevOps落地,才更貼近你我可能都說不太清楚的DevOps理念.開始工具因公司而異,但有一些東西是崗位上就要有的覺悟:運維方面,想想你想要什么樣的自動化;測試人員,請想想你想要什么樣的自動化;開發不是不需要考慮,能協助就是最大的幸福,畢竟聽說你們玩OT都是玩的最高級.
文章來自微信公眾號:DevOps研究院
轉載請注明本頁網址:
http://www.fzlkiss.com/jiaocheng/4101.html