經(jīng)常在機(jī)場穿行的人們,很難注意不到鋪天蓋地的云計(jì)算廣告牌。我素來對于各種大詞不感冒,反倒是廣告里一行小字引發(fā)了關(guān)注:“數(shù)字化轉(zhuǎn)型專家”。過去數(shù)年間,在“互聯(lián)網(wǎng)+”的本土語系中,數(shù)字化轉(zhuǎn)型其實(shí)是一個(gè)比較夾生的表達(dá)方式。雖然“數(shù)字化”對這一進(jìn)程本質(zhì)的揭示更為深刻和普適,但不可否認(rèn),以“互聯(lián)網(wǎng)”為前綴的表達(dá)方式在逆襲正勁的風(fēng)口,具有更高的市場辨識度。
在一個(gè)領(lǐng)域中,話語構(gòu)建的水平往往也表征了其本身的成熟與進(jìn)化程度。更多從業(yè)者們對于“數(shù)字化轉(zhuǎn)型”語系的普遍采納,除了表明近幾年互聯(lián)網(wǎng)與傳統(tǒng)IT企業(yè)基因混雜、彼此融合的特征,也表明了企業(yè)市場在歷經(jīng)顛覆、迷茫、跟風(fēng)、實(shí)踐之后,愈加清朗地辨明了自己的主要矛盾與核心訴求。IBM商業(yè)價(jià)值研究院近來發(fā)表了一系列關(guān)于“數(shù)字化重塑”(數(shù)字化轉(zhuǎn)型的進(jìn)階)和“傳統(tǒng)企業(yè)逆襲”的研究報(bào)告。雖然我們并不敢說這預(yù)示著傳統(tǒng)企業(yè)數(shù)字化復(fù)蘇的春天就要到來了,但是經(jīng)過了這些年商業(yè)與技術(shù)的“顛覆”亂局后,人們至少都學(xué)會了“以彼之道還施彼身”,在挨打和混戰(zhàn)中學(xué)會了打架。以金融科技為例,今天在這個(gè)領(lǐng)域里的玩家,既有過去的所謂顛覆者紛紛從2C走向2B,也有傳統(tǒng)銀行突破體制格局,主動向市場輸出科技能力。
如果以數(shù)字化轉(zhuǎn)型甚至重塑的視角去打量傳統(tǒng)企業(yè)的主要實(shí)踐,至少可以看到三個(gè)主要的方向。一、求差異,以數(shù)字化手段重構(gòu)客戶體驗(yàn)。二、謀格局,在數(shù)字化建設(shè)過程中創(chuàng)造新的業(yè)務(wù)模式,以滿足(可數(shù)字化的)業(yè)務(wù)能力或者資產(chǎn)更靈活地在廣義的業(yè)務(wù)生態(tài)中實(shí)現(xiàn)交付,乃至變現(xiàn)。三、孵創(chuàng)新,在企業(yè)內(nèi)部通過機(jī)制,培育、孵化業(yè)務(wù)和技術(shù)的“殺手锏”。當(dāng)然,對于企業(yè)來講真正困難的并不是找到一招鮮的法寶,而是深刻基于自己的傳統(tǒng)和現(xiàn)狀,找出一條循序漸進(jìn)的進(jìn)化道路。我們可以認(rèn)為這是一種“整合性”的創(chuàng)新能力。如果悖離自己的業(yè)務(wù)和技術(shù)的傳統(tǒng)和現(xiàn)狀,以突變、割裂的方式妄談創(chuàng)新,往往只會為實(shí)踐領(lǐng)域制造更多二元對峙的概念和文化沖突。
而無論在哪個(gè)方向上去踐行數(shù)字化轉(zhuǎn)型,經(jīng)歷過這一波市場的洗禮,大多數(shù)企業(yè)對于“場景”都有了更加深刻的認(rèn)知和感受。場景作為流量變現(xiàn)的關(guān)鍵,成為了事實(shí)上驗(yàn)證業(yè)務(wù)和技術(shù)的標(biāo)準(zhǔn)。這種共識使得人們比以往更加關(guān)注垂直的業(yè)務(wù)場景落地?!靶《馈钡拇怪睂?shí)踐比“高大上”的平臺構(gòu)想要更加謹(jǐn)慎而務(wù)實(shí)。以銀行為例,處于業(yè)務(wù)敏感前沿的分行或業(yè)務(wù)部門近年來涌現(xiàn)出越來越多顆粒度不大,但是時(shí)效性比較迫切的數(shù)字化業(yè)務(wù)場景需求。這些業(yè)務(wù)場景往往具備較強(qiáng)的地域性、行業(yè)性甚至季節(jié)性,在業(yè)務(wù)運(yùn)營模式上也具備較大的靈活自主性。在這種格局之下,全局性的橫向平臺如何去適應(yīng)活躍、豐富的垂直創(chuàng)新,應(yīng)該說是一個(gè)關(guān)鍵問題。近年來,包括銀行在內(nèi)的眾多企業(yè)科技部門紛紛熱衷于PaaS或者原生云應(yīng)用平臺的建設(shè)。在銀監(jiān)會關(guān)于“十三五”規(guī)劃的相關(guān)指導(dǎo)意見中,也特別強(qiáng)調(diào)要加大互聯(lián)網(wǎng)類應(yīng)用云化的力度。這些橫向的平臺構(gòu)建如果僅僅是關(guān)起門來自己玩架構(gòu)和技術(shù),或者為云而云的搞應(yīng)用移植、平臺替換,可能很難找到業(yè)務(wù)和技術(shù)良性互動的關(guān)鍵點(diǎn)。
解決數(shù)字化業(yè)務(wù)的場景性訴求,可能恰恰是這類新平臺的適用領(lǐng)域。在近幾年的實(shí)踐中,隨著開源以及所謂分布式架構(gòu)理念的普及,一個(gè)新的數(shù)字化技術(shù)堆棧正在發(fā)展成形。而PaaS或者原生云應(yīng)用平臺的興起進(jìn)一步驅(qū)動了應(yīng)用架構(gòu)的變遷,在實(shí)踐上大大豐富了這個(gè)技術(shù)堆棧的內(nèi)涵。從應(yīng)用架構(gòu)的角度,基于原生云的12要素架構(gòu)原則及其大量設(shè)計(jì)模式得到了更為廣泛的采納。其架構(gòu)的核心訴求是速度(唯快不破)、安全(容錯(cuò))、擴(kuò)展(彈性)。在開源社區(qū),這樣的應(yīng)用設(shè)計(jì)理念得到了許多開源組件和框架的支持。而微服務(wù)架構(gòu)理念的流行進(jìn)一步為這些實(shí)踐推波助瀾。從技術(shù)架構(gòu)的角度,容器與大規(guī)模容器集群、編排技術(shù)的廣泛采納與原生云應(yīng)用架構(gòu)可以說是天作之合。此外,隨著容器作為應(yīng)用和服務(wù)的標(biāo)準(zhǔn)分發(fā)/交付單元,Dev和Ops終于可以被無縫的貫穿。由此,從開發(fā)交付的角度,DevOps的采納在技術(shù)上消除了壁壘。并進(jìn)一步在文化和組織上提出了新的要求和挑戰(zhàn),如何在傳統(tǒng)橫向的組織邊界中(如傳統(tǒng)企業(yè)一部三中心的科技格局)去實(shí)現(xiàn)垂直業(yè)務(wù)場景的自治式演進(jìn)。而這也正是微服務(wù)理念的核心精髓。此外,在這個(gè)新的技術(shù)堆棧中,大規(guī)?;诜治龅倪\(yùn)維與基于開源的支持生態(tài)也都提出了新的挑戰(zhàn)和要求。
在這個(gè)新興的技術(shù)堆棧中,各種不同的實(shí)踐并沒有嚴(yán)格的時(shí)序先后依賴,而是保持著一種內(nèi)在的邏輯關(guān)聯(lián)各自展開,就像一幅拼圖從碎片中逐漸呈現(xiàn)出全景一樣。還記得兩三年前跟一些大型客戶交流時(shí),說微服務(wù)和容器就是天作之合。當(dāng)時(shí)大家的反應(yīng)還是持保守和觀望態(tài)度。而到了今天,我們是不是可以更加清晰的表述一個(gè)更大的圖景:數(shù)字化業(yè)務(wù)豐富的場景訴求正在驅(qū)動一個(gè)新的企業(yè)數(shù)字化技術(shù)堆棧不斷成熟。數(shù)字化場景、微服務(wù)、容器、devOps,這些元素都是天作之合。都是同一個(gè)進(jìn)化過程在不同面向上的表達(dá),其內(nèi)在是彼此暗合、高度一致的。從企業(yè)實(shí)踐的角度,不管用什么名稱,從哪個(gè)角度去定義,最關(guān)鍵的就是找到適合自己的抓手,并且始終在發(fā)展過程中保持全局觀,以堆棧化的整體視圖來設(shè)計(jì)路線圖,并根據(jù)實(shí)踐不斷持續(xù)更新。畢竟,這個(gè)領(lǐng)域的實(shí)踐,以及這個(gè)堆棧的發(fā)展,并不是以一種自上而下的方式鋪陳,而是基于社區(qū)、基于實(shí)踐的進(jìn)化?;氐饺昵暗哪潜久度嗽律裨挕返暮诵挠^點(diǎn),仍然沒有銀彈(No Silver Bullet)!沒有一招鮮,沒有萬能藥!有的就是腳踏實(shí)地參與進(jìn)化的歷程。這個(gè)歷程就是企業(yè)在傳統(tǒng)經(jīng)典技術(shù)堆棧的基礎(chǔ)之上繼續(xù)演進(jìn),生長出新的“數(shù)字化雙翼”。
然而,在新的數(shù)字化堆棧的發(fā)展過程中,我們也特別注意到了一些流行的二元對峙的偏狹觀念,其流弊之廣、危害之深值得實(shí)踐者們高度關(guān)注。
集中或者分布本身是兩種處理問題的方式或風(fēng)格,就像是同步與異步一樣。但是市場上的一些流行理念卻活生生將集中與分布劃分成了兩個(gè)彼此對峙的陣營。在所謂的集中式陣營中,如果一定要找一個(gè)靶子,那么基于IBM Z(俗稱主機(jī))的技術(shù)堆??梢运愕蒙稀氨娛钢摹钡募惺皆搭^。
圖1 經(jīng)典的基于主機(jī)的技術(shù)堆棧示意
主機(jī)的技術(shù)堆棧在半個(gè)世紀(jì)前開啟了以服務(wù)器為核心的計(jì)算時(shí)代,發(fā)展和成熟于業(yè)務(wù)、數(shù)據(jù)大集中處理時(shí)代。其一直立足于關(guān)鍵事務(wù)處理的企業(yè)級計(jì)算。作為一個(gè)發(fā)展最為成熟的通用商業(yè)計(jì)算體系,不難發(fā)現(xiàn)其技術(shù)堆棧秉持的一些關(guān)鍵性假設(shè)和原則:以成熟、領(lǐng)先的貫穿全堆棧的系統(tǒng)優(yōu)勢,來為用戶換取在開發(fā)交付和運(yùn)行維護(hù)上更大的專注性。這其實(shí)是多年來流行在企業(yè)級計(jì)算領(lǐng)域的一個(gè)重要原則-Separation of Concerns(關(guān)注分離、專于其事)。經(jīng)典的企業(yè)IT組織格局以及技術(shù)支持生態(tài)也都是基于這樣的基本原型逐漸演化形成的。在成熟的主機(jī)用戶身上,我們能夠看到一些典型的特征。比如,從系統(tǒng)角度:精簡的系統(tǒng)部署、充裕的擴(kuò)展能力、連續(xù)的業(yè)務(wù)可用、集約的運(yùn)維規(guī)模。從開發(fā)角度:專注于業(yè)務(wù)的開發(fā)模式,更好的架構(gòu)包容性(有容乃大)。
不難發(fā)現(xiàn),這個(gè)經(jīng)典的技術(shù)堆棧要達(dá)到的首要目標(biāo)并不是所謂集中,而是打造一個(gè)最高品質(zhì)的通用商業(yè)計(jì)算體系。換言之,就是通過系統(tǒng)化的技術(shù)手段保障其核心價(jià)值的可復(fù)制性和普遍性,而不依賴于對運(yùn)維或應(yīng)用等外部因素提出過多特質(zhì)化的要求。當(dāng)然,在多年的實(shí)踐中,運(yùn)維和應(yīng)用也一定會根據(jù)系統(tǒng)的特點(diǎn)(優(yōu)勢以及短板)而發(fā)展出具有獨(dú)特性的資產(chǎn)??梢哉f這幾年主機(jī)用戶一系列以減少消耗為導(dǎo)向的優(yōu)化舉措也是非常有益的探索。但是我們應(yīng)該認(rèn)識到,一個(gè)成熟的商業(yè)技術(shù)堆棧與興起于互聯(lián)網(wǎng)超級玩家的技術(shù)堆棧在發(fā)展模式上的確存在差異。超級互聯(lián)網(wǎng)玩家追求對于技術(shù)全棧盡可能的自主掌控是基于其超級龐大的業(yè)務(wù)和科技體量、爆發(fā)式的發(fā)展增速,以及業(yè)務(wù)和科技融為一體的企業(yè)基因。商業(yè)系統(tǒng)的運(yùn)作則是基于契約式。說白了就是,用經(jīng)濟(jì)手段交換能力,用合約手段保障承諾。
其次,就算回到集中與分布的技術(shù)紛爭。我認(rèn)為也很難完全把一個(gè)技術(shù)體系簡單歸為集中或者分布。很多人可能沒有認(rèn)識到,基于主機(jī)的傳統(tǒng)交易中間件CICS本身就是為分布式服務(wù)而構(gòu)建。作為分布式服務(wù)所需要的容器化運(yùn)行環(huán)境、遠(yuǎn)程調(diào)用框架、服務(wù)的注冊、發(fā)現(xiàn)、路由、負(fù)載均衡等等能力在這個(gè)技術(shù)體系內(nèi)都有對應(yīng)的經(jīng)典實(shí)現(xiàn)方式。至于在物理部署模式上是采用水平擴(kuò)展、垂直擴(kuò)展或者混合模式,更多的是從性能的優(yōu)化、運(yùn)維的效率、擴(kuò)展的空間等多種角度來綜合考慮。反觀近年來市場上流行的分布式架構(gòu)實(shí)踐,其實(shí)質(zhì)往往無外乎是開源技術(shù)的采納,應(yīng)用的服務(wù)化(甚至微服務(wù)化)、以及去狀態(tài)或者無狀態(tài)化,嚴(yán)格一致性的妥協(xié),廣泛的異步式處理,再加上數(shù)據(jù)的業(yè)務(wù)性或者技術(shù)性分散。在過往全球互聯(lián)網(wǎng)巨頭的實(shí)踐中,這些手段的運(yùn)用都是有其上下文和條件的。但是如果將之作為一個(gè)教條的概念,也會帶來負(fù)面而深遠(yuǎn)的影響。
“不把所有雞蛋放到一個(gè)籃子里”成為了所謂分布式陣營的一個(gè)貌似絕對正確的理念和旗號。在實(shí)踐中,可以看到不少過于僵化和教條的做法,比如在沒有擴(kuò)展性瓶頸的前提下單純用技術(shù)性手段強(qiáng)行分拆數(shù)據(jù)。我認(rèn)為一些問題已經(jīng)超越了雞蛋和籃子的關(guān)系。而是要不要把蛋黃和蛋清放到一個(gè)蛋殼里!未來運(yùn)維和業(yè)務(wù)將不得不為這些麻煩而買單。
隨著微服務(wù)架構(gòu)的迅速躥紅,這顆新的“銀彈”又給市場注入了巨大的想象力。人們在傳統(tǒng)的交付和運(yùn)維苦海中掙扎著,怎么加班交付都不夠敏捷,怎么解耦應(yīng)用都還是一團(tuán)亂麻,怎么監(jiān)控生產(chǎn)都還是如履薄冰。與微服務(wù)相對的巨石架構(gòu)隨即躺槍成為了萬惡之源,如過街老鼠人人喊打。
然而如果我們稍微研究一下微服務(wù)架構(gòu)的歷史沿革和實(shí)質(zhì),會發(fā)現(xiàn)其關(guān)鍵強(qiáng)調(diào)的是一種架構(gòu)和交付的文化,“微”的目的是為了服務(wù)能夠獨(dú)立、自治的垂直演進(jìn)。記得曾經(jīng)有一種非常有趣的說法,單個(gè)微服務(wù)的設(shè)計(jì)、開發(fā)、測試和運(yùn)維的所有人加在一起吃飯,只需要兩張批薩就夠了,這是就是著名的“Two pizza team”原則。在這種模式之下,devOps幾乎毫無例外的是剛需。然而如果僅僅是教條地將微服務(wù)作為一種普遍性準(zhǔn)則,不分場合,生搬硬套,同樣會遭遇尷尬。在實(shí)踐中,人們往往最多的問題就是,找不到傳統(tǒng)應(yīng)用重構(gòu)為微服務(wù)的合適場景。而且這種架構(gòu)和交付方式對于經(jīng)典的組織結(jié)構(gòu)和文化也造成了極大的沖擊。如何跳出傳統(tǒng)的紅海(苦海)的束縛,找到一片業(yè)務(wù)和架構(gòu)的藍(lán)海,成為了很多實(shí)踐者關(guān)心的話題。
圖2 以主機(jī)用戶為例的架構(gòu)融合、雙技術(shù)堆棧示意
回到“骨感”的現(xiàn)實(shí)中,對于傳統(tǒng)企業(yè)而言,微服務(wù)的采納有可能并不是一個(gè)最急迫的核心問題。而且我們相信經(jīng)過這么多年應(yīng)用的治理,在一個(gè)有一定水準(zhǔn)的企業(yè)內(nèi),巨石架構(gòu)的弊端也沒有外界想象那么嚴(yán)重。但是在實(shí)踐中,必須承認(rèn)服務(wù)化治理本身的確是一個(gè)既急迫又長期的過程,自SOA時(shí)代以來落下的功課早晚是要交上的?!案邇?nèi)聚、低耦合”在什么時(shí)代都是服務(wù)的黃金法則。
我們在前面曾經(jīng)提到過,主機(jī)架構(gòu)對于應(yīng)用有著更大的包容性。這一點(diǎn)在服務(wù)治理的歷程中是可以得到印證的。記得十幾年前,IBM就建議主機(jī)CICS的用戶在部署應(yīng)用時(shí),盡量將長交易、短交易,不同業(yè)務(wù)目標(biāo)的應(yīng)用分配部署到不同群組的CICS容器(region)中去。這樣可以利用系統(tǒng)對于混雜工作負(fù)載的調(diào)度管理能力,充分地利用系統(tǒng)資源。然而這么多年過去了,大多數(shù)國內(nèi)銀行的主機(jī)用戶仍然利用著系統(tǒng)尚充裕的垂直擴(kuò)展性,保持著近乎極簡的部署模式。不少用戶不分或者極少劃分業(yè)務(wù)群組,在每個(gè)CICS容器中都部署近乎全量的應(yīng)用,并通過外圍路由來區(qū)分不同類型的訪問請求。這樣的做法從積極的意義上,可以認(rèn)為充分利用了系統(tǒng)架構(gòu)的優(yōu)勢,簡化了開發(fā)、部署和運(yùn)維,并通過架構(gòu)的包容性為服務(wù)治理爭取了時(shí)間。然而,人們也應(yīng)該意識到,這樣的架構(gòu)如果平移到另外一個(gè)所謂的分布式應(yīng)用平臺,其結(jié)果將是災(zāi)難的。
毋庸置疑,服務(wù)的治理是一項(xiàng)長治久安的百年大計(jì)。從這個(gè)意義上,微服務(wù)本身并不是解決這個(gè)問題的“一招鮮”。微服務(wù)或者巨石作為兩種不同風(fēng)格的架構(gòu),從長遠(yuǎn)來講是可以共生共存的,更何況在二者之間還有廣闊的地帶。關(guān)鍵是找到彼此最合適的領(lǐng)域。我認(rèn)為在垂直的數(shù)字化場景這個(gè)領(lǐng)域中,可以嘗試在新的數(shù)字化堆棧中開展微服務(wù)的嘗試。當(dāng)然這種嘗試也需要找到合適的抓手,不可僵化套用。比如,在一些大型企業(yè)的實(shí)踐中,先通過無狀態(tài)的彈性應(yīng)用去推動新技術(shù)堆棧的發(fā)展,有可能是更加符合現(xiàn)實(shí)訴求的。
最后,通過以上的探討,讓我們嘗試拋出一些架構(gòu)融合的觀察和建議。在傳統(tǒng)經(jīng)典的技術(shù)堆棧(如基于IBM Z)之外,新的技術(shù)堆棧(所謂數(shù)字化雙翼)正在成型,并迅速演變。這些技術(shù)堆棧之間并不能簡單用商業(yè)/開源,集中/分布,傳統(tǒng)/顛覆來進(jìn)行概念化二元對峙的區(qū)分。在各自的發(fā)展路徑上,甚至是可以彼此參照,互相包容,共同進(jìn)化的。
以采納了經(jīng)典主機(jī)作為核心的企業(yè)為例,在實(shí)踐架構(gòu)融合的進(jìn)程中,我們建議:
·以Restful API的方式,將主機(jī)堆棧的應(yīng)用和數(shù)據(jù)資產(chǎn)融入到一個(gè)原生的API環(huán)境中,提供最大的靈活性。
·開辟全新的純API的主機(jī)高速接入/調(diào)出通道,實(shí)現(xiàn)兩個(gè)技術(shù)堆棧的高架合龍。
·繼續(xù)推進(jìn)服務(wù)化改造和優(yōu)化工作。
·推動新的企業(yè)數(shù)字化堆棧建設(shè),找到業(yè)務(wù)和應(yīng)用訴求的突破口。
·頂層布局,總體部署。避免架構(gòu)和技術(shù)堆棧的孤島。共同推動商務(wù)與技術(shù)的協(xié)同進(jìn)化。
在本文開篇時(shí),我們曾經(jīng)簡單談到了在數(shù)字化轉(zhuǎn)型的浪潮中,傳統(tǒng)企業(yè)的復(fù)蘇甚至逆襲。隨著數(shù)字化服務(wù)生態(tài)的飛速演進(jìn),大家也必須看清一些事實(shí)。作為數(shù)字化生態(tài)和流量經(jīng)濟(jì)事實(shí)上的主導(dǎo)者,互聯(lián)網(wǎng)超級巨頭們已經(jīng)實(shí)現(xiàn)了入口壟斷。今天要再構(gòu)建一個(gè)上億級別的超級平臺可能性是非常微小的。隨著超級平臺的入口固化,營銷服務(wù)場景的不斷前置,巨頭們宣稱的“連接一切內(nèi)容和服務(wù)”的策略正在不斷推進(jìn)。今天,經(jīng)濟(jì)生活中各種數(shù)字化的高、低頻場景正在加速演變,愈加依附于超級平臺的入口存在。導(dǎo)流的時(shí)代正在結(jié)束,巨頭們正無孔不入地參與運(yùn)營,并試圖主導(dǎo)分潤。那么行業(yè)細(xì)分領(lǐng)域的傳統(tǒng)企業(yè)必須同心戮力繼續(xù)開拓、深耕垂直細(xì)分領(lǐng)域。殺手級的場景可能比殺手級的平臺更加有現(xiàn)實(shí)意義。今天,傳統(tǒng)企業(yè)的不少數(shù)字化業(yè)務(wù)創(chuàng)新場景還帶有很大的試探性,或者說是為了刷存在感。而從“存在感”進(jìn)化到“獲得感”,我們認(rèn)為只有通過打怪升級、與狼共舞才能實(shí)現(xiàn)。
在這樣的格局下,混合、雙速或者融合的技術(shù)堆棧格局,恰恰是在快速演進(jìn)的業(yè)務(wù)格局中一種“中道”式的自然過程。企業(yè)必須找到實(shí)踐之路,為傳統(tǒng)的業(yè)務(wù)資產(chǎn)提供最穩(wěn)健的保障,同時(shí)為快速的業(yè)務(wù)演進(jìn)提供騰飛的雙翼。在真實(shí)的戰(zhàn)場中參加真實(shí)的戰(zhàn)斗,參與進(jìn)化才有可能順應(yīng)歷史的潮流找到出路。而歷史的演進(jìn),往往是從二元對峙的謬誤中,開啟融合之路。