前言
過去幾年中肛走,一直從事微服務(wù)架構(gòu)、DevOps以及持續(xù)交付的咨詢和交付工作衣迷。
在這個過程中,感覺到雖然微服務(wù)架構(gòu)的優(yōu)勢被許多組織所接受酱酬,但由于架構(gòu)相關(guān)的知識本身比較抽象壶谒,作為開發(fā)者,似乎很難全面實踐微服務(wù)架構(gòu)岳悟。
所以佃迄,希望通過系列文章,以一個案例為背景贵少,基于持續(xù)交付和DevOps呵俏,幫助開發(fā)者理解微服務(wù)架構(gòu),并能通過動手實踐滔灶,了解其方法論以及生態(tài)系統(tǒng)普碎。
如果希望觀看視頻課程,請移步這里
為什么搞這么個系列录平?
1) 微服務(wù)涉及內(nèi)容廣泛麻车,學(xué)習(xí)成本高
微服務(wù)架構(gòu)提倡將單一應(yīng)用程序劃分成一組小的服務(wù),每個服務(wù)運行在獨立的進(jìn)程中斗这,服務(wù)間采用輕量級的通信機(jī)制互相協(xié)作(通常是基于 HTTP 協(xié)議的 RESTful API )动猬,每個服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能被獨立的開發(fā)表箭、測試赁咙、構(gòu)建、部署和交付。
客觀來說彼水,微服務(wù)架構(gòu)所涉及的內(nèi)容崔拥,已經(jīng)不僅僅是架構(gòu)本身,還包括了持續(xù)集成凤覆、持續(xù)交付链瓦、自動化測試、部署/運維/監(jiān)控以及DevOps等多個方面盯桦,這些方面互相配合慈俯、相輔相成,才能在微服務(wù)實施的過程中展現(xiàn)威力俺附。
另外肥卡,一個完整的微服務(wù)架構(gòu)系統(tǒng),在實施的過程中事镣,可能還要考慮服務(wù)的公共支撐組件部分步鉴,包括但不限于:
日志聚合(將不同服務(wù)實例上的日志聚合起來,便于分析璃哟、統(tǒng)計和定位問題)
監(jiān)控和告警(監(jiān)控每個服務(wù)的狀態(tài)氛琢,必要時產(chǎn)生告警)
服務(wù)的注冊和發(fā)現(xiàn)機(jī)制
服務(wù)的認(rèn)證和鑒權(quán)
服務(wù)構(gòu)建和打包機(jī)制
服務(wù)間的接口測試
持續(xù)集成/持續(xù)交付流水線
服務(wù)依賴關(guān)系管理
……
對于這么多的內(nèi)容,如果能基于場景的理解與練習(xí)随闪,再借鑒各大會議上諸多公司的微服務(wù)實施案例阳似,就能夠事半功倍 :)
2.《微服務(wù)與實踐》一書的更新
2015年4月,我開始撰寫《微服務(wù)架構(gòu)與實踐》一書铐伴,當(dāng)時國內(nèi)微服務(wù)架構(gòu)的概念還談的比較少撮奏,所以《微服務(wù)架構(gòu)與實踐》側(cè)重講了微服務(wù)的理論基礎(chǔ)和誕生背景,并分享了我在TW就職期間当宴,實現(xiàn)微服務(wù)的工作方式(我們以持續(xù)交付和DevOps為核心畜吊,構(gòu)建服務(wù)開發(fā)模板,并基于AWS實現(xiàn)快速發(fā)布户矢,快速監(jiān)控玲献,快速反饋)。同時梯浪,也探討了我們?nèi)绾螌⑦z留系統(tǒng)改造成微服務(wù)架構(gòu)的策略和步驟捌年,但由于精力有限,有些細(xì)節(jié)無法一一展開討論挂洛。
另外礼预,書中的大部分例子都是以Ruby和AWS為主,很多讀者也提出了建議虏劲,希望給出采用Java實現(xiàn)的例子逆瑞,更容易理解和使用荠藤。
當(dāng)今時代,技術(shù)發(fā)展的速度越來越快获高,誕生的框架、工具越來越多吻育,雖然有心更新書的內(nèi)容念秧,但時間和精力都無法快速更新并發(fā)布新版,所以布疼,希望能通過這個系列摊趾,將過去的一些實踐細(xì)化,包括DevOps游两、持續(xù)集成砾层、持續(xù)交付以及使用Pact等,并采用Java(基于Spring Boot/Spring Cloud)實現(xiàn)一個模擬的案例贱案。
3. 為傳統(tǒng)企業(yè)的開發(fā)人員提供案例
傳統(tǒng)企業(yè)和互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)形態(tài)不完全一樣肛炮,互聯(lián)網(wǎng)公司業(yè)務(wù)變化快,響應(yīng)速度快宝踪,組織愿意積極嘗試開源的工具和方法論侨糟,盡可能降低交付成本和縮短交付周期。而且互聯(lián)網(wǎng)領(lǐng)域中瘩燥,大部分的產(chǎn)品秕重,本身就是基于分布式系統(tǒng)構(gòu)建,所以微服務(wù)的概念看起來更像新瓶裝舊酒厉膀。
而傳統(tǒng)企業(yè)在過去多年的業(yè)務(wù)運作積累中溶耘,綜合多種因素(組織結(jié)構(gòu)、人才培養(yǎng)機(jī)制服鹅、市場競爭激烈等)凳兵,技術(shù)體系相對封閉,缺乏快速交付菱魔、快速創(chuàng)新試錯的理念留荔。
微服務(wù)架構(gòu)的出現(xiàn),加之社區(qū)的熱捧澜倦,導(dǎo)致很多團(tuán)隊盲于追熱而并沒有完全理解如何有效實施微服務(wù)聚蝶。
另外,如果光有微服務(wù)的理論基礎(chǔ)和對業(yè)界案例的學(xué)習(xí)藻治,不動手嘗試持續(xù)集成碘勉、持續(xù)交付、契約測試等桩卵,很難有深刻的理解验靡。
受眾用戶是誰
面向(1~3年)的Java開發(fā)者倍宾、傳統(tǒng)應(yīng)用的IT架構(gòu)師,以及對微服務(wù)感興趣的童鞋們胜嗓。
最后
希望通過本系列文章高职,將微服務(wù)、持續(xù)交付辞州、Docker以及DevOps等技術(shù)怔锌,作為整體輸出,幫助大家縮短系統(tǒng)學(xué)習(xí)微服務(wù)架構(gòu)的成本变过。