很朋友都說自己都還沒走在這路上根本就沒開始啊,根本沒感覺到會崩壞,只是感覺前方阻礙有如群山一般很難跨越。確實如此,DevOps這個文化到2024年,已經執行快8年,即使跨過萬重山,但每年又會多出更多的山來阻礙前進的道路。從工程角度來看,不外乎外面的世界變化越來越快,要面對挑戰更多,從人的角度來看之前要打破是Developer和Operation兩個角色(部門)的隔閡或是工作模式,現在變成要打破Business、Network或是Security團隊。
此外,早期多數人提到DevOps團隊在環境中除了我們要克服組織差異外,如果你的團隊外的協同合作夥伴又有跨國的模式,這樣不僅僅是組織差異,還有更多來自文化差異,這將導致跨團隊合作、一致性和標準化等挑戰,畢竟你的一致性和標準化對它們來說可能是例外或是特殊。尤其,在領域不同團隊上可能還會發生你的Concept不等於我的Concept,這時候怎麼辦,往往就只能比誰的拳頭大了(誰在乎你的軟體交付的效率和品質),只要在我自己負責的領域不出事就好,這種壞味道其實是很難被消滅,為什麼一開始會嗅不到?我只能說擴張領域還不夠廣,當擴張的協同合作越廣,這種味道就會越來越多。
每次談到DevOps,就會被問到「Agile」& 「DevOps」是要選哪一個?要哪個先開始?我們先來回顧一下大家認知的「DevOps」好處
回到「Agile」& 「DevOps」怎樣選擇?我認為「DevOps」中沒有「Agile」的核心理念或是文化流程,是很難支撐「DevOps」走下去。從我來看,「DevOps」最終極目的在於如何讓商業需求如何能快速交付到用戶或是提高用戶對產品(服務)的滿意度(系統出問題時候,用戶需要等待超過一天以上才能使用,這樣滿意度是不會提高),「變」是現今環境唯一不變的現象,而「Agile」(Scrum)卻是可以讓我們去面對這樣的現象,讓我們做出的服務與現實差異是縮短甚至是符合需求的。從DevOps上述的一些好處中,可以發現一件事情,就是「變」。無論是技術或是流程,都會隨著時間和市場不斷變化,團隊無法面對這樣的環境是無法持續產出。有了「Agile」不是讓原本原本需要三天的工作時程,可以縮短到一天就可以完成,而是面對各種迎來的變化與挑戰,都可以消化或是有一種合作或協同模式應付這樣情境。所以,如果只是單純仰賴「DevOps」的技術,人的心態沒有轉型,到最後依舊很容易壓垮「DevOps」的火苗。因此,「Agile」的導入是提升團隊能面對「變」有了應變能力;「DevOps」的導入是提升使用者(客戶)對團隊服務(能力)的滿意度(信賴)。這兩者是相輔相成。
最初期,Developer和Operater兩群人面對都還是屬於Business,當然後期又加入的Biz,但是整體面向都還是跟市場或是需求有關。縱使大家可能都不對盤,但還是可以有一絲絲的共通語言。不過,後續又加入Secutrity,這又是一種天崩地裂的情況。這並非說Secutrity不需要去理會或是重要,反而Secutrity放入DevOps是非常好的一件事情。我們先來說說所謂的DevSevOps的理念:
主要是讓資安意識放入到團隊每個人心中,讓每個人從端到端都因為有資安意識,所以從開發到佈署或是維運都可以關心到資安議題。
這幾年因為外部攻擊增加,每個企業都開始有了資安團隊(或是Infra團隊轉型),通常遇到的案例,就是這些成員的Concept與軟體開發流程的Concept差異更大。通常在大企業中這些成員與business距離就更遙遠,且本身Domain的技術變化,與軟體或是應用系統來比,相對是緩慢且變異低。當這兩者結合衝擊,是非常可怕的。感覺是那種新舊思維的強大衝撞,產生出的火花。兩邊誰對誰錯?我認為都有各自認為對的理由,畢竟兩邊專業都不同。既然都有對錯,為什麼還這麼難合作呢?主要還是在於人的思維是否改變,我遇到大多數的資安團隊(或是Infra團隊轉型),過於保守在於自己領域或是不願面對IT領域的新知識吸收或是學習。反而用傳統或是過往領域知識面對新的技術發展,有些還是排斥。排斥往往主要原因是不想要面對變化,畢竟過多變化,在工作或是管理模式就要改變,這反而是他們不願意面對。
因此,當DevOps邁入Secutrity要素,如果大家無法對齊在一條線去面對這件事情,將會讓原本成熟或是高效率的DevOps瞬間被瓦解(尤其是資安團隊又能拿著雞毛當令箭時候),那到底要齊那一條線呢?
企業需要保持敏捷並利用技術推動業務成長,同時保持安全性。每個人任務就是在保持敏捷性前提下,同時確保業務能夠專注於最擅長的事情,而不是被安全策略而受到干擾,降低敏捷和彈性
因此,當資安不了解軟體開發就無法提供有效建議,DevOps團隊不懂資安也無法將資安要素納入開發流程中。作為DevOps專業人員,必須意識到可能危害系統、應用和資料的潛在威脅,例如: 釣魚攻擊、代碼注入、中間人攻擊、容器漏洞和分佈式拒絕服務攻擊等
另外,企業組織推動DevOps時候,還遇到資源權力的問題,甚麼叫做資源權力,我們常常講到DevOps時候,會希望DevOps團隊能定義好雲端使用策略或是彈性雲端資源協助業務成長,例如:
以上不外乎可以看到雲服務降低了基礎建設的門檻,且面相在開發者居多,這時候,企業早期管理基礎建設的團隊來說,勢必讓這些資源脫離他們掌控了,簡單說可能有某些權力消失,導致不安或是覺得不被它們控制。導致,想要傳統方式管理這些雲資源,進而喪失DevOps團隊的彈性與自主性。當然,在交付上反而使用雲資源是讓進度更為緩慢,維運產生更多不確定因素與複雜性
世界在變,前幾年推廣(實作)DevOps在文化與組織協同合作已經不容易,如今又要擴展更多領域(部門),複雜性與難度就更難。對於還沒有開始的人,可能門檻更高,對於開始的人可能遇到不是進步而是被打退回原狀。後續,DevOps除了資安,我相信又有更多的議題會被納入DevOps領域
DevOps在未來趨勢和挑戰,只會更多不會更少,這也就是我前面提到如果本身沒有敏捷的心態與概念,將無法面對這些挑戰。
最後,用下面這張圖來詮釋現在大家提到的DevOps、SRE和平台工程的關係與差異。
DevOps、SRE和平臺工程都是相關聯,但它們的重點和責任各有不同:
這三者都是可以支撐DevOps的工程技術