如果在諸多熱門(mén)云計(jì)算技術(shù)中,諸如容器、微服務(wù)、DevOps、OpenStack 等,找出一個(gè)最火的方向,那么非微服務(wù)莫屬。盡管話題炙手可熱,但對(duì)傳統(tǒng)行業(yè)來(lái)說(shuō),微服務(wù)落地和方法論目前處于起步階段。
日前,拓?fù)渖纾ㄎ⑿牛簍obshe)聯(lián)合數(shù)人云發(fā)布了《微服務(wù)2017年報(bào)告》。本報(bào)告于2017年11月份展開(kāi),從驅(qū)動(dòng)因素、落地現(xiàn)狀、和容器關(guān)系、架構(gòu)體系、未來(lái)趨勢(shì)和落地方法論等方面對(duì)微服務(wù)進(jìn)行了分析。
希望能夠?yàn)?a href=http://m.ylg2400.com/guandian/chuanqizhuanxing/ target=_blank class=infotextkey>傳統(tǒng)企業(yè)微服務(wù)決策、規(guī)劃和實(shí)施提供依據(jù)和解決辦法。
在服務(wù)公開(kāi)中,許多服務(wù)都可以被內(nèi)部獨(dú)立進(jìn)程所限制。如果其中任何一個(gè)服務(wù)需要增加某種功能,那么就必須縮小進(jìn)程范圍。在微服務(wù)架構(gòu)中,只需要在特定的某種服務(wù)中增加所需功能,而不影響整體進(jìn)程。
我們發(fā)現(xiàn)傳統(tǒng)行業(yè)對(duì)IT效率的變革需求是微服務(wù)成長(zhǎng)土壤,業(yè)務(wù)模式創(chuàng)新重塑導(dǎo)致系統(tǒng)更新頻繁、應(yīng)用復(fù)雜度急劇升高,傳統(tǒng)架構(gòu)不堪重負(fù)。微服務(wù)架構(gòu)具有明顯的好處,尤其是在應(yīng)對(duì)復(fù)雜業(yè)務(wù)系統(tǒng)的多變需求方面。
在本次調(diào)研企業(yè)中,每個(gè)月都要進(jìn)行業(yè)務(wù)系統(tǒng)更新的比例占63%,只有不到20%的企業(yè)半年以上更新一次系統(tǒng)。
加快互聯(lián)網(wǎng)+步伐成為許多傳統(tǒng)企業(yè)的必然選擇。業(yè)務(wù)場(chǎng)景、用戶習(xí)慣和行為在迅速變化,許多傳統(tǒng)行業(yè)線上業(yè)務(wù)出現(xiàn)急速增長(zhǎng)。
比如金融行業(yè)的移動(dòng)支付、互聯(lián)網(wǎng)理財(cái)?shù)?,汽車制造行業(yè)的營(yíng)銷、電商、售后服務(wù)等線上業(yè)務(wù)比例迅速提高。IT團(tuán)隊(duì)業(yè)務(wù)開(kāi)發(fā)、迭代都以每月、甚至每周來(lái)計(jì),需要7*24小時(shí)響應(yīng),這些給系統(tǒng)開(kāi)發(fā)和運(yùn)維帶來(lái)極大挑戰(zhàn)。
在IT對(duì)業(yè)務(wù)的響應(yīng)和支撐方面,不同行業(yè)所面臨的困擾略有不同,但總體差異不明顯。
根據(jù)調(diào)研顯示,系統(tǒng)支撐方面排在前四的難題分別為:系統(tǒng)復(fù)雜性越來(lái)越高(28%),運(yùn)維管理復(fù)雜度高,打造一支全棧運(yùn)維團(tuán)隊(duì)困難(26%),線上訪問(wèn)壓力大(19%),設(shè)備采購(gòu)維護(hù)成本高(19%)。
在傳統(tǒng)單體或SOA架構(gòu)下,應(yīng)用如果頻繁升級(jí)更新,開(kāi)發(fā)團(tuán)隊(duì)非常痛苦。企業(yè)的業(yè)務(wù)應(yīng)用經(jīng)過(guò)多年IT建設(shè),系統(tǒng)非常龐大,要改動(dòng)其中任何一小部分,都需要重新部署整個(gè)應(yīng)用,敏捷開(kāi)發(fā)和快速交付無(wú)從談起。
傳統(tǒng)企業(yè)在長(zhǎng)期的IT建設(shè)過(guò)程中,通常大量使用外包團(tuán)隊(duì),這導(dǎo)致采用的技術(shù)棧之間差異較大,統(tǒng)一管控和運(yùn)維要求更高。需要運(yùn)維7*24小時(shí)全天候值守、在線升級(jí),并快速響應(yīng)。
在此時(shí)脫穎而出的微服務(wù)技術(shù),面對(duì)上述困惑幾乎渾身優(yōu)點(diǎn):獨(dú)立開(kāi)發(fā)、獨(dú)立部署、獨(dú)立發(fā)布,去中心化管理,支持高并發(fā)高可用,支持豐富技術(shù)棧,企業(yè)可以根據(jù)需要靈活技術(shù)選型。
1.微服務(wù)客戶畫(huà)像
微服務(wù)架構(gòu)在企業(yè)的使用情況可以分為四個(gè)層次:初級(jí)使用者、輕度使用者、中度使用者、以及重度使用者。
初級(jí)使用者基本是傳統(tǒng)架構(gòu),獨(dú)立部署需求不突出,技術(shù)堆棧不成熟,需要較長(zhǎng)的培育和成長(zhǎng)期。
輕度使用的企業(yè)邊緣業(yè)務(wù)系統(tǒng)開(kāi)始使用Spring Boot 或Spring Cloud等框架,但組件的使用尚不熟練。
中度使用者為使用Dubbo或Spring cloud時(shí)間較長(zhǎng),但還沒(méi)有做周邊配套的工具鏈。
重度使用者是那些走在微服務(wù)架構(gòu)改造前沿,具備微服務(wù)規(guī)劃和體系,有自己研發(fā)實(shí)力的企業(yè),通常是以技術(shù)見(jiàn)長(zhǎng)的大型互聯(lián)網(wǎng)公司。
2.15% 左右的調(diào)研企業(yè)引入了SpringCloud、Dubbo等微服務(wù)主流開(kāi)發(fā)框架。
此次調(diào)研中,6%的企業(yè)已經(jīng)部分引入了Spring Cloud 開(kāi)發(fā)框架,Spring Cloud 也被開(kāi)發(fā)者認(rèn)為是最好的開(kāi)發(fā)框架。
另外,9%的受訪企業(yè)采用了 Dubbo 等其他微服務(wù)框架,也就是說(shuō)引入了或考慮引入微服務(wù)架構(gòu)的企業(yè)達(dá)15%。
此外,還有51%以上的企業(yè)在考慮往云原生方向轉(zhuǎn)型。這是由于企業(yè)數(shù)字化轉(zhuǎn)型背景下,IT要更好適應(yīng)線上業(yè)務(wù)趨勢(shì)的必然要求。加上國(guó)家政策層面對(duì)云服務(wù)的支持,傳統(tǒng)企業(yè)云化是大勢(shì)所趨。
3.微服務(wù)四大技術(shù)優(yōu)勢(shì)受青睞
從IT技術(shù)發(fā)展趨勢(shì)看,無(wú)論硬件、軟件、還是基礎(chǔ)架構(gòu)都在朝著輕量化的方向發(fā)展。微服務(wù)通過(guò)化整為零的概念,將復(fù)雜的IT部署分解成更小、更獨(dú)立的微服務(wù)。
相對(duì)傳統(tǒng)的建設(shè)方法,傳統(tǒng)企業(yè)更看重微服務(wù)如下四方面的優(yōu)勢(shì):技術(shù)選型靈活,更輕松采用新架構(gòu)和語(yǔ)言(28%)降低系統(tǒng)內(nèi)部服務(wù)冗余,提升開(kāi)發(fā)效率(27%)獨(dú)立部署(22%)更好的容錯(cuò)機(jī)制(20%)
在涉及復(fù)雜項(xiàng)目時(shí),和單體架構(gòu)的對(duì)比中,微服務(wù)從多個(gè)角度顯示出了壓倒性的優(yōu)勢(shì)。
4.制造業(yè)開(kāi)始發(fā)力、金融小試牛刀
這里所說(shuō)制造業(yè),是大制造的概念,包括制造、汽車、大型制造以及航空業(yè)等。從調(diào)研數(shù)據(jù)來(lái)看,這些行業(yè)引入Spring Cloud、Dubbo等微服務(wù)開(kāi)發(fā)框架的占比略高于其他行業(yè),超過(guò)15%。制造業(yè)開(kāi)始初步嘗試微服務(wù)架構(gòu)。
能看出制造業(yè)向“智造”轉(zhuǎn)型的影響,今天的制造業(yè)結(jié)合了物聯(lián)網(wǎng)、傳感器、云計(jì)算、大數(shù)據(jù)等技術(shù),人工智能技術(shù)正在工業(yè)、汽車駕駛等領(lǐng)域應(yīng)用。大量新興業(yè)務(wù)場(chǎng)景出現(xiàn),服務(wù)變得復(fù)雜,產(chǎn)業(yè)的彎道超車帶來(lái)了明顯的微服務(wù)需求。
其次,需求明顯的為金融行業(yè),包括銀行、保險(xiǎn)、證券等。尤其是一些國(guó)有銀行、股份制銀行以及城商行等大行都走在架構(gòu)改造的前列。
在自己的創(chuàng)新業(yè)務(wù),如手機(jī)銀行、微信銀行、互聯(lián)網(wǎng)理財(cái)?shù)葮I(yè)務(wù)上試水微服務(wù)架構(gòu)。在核心業(yè)務(wù)系統(tǒng)方面,則相當(dāng)謹(jǐn)慎。一方面是由于監(jiān)管和政策的原因,另一方面,銀行開(kāi)發(fā)體系龐大,IT架構(gòu)變革將是一件非常復(fù)雜的事情。
5.微服務(wù)推進(jìn)障礙
微服務(wù)不是完美架構(gòu),會(huì)帶來(lái)系統(tǒng)的各種復(fù)雜度,以及運(yùn)維要求更高等諸多難點(diǎn)
微服務(wù)并不是一項(xiàng)橫空出世的技術(shù),事實(shí)上MicroService的概念已經(jīng)誕生多年。除了組件和技術(shù)不成熟,企業(yè)業(yè)務(wù)模式不急迫的因素外,微服務(wù)本身也有自己的劣勢(shì)。
本次調(diào)研,有近一半的企業(yè)會(huì)談到對(duì)微服務(wù)的顧慮。比如部署以后的復(fù)雜度,后期運(yùn)維管理的不友好等等。對(duì)于團(tuán)隊(duì)來(lái)說(shuō),搭建微服務(wù)架構(gòu)上手難,運(yùn)維效率低,運(yùn)維成本高。
另外,還可能帶來(lái)團(tuán)隊(duì)之間溝通上的沖突,微服務(wù)需要與DevOps同步推進(jìn)。微服務(wù)被分割成一個(gè)個(gè)獨(dú)立的業(yè)務(wù)模塊后,服務(wù)間通信接口設(shè)計(jì)非常重要。如何科學(xué)地將系統(tǒng)部署到服務(wù)器上,保證各個(gè)服務(wù)高效運(yùn)行,更是難點(diǎn)。
微服務(wù)推進(jìn)過(guò)程中有許多障礙。對(duì)微服務(wù)自身復(fù)雜度的擔(dān)憂、缺少具備相關(guān)經(jīng)驗(yàn)的專家、難以招募專業(yè)人才和使用相關(guān)工具是三個(gè)最普遍的障礙。其中對(duì)微服務(wù)復(fù)雜度的顧慮,排名前三的是運(yùn)維要求和成本高,分布式架構(gòu)的網(wǎng)絡(luò)延遲、容錯(cuò)等挑戰(zhàn),以及較強(qiáng)的部署依賴性。
在接受調(diào)研的企業(yè)中,2017年在生產(chǎn)環(huán)境中采用Docker的比例為9%,測(cè)試環(huán)境使用達(dá)22%。而且規(guī)模越大的企業(yè),尤其是服務(wù)器規(guī)模在500臺(tái)以上的,是Docker容器的主要采用者。
另外,正在考慮評(píng)估中的占到被調(diào)研企業(yè)的一半以上。企業(yè)的關(guān)注度急劇升高,Docker使用正在快速普及。
容器和微服務(wù)相輔相成,兩大技術(shù)成熟的時(shí)間點(diǎn)非常契合。容器技術(shù)的成熟為微服務(wù)提供了得天獨(dú)厚的客觀條件。輕量化的容器是微服務(wù)的最佳運(yùn)行環(huán)境,微服務(wù)應(yīng)用只有在容器環(huán)境下才能保障運(yùn)維效率的提升。
同時(shí),微服務(wù)應(yīng)用架構(gòu)對(duì)外在組件的管理會(huì)變得困難,需要用容器平臺(tái)去管理中間件,才能發(fā)揮出更大價(jià)值。
1.企業(yè)微服務(wù)架構(gòu)改造需要包括周邊配套工具鏈在內(nèi)的一整套微服務(wù)體系
采用微服務(wù)架構(gòu)改造應(yīng)用系統(tǒng),不僅僅是選擇開(kāi)發(fā)框架本身,還要建設(shè)一套完整的體系架構(gòu)。既要實(shí)現(xiàn)應(yīng)用模塊之間的解耦,還要實(shí)現(xiàn)統(tǒng)一管理。
微服務(wù)化體系,包括開(kāi)發(fā)框架、以及周邊配套工具鏈和組件,比如服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、API網(wǎng)關(guān)、負(fù)載均衡、服務(wù)治理、配置中心、安全管理、與容器的結(jié)合、監(jiān)控管理等等。一整套的體系建設(shè)是微服務(wù)真正的難點(diǎn)所在。
落地過(guò)程中,受訪企業(yè)關(guān)注的功能包括,API網(wǎng)關(guān)(33%)、服務(wù)治理(27%)、配置中心(21%)、分布式任務(wù)調(diào)度(17%)、應(yīng)用監(jiān)控與報(bào)警(11%)、高并發(fā)(7%)等。這些組件可以根據(jù)自身的業(yè)務(wù)特性選擇使用。
2.微服務(wù)落地方法論:咨詢+產(chǎn)品工具+實(shí)施
在IT建設(shè)中,企業(yè)都希望將開(kāi)發(fā)人員的精力放在自身業(yè)務(wù)系統(tǒng)的開(kāi)發(fā)上,而工具的整合和使用則主要借助外部供應(yīng)商的力量來(lái)做。軟件外包商都有自己的發(fā)展歷程,迅速改變技術(shù)架構(gòu)不太現(xiàn)實(shí)。
另外,傳統(tǒng)企業(yè)都有大量原有IT系統(tǒng),掉頭和轉(zhuǎn)向不可能丟掉歷史包袱,全部推翻重新建設(shè)。因此,企業(yè)一方面有架構(gòu)之痛,另一方面不得不總是在業(yè)務(wù)系統(tǒng)快速上線和新架構(gòu)選擇之間平衡。
對(duì)于企業(yè)來(lái)說(shuō),最實(shí)際的微服務(wù)落地路徑是,首先納入微服務(wù)咨詢,引入外部行業(yè)技術(shù)專家角色,站在企業(yè)架構(gòu)的總體高度,幫助企業(yè)進(jìn)行微服務(wù)體系規(guī)劃,落地roadmap,然后借助一些產(chǎn)品和工具進(jìn)行落地實(shí)施。
在本次調(diào)研中,有的企業(yè)鑒于微服務(wù)的優(yōu)勢(shì)和業(yè)務(wù)快速變化的需要,會(huì)在新項(xiàng)目建設(shè)時(shí)直接選擇微服務(wù)架構(gòu)進(jìn)行開(kāi)發(fā),落地方法也不例外。
3、企業(yè)踐行微服務(wù)的三種類型
目前微服務(wù)落地的企業(yè)可以分為:溫柔型的變革者、業(yè)務(wù)倒逼型的強(qiáng)硬者、觀望型的探索者。
具體來(lái)說(shuō),溫柔的變革者從邊緣非核心業(yè)務(wù)探索嘗試新興技術(shù)。漸進(jìn)式實(shí)施、創(chuàng)新靈活多變業(yè)務(wù)是這類型客戶微服務(wù)切入的關(guān)鍵詞。也是大部分傳統(tǒng)企業(yè)在切入微服務(wù)時(shí),選擇的路徑。
本次參與調(diào)研的企業(yè)多是如此,在切入微服務(wù)時(shí),選擇了諸如測(cè)試流程、API網(wǎng)關(guān)、開(kāi)發(fā)平臺(tái)升級(jí)、測(cè)試環(huán)境快速部署等非核心業(yè)務(wù)進(jìn)行技術(shù)驗(yàn)證。
業(yè)務(wù)倒逼型是那些企業(yè)核心業(yè)務(wù)系統(tǒng)在日常支撐中承受著巨大壓力,必須進(jìn)行架構(gòu)改造,否則業(yè)務(wù)運(yùn)轉(zhuǎn)舉步維艱。觀望型的探索者,是那些出于業(yè)務(wù)考量,要看到行業(yè)標(biāo)桿案例,明確收益和價(jià)值,以及技術(shù)風(fēng)險(xiǎn)和可靠性充分把握的情況下,才會(huì)投入資源開(kāi)始改造。
4.微服務(wù)落地需要從上到下推動(dòng)和密切團(tuán)隊(duì)協(xié)同
微服務(wù)應(yīng)用的構(gòu)建依賴組織結(jié)構(gòu)的變化,它按照業(yè)務(wù),而不是技術(shù)來(lái)劃分組織,在推進(jìn)過(guò)程中會(huì)受到從上到下的壓力,因此必須有決策層的支持和推動(dòng)。同時(shí),需要團(tuán)隊(duì)更好的協(xié)同,小團(tuán)隊(duì)作戰(zhàn),打破團(tuán)隊(duì)間的高墻,減少溝通成本。上了微服務(wù)的受訪企業(yè)對(duì)搭建一支敏捷團(tuán)隊(duì)都感受很迫切。
預(yù)計(jì)兩年內(nèi)服務(wù)網(wǎng)格技術(shù)將呈現(xiàn)爆發(fā)之勢(shì)
本次的受訪者中,有42%表示聽(tīng)說(shuō)過(guò) ServiceMesh 這一新興技術(shù)理念,但只有6%的受訪者對(duì)該技術(shù)有過(guò)一些研究。
微服務(wù)帶來(lái)的復(fù)雜度讓企業(yè)頭疼,尤其是服務(wù)間通信,如何保證服務(wù)間通信的端到端性能和可靠性,催生了下一代微服務(wù)Service mesh。2017年,ServiceMesh 經(jīng)過(guò)技術(shù)擁躉、技術(shù)社區(qū)和媒體的反復(fù)布道,迅速被業(yè)界了解。
Service Mesh 是服務(wù)間通信層,可以提供安全、快速、可靠的服務(wù)間通訊。在過(guò)去的一年中,Service Mesh 已經(jīng)成為微服務(wù)技術(shù)棧里的一個(gè)關(guān)鍵組件,被譽(yù)為“下一代微服務(wù)”。
Conduit、Istio 等Service Mesh技術(shù)在市場(chǎng)上已形成激烈的競(jìng)爭(zhēng),國(guó)內(nèi)外企業(yè)開(kāi)始紛紛站隊(duì)。國(guó)外,一些有高負(fù)載業(yè)務(wù)流量的公司都在他們的生產(chǎn)應(yīng)用里加入了Service Mesh。
國(guó)內(nèi)前沿技術(shù)公司開(kāi)始圍繞SpringCloud等開(kāi)發(fā)體系,為客戶提供成熟的解決方案和工具產(chǎn)品。同時(shí),探索基于 ServiceMesh 的新方案,積極擁抱Istio/Conduit。
當(dāng)然對(duì)于傳統(tǒng)企業(yè)來(lái)說(shuō),技術(shù)的先進(jìn)性是為了保障業(yè)務(wù)需求的快速變化和發(fā)展,而不是一味追求新興。受訪企業(yè)表示,一方面會(huì)主動(dòng)關(guān)注新技術(shù)的最新動(dòng)向,另一方面在考慮落地時(shí),也要關(guān)注新技術(shù)的可靠性和有例可循,有無(wú)業(yè)界最佳實(shí)踐背書(shū)。
微服務(wù)的核心使命是簡(jiǎn)化開(kāi)發(fā),提高IT系統(tǒng)對(duì)業(yè)務(wù)的支撐能力。通過(guò)本次調(diào)研,我們可以得出如下一些結(jié)論:
1.傳統(tǒng)行業(yè)新興業(yè)務(wù)對(duì)IT效率的變革需求,業(yè)務(wù)模式創(chuàng)新重塑要求IT快速響應(yīng),是今天微服務(wù)炙手可熱的主要驅(qū)動(dòng)因素。從目前微服務(wù)落地的狀態(tài)預(yù)估有兩年左右的培育和成長(zhǎng)期。
評(píng)估一家企業(yè)是否需要上微服務(wù),主要考察這五大關(guān)鍵要素:數(shù)據(jù)量和業(yè)務(wù)復(fù)雜度,團(tuán)隊(duì)規(guī)模,應(yīng)對(duì)業(yè)務(wù)流量變化,是否需要足夠的容錯(cuò)容災(zāi),以及功能重復(fù)度和差錯(cuò)成本。
2. 實(shí)施微服務(wù)的理想技術(shù)條件包括:進(jìn)程隔離、數(shù)據(jù)庫(kù)表隔離,以及通過(guò)公開(kāi)接口訪問(wèn)。
3. 微服務(wù)架構(gòu)在企業(yè)的使用可以分為四個(gè)層次:初級(jí)使用者、輕度使用者、中度使用者,以及重度使用者。
以技術(shù)見(jiàn)長(zhǎng)的大型互聯(lián)網(wǎng)公司首先引領(lǐng)了微服務(wù)的風(fēng)潮,國(guó)內(nèi)制造、金融等大型龍頭企業(yè)中也有佼佼者開(kāi)始規(guī)劃微服務(wù)體系,且具備較強(qiáng)的研發(fā)實(shí)力。大部分企業(yè)還處在初步嘗試,不成體系,尋找技術(shù)和專家力量探討解決方案的階段。
4. 微服務(wù)和容器共生:容器和微服務(wù)相輔相成,天生一對(duì)。Docker的成熟,讓微服務(wù)推廣和落地更加可靠、方便。隨著Docker和微服務(wù)架構(gòu)組件等相關(guān)技術(shù)的逐步成熟,微服務(wù)架構(gòu)將逐步落地傳統(tǒng)企業(yè)。
5. 微服務(wù)落地方法論:微服務(wù)主要用來(lái)解決系統(tǒng)的復(fù)雜性問(wèn)題,企業(yè)客戶對(duì)于如何實(shí)施微服務(wù)并不清晰,同時(shí)有諸多顧慮。受企業(yè)客戶青睞的落地方法是:微服務(wù)咨詢+產(chǎn)品工具+實(shí)施。
6. 微服務(wù)落地策略:微服務(wù)正成為許多企業(yè)構(gòu)建應(yīng)用時(shí)的首選。微服務(wù)并不缺乏受眾,有的企業(yè)將微服務(wù)用于新應(yīng)用開(kāi)發(fā),有的關(guān)注將單體應(yīng)用遷移到微服務(wù)架構(gòu)。
微服務(wù)改造循序漸進(jìn),快速演化只會(huì)適得其反。另外,落地過(guò)程中注意開(kāi)發(fā)和運(yùn)維部門(mén)的協(xié)同,進(jìn)行組織內(nèi)管理創(chuàng)新。