足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

“微服務(wù)并不是一切”:Fred George談?wù)摷夹g(shù)性、流程性與組織性障礙
2016-03-02 17:50:11   來(lái)源:Daniel Bryant ,譯者 邵思華   評(píng)論:0 點(diǎn)擊:

在microXchg 2016大會(huì)上,F(xiàn)red George進(jìn)行了一場(chǎng)主題為“微服務(wù)并不是一切”(It’s Not Just Microservices)的演講。他在演講中表示,微服務(wù)確實(shí)能夠幫助組織“發(fā)展得更快”,并快速地交付商業(yè)價(jià)值。但他認(rèn)為, 微服務(wù)的實(shí)現(xiàn)本身并不會(huì)帶來(lái)成功,必須找到在技術(shù)、流程和組織等方面對(duì)業(yè)務(wù)的敏捷性增長(zhǎng)造成阻礙的原因,并沖破這些阻礙。

在microXchg 2016大會(huì)上,F(xiàn)red George進(jìn)行了一場(chǎng)主題為“微服務(wù)并不是一切”(It’s Not Just Microservices)的演講。他在演講中表示,微服務(wù)確實(shí)能夠幫助組織“發(fā)展得更快”,并快速地交付商業(yè)價(jià)值。但他認(rèn)為, 微服務(wù)的實(shí)現(xiàn)本身并不會(huì)帶來(lái)成功,必須找到在技術(shù)、流程和組織等方面對(duì)業(yè)務(wù)的敏捷性增長(zhǎng)造成阻礙的原因,并沖破這些阻礙。

George是Fred George Consulting公司的首席顧問(wèn),他在演講的開(kāi)頭部分首先表示,當(dāng)前業(yè)界存在著許多“熱門(mén)話題”,例如微服務(wù)、Docker和精益創(chuàng)業(yè),這些話題都是圍繞著更快地交付商業(yè)價(jià)值的意愿而展開(kāi)的。通過(guò)對(duì)于Cynefin框架的引用可以發(fā)現(xiàn),許多組織所開(kāi)展的業(yè)務(wù)是非常復(fù)雜的,由于這種復(fù)雜性,而無(wú)法確定因果關(guān)系,并且“目前有效的做法未必今后也同樣有效”。因此,如果期望在應(yīng)對(duì)這種復(fù)雜性時(shí)能夠做到“更快地發(fā)展”,就必須找到在技術(shù)、流程以及組織方面的發(fā)展障礙并消除他們。

George引入了技術(shù)性障礙這一概念,為了詳細(xì)地討論這一問(wèn)題,他首先對(duì)“硅谷科技”的爆炸式發(fā)展進(jìn)行了探索。在硅谷地區(qū),有大量成功的商業(yè)組織充分地應(yīng)用了云計(jì)算、專(zhuān)用數(shù)據(jù)庫(kù)、開(kāi)源框架與持續(xù)發(fā)布等技術(shù),這就讓其他組織開(kāi)始反思,是否他們自身在技術(shù)方面的選擇阻礙了他們的發(fā)展。尤其值得一提的是,如果組織將應(yīng)用程序的部署從數(shù)據(jù)中心的裸機(jī)遷移至虛擬化的云平臺(tái)以及基于容器的環(huán)境,那么就能夠減少硬件的交付周期,進(jìn)而縮短了應(yīng)用的部署周期,這種差別往往是指數(shù)級(jí)的。

George認(rèn)為,由于硬件的交付周期縮短,再加上現(xiàn)代化的硬件平臺(tái)具有更好的靈活性,這將促進(jìn)服務(wù)設(shè)計(jì)的發(fā)展。久而久之,IT產(chǎn)業(yè)的革新者逐漸開(kāi)始從單一的一體性應(yīng)用轉(zhuǎn)變?yōu)橛啥鄠€(gè)大尺度的面向服務(wù)架構(gòu)(SOA)組成的服務(wù)。這一趨勢(shì)最終演變?yōu)橛啥鄠€(gè)小規(guī)模的單一職責(zé)(微)服務(wù)所組成的系統(tǒng),由此帶來(lái)了簡(jiǎn)化代碼變更、縮小迭代規(guī)模以及更快的實(shí)踐等優(yōu)點(diǎn)。

