從結(jié)繩記事到云端計算,計算工具的演化經(jīng)歷了由簡單到復雜、從低級到高級的不同階段,貫穿始終的是人們一直在試圖用人力以外的力量,簡化人的工作,提升生產(chǎn)與生活的效能。然而,“科學每解決一個問題,都要引發(fā)十個新問題”。軟件定義了一個無限美好的未來,卻將人們拖入充滿泥淖的現(xiàn)實。
雖然摩爾定律早就揭示了硬件進化的潛力,《沒有銀彈》卻告訴我們一個冰冷的現(xiàn)實:沒有任何一項技術或方法可以能讓軟件工程的生產(chǎn)力在十年內(nèi)提高十倍。數(shù)以百萬計的軟件從業(yè)者每天創(chuàng)造著浩如煙海的軟件代碼,卻使得軟件這一計算機的靈魂變得越來越紛繁復雜。
其實軟件本應是美的,而美的軟件應該是簡單的,正所謂道生一,一生二,二生三,三生萬物。
簡單獲得的體驗之美
“(軟件之美)在于它的功能,在于它的內(nèi)部結(jié)構(gòu),在于團隊創(chuàng)建它的過程?!比欢赖膬r值最終在于體驗,風景在旁人看不到它的時候,便不能算是“風景”。
Gartner為我們預言了一個人、物和商業(yè)深度連接的世界,在這樣的世界中,因為云計算技術和架構(gòu)的演進和發(fā)展,軟件的體驗正在如同水電一樣無關基礎,即用即得;移動終端的廣泛應用,讓人們可以無關時空,隨時隨地的獲得功能和應用的交付,而在這些功能和交付的背后,不再需要動輒以千萬計的龐大團隊作為支撐,DevOps和微服務滿足了應用的碎片化,時間的碎片化,人們關注度的碎片化,使軟件的生產(chǎn)能力可以給予客戶所需要的即得感,企業(yè)和組織可以以“周”或以“天”甚至以“分”為單位快速實驗和探索,在不斷嘗試中獲得更加契合客戶需求的軟件。讓軟件表達出簡單獲得的體驗之美。
簡單創(chuàng)造的價值之美
程序員們?nèi)找岳^夜,詮釋著披星戴月的含義,卻不斷的沉淪在重復搭建環(huán)境、重復系統(tǒng)部署、重復環(huán)境驗證、重復代碼開發(fā)等等的煉獄之中,“感覺身體被掏空”的絕望如影隨形。人類發(fā)明并建造計算機,努力對其開發(fā)和優(yōu)化,是為了讓計算機可以更好地理解人類行為,模擬人類的學習和表達過程;在智能時代,計算機的認知能力開始超越人類的個體經(jīng)驗,甚至可以為人類行為提供幫助和預測。
DevOps、ChatOps、OpsDev讓生產(chǎn)運營者做到聊天式的開發(fā)運維一體化,讓提供者做到自動化的部署供給,讓消費者做到自助式的開通使用,讓程序員輕松地超越極限,充分釋放自己的智力、想象力和創(chuàng)造力,從碼農(nóng)成為商業(yè)價值的創(chuàng)造者,讓軟件迸發(fā)出簡單創(chuàng)造的價值之美。
簡單架構(gòu)的設計之美
《營造法式》為中國古建筑的結(jié)構(gòu)設計、工程管理奠定了基礎,燦若星辰的中國古典園林體現(xiàn)了建筑執(zhí)著于簡單的美學理念,磚、瓦、琉璃與建筑構(gòu)件,以最簡化的分解讓沒有生命的木方泥胎誕生了橫亙古今的美感。軟件體系的“營造法式”卻仍舊“立而望之,偏何姍姍其來遲?!?。
出于項目實施時間、投入資源等方面的限制,大型軟件往往以實現(xiàn)若干個具體的用戶功能需求為目標。日復一日,隨著用戶功能要求的變化,軟件變得面目全非。任何系統(tǒng),在自然情況下,都是從有序到無序,但生物可以通過和外界交互,主動進行新陳代謝,繼續(xù)生存。軟件系統(tǒng)隨著功能越來越多,調(diào)用量急劇增長,整個系統(tǒng)逐漸碎片化,越來越無序,最終無法維護與擴展,人們沒有時間,也沒有精力去追求軟件的美學目標。所以系統(tǒng)在一段時間后必須即時干預,避免野蠻生長。然而大型軟件項目已成為大量代碼的隨機而無序的堆積。工程師一旦完成項目,就恐避之不及,不愿再去碰自己幾個月來夜以繼日的勞動成果。
架構(gòu)的本質(zhì)就是讓系統(tǒng)開發(fā)、維護變得有序,而好的架構(gòu)一定是高度抽象的、易于理解的、合理定位的、整合有機的、面向未來的。微服務架構(gòu)模式將大型的、復雜的、長期運行的應用程序構(gòu)建為一組相互配合的服務,每個服務都可以很容易得到局部改良。讓軟件折射出簡單架構(gòu)的設計之美。
簡單協(xié)作的生態(tài)之美
“我住長江頭,君住長江尾。日日思君不見君,共飲長江水?!逼髽I(yè)IT中,戰(zhàn)略與實現(xiàn)的鴻溝,業(yè)務與技術的鴻溝,開發(fā)與運維的鴻溝,讓協(xié)作的各方難以互相理解和交流。對于開發(fā)團隊與運維團隊而言,世界上最遠的距離,不是我站在你的對面你卻聽不到我的話,而是我和你要了蘋果7代,你卻給了我7袋蘋果。DevOps提倡開發(fā)和IT運維之間的高度協(xié)同,從而在完成高頻率部署的同時,提高生產(chǎn)環(huán)境的可靠性、穩(wěn)定性、彈性和安全性。
通過縱向協(xié)作,DevOps強調(diào)的重點是跨工具鏈的「自動化」,最終實現(xiàn)全部人員的「自助化」服務。
通過橫向協(xié)作,DevOps強調(diào)的重點是跨團隊的「線上協(xié)作」,也即是通過IT系統(tǒng),實現(xiàn)信息的「精確傳遞」。
DevOps不僅打通了開發(fā)運維之間的部門墻,更實現(xiàn)了應用全生命周期的工具鏈路打通、跨團隊的線上協(xié)作能力,讓軟件衍生出簡單協(xié)作的生態(tài)之美。 軟件本應是美的,消費者的體驗,工程師的價值,架構(gòu)師的設計,部門間的生態(tài),無不因簡而實,因簡而預,因簡而美。因此,本期《架構(gòu)師》,我們試圖在技術的極簡美學方面作一些嘗試和分享。如何通過元數(shù)據(jù)這種“數(shù)據(jù)的數(shù)據(jù)”來抽象和簡化微服務架構(gòu)認知的維度;如何用簡單的幾種模式,看透數(shù)據(jù)的最終一致性;如何將DevOps軟件交付的過程和環(huán)節(jié),映射為最簡單的企業(yè)IT生產(chǎn)元素;如何用幾條簡單的規(guī)則,來衡量選擇開源架構(gòu)的得失,簡而言之如何確立數(shù)字化時代的軟件技術架構(gòu)。
我們今年一直在嘗試做一件事,用開放和分享,來簡化技術創(chuàng)新的過程,我們將面向商用的企業(yè)級云計算平臺的設計文檔,過程文檔,技術思考,通過社群和公眾平臺的方式全面開放和分享,期待更多的身處企業(yè)IT環(huán)境的工程師和架構(gòu)師,可以和我們一起,追尋軟件的初心,尋求軟件之美,合作創(chuàng)新,讓未來觸手可及。
至言不繁,大道至簡。
迷你書目錄
技術選型
云平臺的微服務治理框架
云平臺的基礎消息處理架構(gòu)
洞察
談DevOps對于企業(yè)IT的價值
談元數(shù)據(jù)驅(qū)動的微服務架構(gòu)
技術實踐
基于微服務架構(gòu)的技術實踐
談API網(wǎng)關的背景、架構(gòu)以及落地方案
實施DevOps從哪里開始?
下載方式