業(yè)界最負(fù)盛名的微服務(wù)大會(huì)Microxchg 2016上周于德國柏林舉辦。來自Zalando的Rodrigue Schaefer為聽眾進(jìn)行了一場演講,Zalando是一家在歐洲處于領(lǐng)先地位的時(shí)尚品牌科技公司,在總共上萬名員工之中有一千多名是技術(shù)工作者。Rodrigue在演講中講述了該公司如何將他們的系統(tǒng)從一個(gè)一體性的架構(gòu)遷移至微服務(wù)的過程。
該系統(tǒng)原先的一體性應(yīng)用是由Java、Spring及Postgres等技術(shù)所構(gòu)建的,代碼非常臃腫,并且充斥著大量的依賴,由此引起了許多協(xié)作方面的問題,最終造成了開發(fā)周期的逐漸緩慢。隨著團(tuán)隊(duì)規(guī)模的擴(kuò)大,bug的比重也隨之上升。為了鞏固現(xiàn)有的系統(tǒng)而引入了許多僵化的流程,導(dǎo)致創(chuàng)新工作難以開展。此外,由于使用的技術(shù)棧有些“陳舊”,也造成了招聘進(jìn)度的緩慢,并且增加了招聘工作的困難。
公司終于意識(shí)到他們應(yīng)該給予團(tuán)隊(duì)充分的信任,而不是強(qiáng)行控制,這意味著每個(gè)團(tuán)隊(duì)都能夠按照自身的技術(shù)、以及能夠從其他部門那里所獲得的幫助等條件來選擇最適合自己的技術(shù)棧與工具。微服務(wù)的遷移工作目前已經(jīng)開展了9個(gè)月,技術(shù)上的變化包括使用AWS進(jìn)行設(shè)置、用Docker進(jìn)行部署以及用Appdynamics和Zmon進(jìn)行監(jiān)控,整個(gè)遷移過程已經(jīng)完成了90%。
對于這樣一個(gè)大型公司來說,一旦將整個(gè)系統(tǒng)都構(gòu)建在微服務(wù)架構(gòu)上,就必須做好這200多個(gè)微服務(wù)隨時(shí)可能發(fā)生故障的準(zhǔn)備。開發(fā)者對于服務(wù)要承擔(dān)起端到端的職責(zé),從DevOps到QA,直至部署過程。每個(gè)團(tuán)隊(duì)對于其他團(tuán)隊(duì)來說都必須表現(xiàn)為一種交付服務(wù)的SaaS平臺(tái),即使對于內(nèi)部服務(wù)也一樣。API優(yōu)先的概念則意味著全部70多個(gè)團(tuán)隊(duì)必須對于API規(guī)則保持一致。實(shí)現(xiàn)以上目標(biāo)離不開制訂各種規(guī)則的主體文檔、充分的同行審查、以及對于業(yè)務(wù)實(shí)體的一致的理解。
至于在合規(guī)性與安全性方面,Zalando遵循了四眼原則,并大量應(yīng)用了審查記錄跟蹤的做法,以確保每個(gè)變更都可以追溯到具體的代碼提交者。
新的系統(tǒng)不允許在不同的微服務(wù)之間使用共享的庫,因此每個(gè)團(tuán)隊(duì)都必須實(shí)現(xiàn)開源,并遵循公司所建立的規(guī)則。最后,跨多個(gè)團(tuán)隊(duì)的測試服務(wù)是由一個(gè)跨職能的業(yè)務(wù)促進(jìn)單位所實(shí)現(xiàn)的。
本次演講的視頻可以在Youtube上觀看。
查看英文原文:From Monolith to Microservices, Zalando's Journey