通過(guò)不斷發(fā)展的技術(shù),我們將能夠創(chuàng)建松耦合、高性能的應(yīng)用架構(gòu),例如使用(利用Kafka等技術(shù))持久化事件總線,并通過(guò)一個(gè)輕量級(jí)的消息代理(messaging broker)以減少對(duì)于核心事件總線(通過(guò)ZeroMQ等技術(shù)實(shí)現(xiàn))的讀操作的負(fù)載。在同樣由George所主持的另一場(chǎng)演講“實(shí)現(xiàn)微服務(wù)所面臨的挑戰(zhàn)”(Challenges in Implementing Microservices)中,他還將對(duì)這一概念進(jìn)行進(jìn)一步的探索。

George為聽(tīng)眾舉了一個(gè)車(chē)輛租賃業(yè)務(wù)領(lǐng)域方面的應(yīng)用示例,該應(yīng)用通過(guò)某個(gè)服務(wù)向事件總線發(fā)送一條消息,基于客戶的數(shù)據(jù)發(fā)起一條租賃報(bào)價(jià)請(qǐng)求。而其他服務(wù)則能夠?qū)υ撜?qǐng)求發(fā)出出價(jià)的回復(fù)。通過(guò)這種松耦合、異步消息驅(qū)動(dòng)的架構(gòu),就可以輕松地添加新的出價(jià)服務(wù)(例如某個(gè)開(kāi)發(fā)者認(rèn)為他們實(shí)現(xiàn)了一種改進(jìn)型的出價(jià)算法),并且由于單一的出價(jià)服務(wù)不會(huì)造成整個(gè)系統(tǒng)出錯(cuò)的漣漪效果,從而也提升了系統(tǒng)的容錯(cuò)能力。

在關(guān)于如何緩解技術(shù)性障礙的討論的總結(jié)陳詞中,George提出了開(kāi)源所帶來(lái)的爆炸性?xún)?yōu)勢(shì),如果組織無(wú)視一些現(xiàn)有的技術(shù),例如Netflix OSS技術(shù)棧或Docker,那么就可能會(huì)將資源浪費(fèi)在開(kāi)發(fā)自有平臺(tái)上。此外,George還表示,對(duì)于某些用例來(lái)說(shuō),函數(shù)式語(yǔ)言或許能夠成為解決問(wèn)題的“銀彈”。他提到了一個(gè)有趣的案例,某組織將一個(gè)包含13萬(wàn)行代碼的Java遺留應(yīng)用重寫(xiě)為基于Clojure的應(yīng)用,僅用了4千行代碼。

在演講的下半部分,George討論了如何緩解流程上的障礙,而解決這一問(wèn)題的關(guān)鍵在于首先要理解組織所開(kāi)展的業(yè)務(wù)。對(duì)于明顯或有一定復(fù)雜度的項(xiàng)目,可以通過(guò)傳統(tǒng)結(jié)構(gòu)的軟件開(kāi)發(fā)方式應(yīng)對(duì)。但對(duì)于高復(fù)雜的問(wèn)題則必須采用不同的策略。傳統(tǒng)的“瀑布”模型的做法是在項(xiàng)目開(kāi)始時(shí)為開(kāi)發(fā)團(tuán)隊(duì)創(chuàng)建一個(gè)需求列表并進(jìn)行任務(wù)分解,這種方式并不適合于處理復(fù)雜的問(wèn)題領(lǐng)域,而應(yīng)當(dāng)采用“由實(shí)踐驅(qū)動(dòng)創(chuàng)新”的方式,開(kāi)發(fā)者應(yīng)該轉(zhuǎn)而關(guān)注于“特性”層面,而不是繼續(xù)停留在任務(wù)層面。

項(xiàng)目干系人應(yīng)當(dāng)直接與開(kāi)發(fā)者討論需要達(dá)成的業(yè)務(wù)目的、如何評(píng)價(jià)業(yè)務(wù)的成功,并且清晰地指出開(kāi)發(fā)團(tuán)隊(duì)可以選擇的“手段”。這一過(guò)程的關(guān)鍵在于“衡量重要的指標(biāo)”,避免使用一些無(wú)用的指標(biāo),例如“代碼行數(shù)”以及“完成的里程碑”,而應(yīng)當(dāng)使用一些專(zhuān)注于業(yè)務(wù)的指標(biāo),例如銷(xiāo)售量、點(diǎn)擊次數(shù)以及客戶保留率等等。

