所謂數(shù)字化轉(zhuǎn)型升級(jí),就是以數(shù)字技術(shù)優(yōu)化傳統(tǒng)資源,企業(yè)需要謹(jǐn)慎地選擇合適的技術(shù)逐步完成自己的數(shù)字化戰(zhàn)略。以IronCloud微服務(wù)云為代表,云計(jì)算公司正在微服務(wù)領(lǐng)域發(fā)力,促進(jìn)企業(yè)數(shù)字化創(chuàng)新。那么,微服務(wù)對(duì)數(shù)字化轉(zhuǎn)型意味著什么?傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型為什么一定要引入微服務(wù)?
微服務(wù)是什么
所謂微服務(wù)架構(gòu),根據(jù)微服務(wù)架構(gòu)大神Martin Fowler的描述,就是以業(yè)務(wù)域或業(yè)務(wù)功能為邊界,將一個(gè)大而全的應(yīng)用拆分為可以獨(dú)立開(kāi)發(fā)、獨(dú)立部署、獨(dú)立測(cè)試、獨(dú)立運(yùn)行的一組小的應(yīng)用,并且使用輕量級(jí),通用的機(jī)制在這組應(yīng)用間進(jìn)行通信。簡(jiǎn)而言之,微服務(wù)就是把一個(gè)大型系統(tǒng)分割成多個(gè)小而自治的系統(tǒng),這體現(xiàn)了一種化整為零的思想(分治),實(shí)現(xiàn)業(yè)務(wù)、數(shù)據(jù)和物理資源的分散化管理。“服務(wù)”與傳統(tǒng)的“組件”很相似,都是構(gòu)造軟件的“零部件”。以傳統(tǒng)軟件研發(fā)的視角來(lái)看,微服務(wù)的就是傳統(tǒng)組件技術(shù)在云端以插件化形式的自然映射。當(dāng)然,微服務(wù)圍繞業(yè)務(wù)分工的粒度更細(xì),整個(gè)分布式系統(tǒng)的協(xié)作也更為復(fù)雜。
與微服務(wù)架構(gòu)相對(duì)應(yīng)的是單體架構(gòu),單體架構(gòu)的特點(diǎn)是組件高度耦合導(dǎo)致開(kāi)發(fā)部署效率低、單體結(jié)構(gòu)導(dǎo)致可用性差、單體部署導(dǎo)致彈性缺失,微服務(wù)架構(gòu)則具備迭代更快(各模塊獨(dú)立開(kāi)發(fā)、部署)、質(zhì)量更好(去雪崩效應(yīng),秒級(jí)恢復(fù))、應(yīng)對(duì)爆發(fā)(架構(gòu)到資源全彈性伸縮)等優(yōu)勢(shì),可以快速響應(yīng)業(yè)務(wù)需求,靈活應(yīng)對(duì)業(yè)務(wù)峰值,實(shí)現(xiàn)業(yè)務(wù)服務(wù)永不宕機(jī)。
微服務(wù)在互聯(lián)網(wǎng)行業(yè)的作用
無(wú)論國(guó)內(nèi)外,微服務(wù)技術(shù)在互聯(lián)網(wǎng)公司快速發(fā)展的過(guò)程中已經(jīng)發(fā)揮了重要的作用。國(guó)外早期的代表是Netflix公司,在2008年因?yàn)槿景c瘓被迫停業(yè)3天后,Netflix痛下決心進(jìn)行服務(wù)化架構(gòu)改造,經(jīng)過(guò)將近10年的努力,該公司實(shí)現(xiàn)了從單體架構(gòu)到微服務(wù)化的變遷,支撐了業(yè)務(wù)的千倍增長(zhǎng),并產(chǎn)生了一系列的最佳實(shí)踐,開(kāi)源了大量的微服務(wù)工具。
國(guó)內(nèi)的如隨行付,日活迅速增長(zhǎng)到千萬(wàn)級(jí),這項(xiàng)電商業(yè)務(wù)面臨快速迭代和高并發(fā)的挑戰(zhàn),經(jīng)過(guò)不斷的服務(wù)化改造,拆分成了400多個(gè)工程,不僅實(shí)現(xiàn)了618、雙11所需的彈性擴(kuò)容,產(chǎn)品迭代次數(shù)也從每天2次變更到每天1000次變更的飛躍,并且IronCloud微服務(wù)平臺(tái)的服務(wù)治理、自動(dòng)化測(cè)試、APM等工具的支持下,軟件產(chǎn)品質(zhì)量提升了52%。
傳統(tǒng)行業(yè)CIO需要微服務(wù)嗎
來(lái)自互聯(lián)網(wǎng)的最佳實(shí)踐,是否符合傳統(tǒng)企業(yè)業(yè)務(wù)的需求,這是CIO思考的問(wèn)題。一些傳統(tǒng)企業(yè)核心業(yè)務(wù)上云動(dòng)力不足,就在于這些業(yè)務(wù)在集中式架構(gòu)上運(yùn)行穩(wěn)定,遷移到分布式架構(gòu)沒(méi)有價(jià)值,反而要承擔(dān)遷移的風(fēng)險(xiǎn)。但微服務(wù)不同,從企業(yè)內(nèi)部來(lái)看,采用不同技術(shù)建設(shè)的孤立的信息化系統(tǒng)需要有效整合,此前傳統(tǒng)的基于ESB(企業(yè)服務(wù)總線)的SOA的嘗試,本質(zhì)上就是要解決企業(yè)內(nèi)部異構(gòu)系統(tǒng)集成的問(wèn)題,只是粗粒度的服務(wù)和復(fù)雜低效的通信方式使得SOA難以大規(guī)模應(yīng)用,而微服務(wù)架構(gòu)采用輕量的API調(diào)用服務(wù),經(jīng)過(guò)了互聯(lián)網(wǎng)公司大規(guī)模業(yè)務(wù)的驗(yàn)證,不存在類似的問(wèn)題。
更好的機(jī)遇是,當(dāng)前互聯(lián)網(wǎng)公司已經(jīng)在實(shí)踐中形成了成熟的微服務(wù)工具平臺(tái),可以幫助傳統(tǒng)企業(yè)解決微服務(wù)化的各種挑戰(zhàn)。例如,IronCloud微服務(wù)云(ironz.com)是一套面向微服務(wù)化架構(gòu)的基礎(chǔ)設(shè)施,重點(diǎn)解決微服務(wù)管理、注冊(cè)發(fā)現(xiàn)、服務(wù)治理、應(yīng)用性能監(jiān)控和鏈路跟蹤等問(wèn)題,是許多產(chǎn)品微服務(wù)化架構(gòu)的基礎(chǔ),該平臺(tái)已經(jīng)產(chǎn)品化,應(yīng)用于各個(gè)行業(yè)。
從外部因素來(lái)看,數(shù)字化的沖擊和業(yè)務(wù)創(chuàng)新的需求是不可避免的,傳統(tǒng)IT對(duì)創(chuàng)新支撐不足也無(wú)需爭(zhēng)議,微服務(wù)架構(gòu)支持更快的響應(yīng)與上線速度、資源與應(yīng)用的全面彈性伸縮、應(yīng)用服務(wù)的高可用、細(xì)粒度的資源配置等能力,正是企業(yè)探索創(chuàng)新業(yè)務(wù)、應(yīng)對(duì)需求不明確的挑戰(zhàn)的必備能力。另一方面,大型互聯(lián)網(wǎng)公司對(duì)產(chǎn)業(yè)互聯(lián)網(wǎng)的探索,也倒逼傳統(tǒng)行業(yè)重新思考敏捷迭代、DevOps的軟件工程,對(duì)接到互聯(lián)網(wǎng)業(yè)務(wù),以維持企業(yè)的行業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì)。將應(yīng)用拆分成多個(gè)很小的微服務(wù)之后,CIO可以讓小團(tuán)隊(duì)在幾周或者幾天內(nèi)開(kāi)發(fā)、測(cè)試和部署一些新特性,并在測(cè)試結(jié)束后以最快的速度投入生產(chǎn),加速創(chuàng)業(yè)業(yè)務(wù)孵化,而在傳統(tǒng)單體架構(gòu)下,新版本的發(fā)布是不可能這么容易實(shí)現(xiàn)的。
所以,當(dāng)前CIO需要思考如何將微服務(wù)引入現(xiàn)有的IT體系。事實(shí)上,Gartner于2014年就提出了“雙模IT”的理念,不少CIO雖然對(duì)于這個(gè)概念并不敏感,卻出于業(yè)務(wù)發(fā)展需要,自然而然地形成了雙模IT的部署,穩(wěn)態(tài)面向核心業(yè)務(wù),支撐企業(yè)業(yè)務(wù)穩(wěn)定、可靠、低成本的運(yùn)行,敏態(tài)面向互聯(lián)網(wǎng)業(yè)務(wù)需求,解決增量的問(wèn)題。根據(jù)Gartner的調(diào)研數(shù)據(jù),目前私有云的應(yīng)用方向之一是True Cloud,不同于用虛擬化+自動(dòng)化的方式把傳統(tǒng)應(yīng)用遷移到私有云的Cloud-Inspired模式,使用True Cloud模式的用戶主要利用開(kāi)源與互聯(lián)網(wǎng)相關(guān)的技術(shù)構(gòu)建類公有云的私有云,特點(diǎn)是敏捷、快速交付、快速迭代,能夠應(yīng)對(duì)未知的需求。目前,這類私有云用戶占到了15%。