“復(fù)雜性會(huì)致命,”Lotus Notes 作者和微軟資深工程師 Ray Ozzie 在 2005 年的一份內(nèi)部備忘錄中寫(xiě)道。“它剝奪了開(kāi)發(fā)人員的生命;使產(chǎn)品難以規(guī)劃、構(gòu)建和測(cè)試它帶來(lái)了安全挑戰(zhàn);讓用戶(hù)和管理員感到沮喪?!?nbsp;
如果 Ozzie 當(dāng)時(shí)就認(rèn)為軟件開(kāi)發(fā)過(guò)于復(fù)雜的話(huà),你會(huì)忍不住好奇他會(huì)如何看待軟件開(kāi)發(fā)人員在云原生時(shí)代所面臨的復(fù)雜性。從你可以觸摸的服務(wù)器上托管的整體架構(gòu)中構(gòu)建應(yīng)用程序到將它們拆解成多個(gè)微服務(wù),打包進(jìn)容器,與 Kubernetes 調(diào)諧并托管在分布式云環(huán)境中,這種轉(zhuǎn)變標(biāo)志著軟件的復(fù)雜程度激增。加上對(duì)功能豐富的消費(fèi)級(jí)體驗(yàn)的期望,要求安全和富有彈性,這對(duì)開(kāi)發(fā)人員提出了前所未有的高要求。
亞馬遜首席技術(shù)官 Werner Vogels 在 2019 年 AWS 峰會(huì)期間表示:“當(dāng)你遷移到如此普遍的微服務(wù)環(huán)境時(shí),復(fù)雜性明顯增加了。一切都在單一整體中的日子是否更容易?是的,對(duì)于某些部分肯定如此。”或者,正如他的同事、AWS 的 DevOps 產(chǎn)品營(yíng)銷(xiāo)主管 Emily Freeman 在 2021 年所說(shuō)的那樣,現(xiàn)代軟件開(kāi)發(fā)是“一項(xiàng)關(guān)于熵的研究,并沒(méi)有變得更簡(jiǎn)單。” 另一方面,復(fù)雜的技術(shù)從未像現(xiàn)在這樣現(xiàn)成、簡(jiǎn)單、易用,通常是通過(guò)一個(gè)API——從基本庫(kù)和框架到圖像識(shí)別功能甚至是整個(gè)支付堆棧。只要在上面組裝和構(gòu)建你的業(yè)務(wù)邏輯就可以了,但真的有那么簡(jiǎn)單嗎?