在George談?wù)撊绾尉徑饨M織性障礙的開(kāi)始,他提出了一點(diǎn)建議,即應(yīng)當(dāng)避免開(kāi)發(fā)團(tuán)隊(duì)任務(wù)的過(guò)度專(zhuān)業(yè)化。他發(fā)現(xiàn),雖然理論上專(zhuān)職人員具有更好的生產(chǎn)力,但往往會(huì)受到過(guò)多的溝通與不均衡的工作安排的干擾,由此造成了工作的堆積與延誤。George為聽(tīng)眾展示了某個(gè)組織的工作過(guò)度專(zhuān)業(yè)化的學(xué)習(xí)案例,他同時(shí)認(rèn)為:各種漂亮的頭銜對(duì)于項(xiàng)目的業(yè)務(wù)價(jià)值交付毫無(wú)意義。

我們有50位IT專(zhuān)家,其中超過(guò)25人有較高的頭銜,但沒(méi)有一個(gè)人理解他們所參與的項(xiàng)目的意義……

對(duì)于這個(gè)學(xué)習(xí)案例中所表現(xiàn)的過(guò)度專(zhuān)業(yè)化的問(wèn)題,George提出了一種解決方式,即創(chuàng)建一份簡(jiǎn)短的清單,列出對(duì)于組織有戰(zhàn)略性重要意義的關(guān)鍵技術(shù),并基于新手、熟練工及專(zhuān)家的模型創(chuàng)建相應(yīng)的頭銜。在這個(gè)學(xué)習(xí)案例中,新創(chuàng)建的頭銜包括:“新手開(kāi)發(fā)者”,即還未掌握某項(xiàng)技術(shù)的人員。“開(kāi)發(fā)者”,即掌握了某項(xiàng)關(guān)鍵技術(shù)的人員。“高級(jí)開(kāi)發(fā)者”,即某項(xiàng)關(guān)鍵技術(shù)方面的專(zhuān)家。“系統(tǒng)開(kāi)發(fā)者”,即掌握了5項(xiàng)或更多關(guān)鍵技術(shù)的人員。以及“開(kāi)發(fā)者專(zhuān)家”,即3項(xiàng)或更多關(guān)鍵技術(shù)方面的專(zhuān)家。

除了頭銜的簡(jiǎn)化之外,另一個(gè)關(guān)鍵在于組織的工作空間的安排,這種安排的目的是讓團(tuán)隊(duì)能夠進(jìn)行密切的合作,并且保證高效的溝通。團(tuán)隊(duì)?wèi)?yīng)當(dāng)實(shí)現(xiàn)“不設(shè)立專(zhuān)職主管”,以避免在團(tuán)隊(duì)中出現(xiàn)無(wú)謂的上下級(jí)結(jié)構(gòu),并且在處理因復(fù)雜的問(wèn)題而出現(xiàn)不斷變化的挑戰(zhàn)時(shí),這種方式能夠帶來(lái)更大的靈活性。而George所提的最后一條建議是“將工作安排給固定的團(tuán)隊(duì)”,因?yàn)槎唐陧?xiàng)目團(tuán)隊(duì)的組建與解散是一種低效的方式,團(tuán)隊(duì)需要一定時(shí)間才能夠達(dá)到較高的生產(chǎn)力。

George在本次演講的總結(jié)中說(shuō)道,雖然對(duì)于復(fù)雜的業(yè)務(wù)領(lǐng)域來(lái)說(shuō),微服務(wù)是一種解決問(wèn)題的好方法,但只有處理好其他技術(shù)性、流程性與組織性障礙的問(wèn)題,才能夠有效地利用微服務(wù)交付商業(yè)價(jià)值。George最后向參加此次專(zhuān)注于開(kāi)發(fā)者的microXchg大會(huì)的聽(tīng)眾傳達(dá)了一條信息,他表示在開(kāi)發(fā)團(tuán)隊(duì)中必須有系統(tǒng)管理員與運(yùn)維人員的參與(“DevOps”),并且應(yīng)當(dāng)擁抱全棧開(kāi)發(fā)者的觀念。

Fred George在microXchg的演講“微服務(wù)并不是一切”的視頻可在大會(huì)的Youtube專(zhuān)屬頻道上觀看。

查看英文原文:“It’s Not Just Microservices”: Fred George Discusses Technology, Process and Organisation Inhibitors

相關(guān)熱詞搜索:not just microservices 文化 & 方法 架構(gòu) & 設(shè)計(jì) 語(yǔ)言 & 開(kāi)發(fā) 方法論 架構(gòu)

上一篇:iOS開(kāi)發(fā)周報(bào):Apple 春季發(fā)布會(huì)時(shí)間更改,IBM 建立 Swift Package 分類(lèi)索引
下一篇:Stack Overflow 2016最新架構(gòu)探秘

分享到: 收藏