云原生應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)——基于.NET開(kāi)發(fā)框架及Kubernetes容器編排技術(shù) 51Aspx
定 價(jià):119 元
- 作者:51Aspx
- 出版時(shí)間:2024/2/1
- ISBN:9787111742265
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)是一本介紹 .NET 云原生開(kāi)發(fā)技術(shù)的實(shí)用教程,由多位微軟MVP聯(lián)合編寫(xiě),通過(guò)實(shí)際的項(xiàng)目代碼,從多個(gè)角度深入淺出地闡釋了云原生開(kāi)發(fā)的理論和在實(shí)際開(kāi)發(fā)中的應(yīng)用。全書(shū)共11章,主要內(nèi)容包括:迎接云原生的浪潮;配置 .NET 云原生開(kāi)發(fā)與運(yùn)行環(huán)境;云原生應(yīng)用開(kāi)發(fā)—電子商務(wù)應(yīng)用eShopOnContainers;實(shí)現(xiàn)云原生應(yīng)用的擴(kuò)展性;實(shí)現(xiàn)云原生應(yīng)用的通信;數(shù)據(jù)訪問(wèn)模式;實(shí)現(xiàn)可恢復(fù)的彈性應(yīng)用;實(shí)現(xiàn)云原生應(yīng)用的身份管理;實(shí)現(xiàn)云原生應(yīng)用的可觀察性;深入理解云原生、容器、微服務(wù)和DevOps:基于Dapr開(kāi)發(fā)云原生應(yīng)用。
本書(shū)適合具有 C# 開(kāi)發(fā)經(jīng)驗(yàn)的軟件工程師、軟件架構(gòu)師,希望學(xué)習(xí)最新的 .NET 技術(shù),完成云原生應(yīng)用開(kāi)發(fā)轉(zhuǎn)型的開(kāi)發(fā)人員閱讀。對(duì)于希望從頭開(kāi)始學(xué)習(xí) .NET 技術(shù)和云原生開(kāi)發(fā)的開(kāi)發(fā)人員也是非常好的選擇。
聚合多位微軟MVP剖析經(jīng)典項(xiàng)目,系統(tǒng)介紹云原生應(yīng)用開(kāi)發(fā)思路、方法、技巧
2016年,微軟發(fā)布完全開(kāi)源、跨平臺(tái)的產(chǎn)品 .NET Core 1.0,.NET正式脫胎換骨。2017年,微軟發(fā)布了 .NET Core 2.0,2019 年9 月發(fā)布了 .NET Core 3.0,隨著2019年12 月發(fā)布的 .NET Core 3.1,.NET Core 徹底穩(wěn)定下來(lái),生態(tài)圈和社區(qū)也變得成熟和穩(wěn)定。
2020年微軟統(tǒng)一產(chǎn)品線,正式將 .NET Core 更名為 .NET。.NET的版本號(hào)直接從5開(kāi)始,即為 .NET 5,它于2020年11月正式發(fā)布,在2023年編者完稿時(shí),最新的版本是 .NET 7,2023 年11月15日,.NET 8面世。
.NET誕生的背景是云原生開(kāi)發(fā)技術(shù)的風(fēng)起云涌,傳統(tǒng)的開(kāi)發(fā)技術(shù)是面向服務(wù)器的開(kāi)發(fā),而云原生開(kāi)發(fā)面向的是云平臺(tái),包括數(shù)據(jù)庫(kù)技術(shù)的多樣化,應(yīng)用的微服務(wù)化,部署的分布化,其中最為典型的無(wú)疑是容器技術(shù)的應(yīng)用。.NET針對(duì)大規(guī)模處理服務(wù)和云原生應(yīng)用開(kāi)發(fā)做了針對(duì)性的優(yōu)化,特別是針對(duì)基于容器技術(shù)的應(yīng)用支持,優(yōu)化了應(yīng)用的啟動(dòng)速度、內(nèi)存占用、性能優(yōu)化等諸多方面。毫無(wú)疑問(wèn),對(duì)于云原生開(kāi)發(fā)來(lái)說(shuō),.NET就是最佳選擇。
雖然 .NET在國(guó)外發(fā)展的風(fēng)生水起,微軟也提供了大量的技術(shù)資料,但對(duì)于國(guó)內(nèi)的開(kāi)發(fā)人員來(lái)說(shuō),還是非常缺乏基于 .NET技術(shù)的云原生開(kāi)發(fā)資料,特別是缺乏能夠理論聯(lián)系實(shí)際。通過(guò)具體的實(shí)例講解,幫助開(kāi)發(fā)者全面掌握云原生開(kāi)發(fā)技術(shù)的技術(shù)資料。
2022年,微軟中國(guó)的MVP 社區(qū)組織了 .NET云原生開(kāi)發(fā)系列技術(shù)活動(dòng),在軟積木的劉海峰老師的組織和協(xié)調(diào)下,活躍于中國(guó)的微軟最有價(jià)值專家們奉獻(xiàn)了一系列的云原生技術(shù)講座。作為該系列活動(dòng)的總結(jié),本書(shū)希望能夠幫助中國(guó)的 .NET開(kāi)發(fā)者全面認(rèn)識(shí)基于 .NET技術(shù)的云原生開(kāi)發(fā)。
本書(shū)使用的案例來(lái)自微軟的eShopOnContainers項(xiàng)目(開(kāi)發(fā)環(huán)境為 .NET),這是一個(gè)使用 .NET技術(shù)開(kāi)發(fā)的電子商務(wù)應(yīng)用,使用了當(dāng)前最新的云原生開(kāi)發(fā)技術(shù),作為微軟官方的示范項(xiàng)目,這個(gè)項(xiàng)目一直在伴隨著 .NET技術(shù)的演進(jìn)不斷升級(jí)(當(dāng)前它的最新版本也已經(jīng)是 .NET 7)。由于它使用的技術(shù)非常新穎、全面,帶來(lái)了一個(gè)很高的學(xué)習(xí)門(mén)檻,使得不少開(kāi)發(fā)者望洋興嘆,難以啃下這塊硬骨頭。本書(shū)使用它作為示范項(xiàng)目,詳細(xì)介紹了其中涉及的各種技術(shù)要點(diǎn),尤其是針對(duì)開(kāi)發(fā)實(shí)踐中涉及的技術(shù)細(xì)節(jié)進(jìn)行了詳盡的說(shuō)明。因此,開(kāi)發(fā)者可以自己動(dòng)手,徹底理解和構(gòu)建這個(gè)宏大的項(xiàng)目,為掌握基于 .NET的云原生開(kāi)發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。
值得一提的是,在AI技術(shù)的應(yīng)用呈現(xiàn)爆發(fā)式增長(zhǎng)的2023年,.NET與正在與AI產(chǎn)生緊密的結(jié)合。在.NET云原生應(yīng)用開(kāi)發(fā)中,先進(jìn)的AI技術(shù)如大語(yǔ)言模型(Large Language Model,LLM)和Transformer模型被廣泛利用。通過(guò)使用Azure Cognitive Services等微軟云服務(wù),開(kāi)發(fā)者可以輕松地調(diào)用OpenAI的生成式預(yù)訓(xùn)練Transformer模型(Generative Pre-trained Transformer,GPT),從而提升應(yīng)用的智能水平。利用這些領(lǐng)先的AI技術(shù),.NET可以采用LLM理解用戶輸入,借助GPT生成相應(yīng)回答或建議,實(shí)現(xiàn)更智能化、個(gè)性化的服務(wù)。無(wú)論是內(nèi)容推薦、語(yǔ)音識(shí)別、圖像處理,還是對(duì)話系統(tǒng),.NET結(jié)合AI都能為用戶帶來(lái)卓越體驗(yàn)。展望未來(lái),隨著技術(shù)的不斷發(fā)展,.NET必將在AI領(lǐng)域?qū)⒋蠓女惒省?br>本書(shū)適合哪些讀者?
以下幾類讀者將從本書(shū)中獲益:
? 希望能夠透徹學(xué)習(xí)和了解云原生應(yīng)用開(kāi)發(fā)的理論知識(shí)。
? 希望能夠理論聯(lián)系實(shí)際的學(xué)習(xí)云原生應(yīng)用開(kāi)發(fā)。
? 希望能夠自己動(dòng)手,一步一步實(shí)現(xiàn)完整的云原生應(yīng)用。
? 需要構(gòu)建高可用、可擴(kuò)展的云原生應(yīng)用。
本書(shū)適合有C#開(kāi)發(fā)經(jīng)驗(yàn)的軟件工程師、軟件架構(gòu)師等,特別是希望學(xué)習(xí)最新的 .NET技術(shù),完成云原生應(yīng)用開(kāi)發(fā)轉(zhuǎn)型的開(kāi)發(fā)人員。而且,本書(shū)由淺入深的學(xué)習(xí)路徑,對(duì)于希望從頭開(kāi)始學(xué)習(xí) .NET技術(shù)和云原生開(kāi)發(fā)的開(kāi)發(fā)人員也是非常好的選擇。
本書(shū)內(nèi)容安排
本書(shū)分為三大部分,共11 章,由多位微軟MVP聯(lián)合編寫(xiě),通過(guò)實(shí)際的項(xiàng)目代碼,從各個(gè)角度深入淺出地闡釋了云原生開(kāi)發(fā)的理論和在實(shí)際開(kāi)發(fā)中的應(yīng)用。內(nèi)容的組織方式是先介紹相關(guān)的技術(shù)理論,然后在理論的指導(dǎo)下,手把手地幫助開(kāi)發(fā)者應(yīng)用到開(kāi)發(fā)實(shí)踐中。
第一部分主要討論了云原生開(kāi)發(fā)的核心理念和需要解決的問(wèn)題,介紹了云原生計(jì)算基金會(huì)的作用。然后,以 Docker為切入點(diǎn),重點(diǎn)介紹了容器技術(shù)的理論和使用,手把手地幫助開(kāi)發(fā)者從Docker 的基本命令開(kāi)始,直到構(gòu)建和運(yùn)行完整的eShopOnContainers 應(yīng)用。
第二部分開(kāi)始深入到開(kāi)發(fā)和運(yùn)行云原生應(yīng)用面臨的各種挑戰(zhàn),每章深入一個(gè)挑戰(zhàn)領(lǐng)域,首先介紹面臨的挑戰(zhàn),然后介紹解決該問(wèn)題的思路和理論,并介紹當(dāng)前相關(guān)的各種項(xiàng)目和產(chǎn)品。最后是在理論的指導(dǎo)下,在代碼層面上解決實(shí)際面臨的挑戰(zhàn)。
第三部分在完成整個(gè)eShopOnContainers 應(yīng)用之后,重新從新的高度來(lái)回顧云原生應(yīng)用開(kāi)發(fā),幫助開(kāi)發(fā)者深入理解云原生、容器、微服務(wù)和DevOps 之間的關(guān)系,完成自動(dòng)化的構(gòu)建和發(fā)布。最后,介紹了基于Dapr 的云原生應(yīng)用開(kāi)發(fā),幫助開(kāi)發(fā)者將云原生應(yīng)用開(kāi)發(fā)的體驗(yàn)提升到新的高度。
本書(shū)作者
本書(shū)的作者包括:劉海峰、郝冠軍、張善友、桂素偉、梁桐銘、徐磊、陳仁松、閆曉迪、盧建暉、梁敏,由郝冠軍統(tǒng)稿。以下是各位作者的介紹。
劉海峰:軟積木CEO、微軟資深MVP(最有價(jià)值專家)、微軟技術(shù)大會(huì)特約講師。
郝冠軍:十屆微軟MVP,《ASP.NET 本質(zhì)論》作者,《精通 ASP.NET Core MVC》譯者。多年來(lái)致力于軟件開(kāi)發(fā)技術(shù)的鉆研與推廣,涉及多種開(kāi)發(fā)語(yǔ)言與技術(shù)。
張善友:廣東智用人工智能應(yīng)用研究院工業(yè)&社區(qū)CTO。從事 .NET技術(shù)開(kāi)發(fā)二十多年,CKAD認(rèn)證專家,曾在騰訊工作12年,2018年創(chuàng)立深圳友浩達(dá)科技,專注云原生和工業(yè)物聯(lián)網(wǎng)解決方案落地。目前在廣東智用人工智能應(yīng)用研究院 擔(dān)任CTO。積極參與運(yùn)營(yíng) .NET 技術(shù)社區(qū)、Dapr中文社區(qū)、Semantic Kernel 中文社區(qū)以及相關(guān)開(kāi)源項(xiàng)目,運(yùn)營(yíng)微信公眾號(hào)“dotnet跨平臺(tái)”和“新一代智能應(yīng)用”。連任18屆微軟最有價(jià)值專家MVP,5屆華為云HCDE,5屆騰訊云最有價(jià)值專家TVP。
閆曉迪:微軟最有價(jià)值專家/微軟認(rèn)證講師,微軟認(rèn)證Azure解決方案架構(gòu)師。曾擔(dān)任微軟技術(shù)大會(huì)講師,多年微軟技術(shù)社區(qū)組織者。近20年 .NET平臺(tái)開(kāi)發(fā)經(jīng)驗(yàn),熟悉ASP.NET、WPF、UWP、Azure 等多種微軟技術(shù)。目前專注于 .NET、Azure及Cloud Native應(yīng)用開(kāi)發(fā),F(xiàn)居新西蘭,CITANZ(新西蘭華人IT協(xié)會(huì))志愿者、惠靈頓 .NET Meetup 組織者。LinkedIn Learning講師。
梁桐銘:微軟MVP、Microsoft AI Open Hack教練、Microsoft Tech Summit講師,52ABP 開(kāi)源框架作者,暢銷書(shū)《深入淺出 ASP.NET Core》作者。
徐磊:英捷創(chuàng)軟科技(北京)有限公司首席架構(gòu)師/CEO,微軟MVP,微軟區(qū)域技術(shù)總監(jiān),GitHub 中國(guó)區(qū)授權(quán)服務(wù)團(tuán)隊(duì)負(fù)責(zé)人,認(rèn)證Scrum Master,EXIN DevOps Master/Professional認(rèn)證講師,中國(guó)最大的敏捷精益社區(qū) IDCF 創(chuàng)始人。專注于軟件工程,敏捷精益商業(yè)創(chuàng)新方面的管理咨詢。經(jīng)客戶涵蓋從電信,能源,傳統(tǒng)生產(chǎn)制造,金融和電商等各行業(yè),從 2005 年至今已經(jīng)為超過(guò)100家企業(yè)提供過(guò)軟件工程方案的咨詢和服務(wù),包括:華為、中國(guó)農(nóng)業(yè)銀行、招商銀行、興業(yè)銀行、中國(guó)銀行、斯倫貝謝、中國(guó)聯(lián)通、中國(guó)人民保險(xiǎn)、京東商城、通用汽車(chē)等。
盧建暉:微軟高級(jí)云技術(shù)布道師,專注在人工智能和大數(shù)據(jù)領(lǐng)域。
桂素偉:開(kāi)發(fā)者,架構(gòu)師,曾是10屆微軟MVP,擅長(zhǎng) .NET技術(shù)和系統(tǒng)架構(gòu);對(duì)高性能,高并發(fā)開(kāi)發(fā)和性能排查很有心得;喜歡分享技術(shù),長(zhǎng)期耕耘微信公眾號(hào)“桂跡”,F(xiàn)就職東京 NETSTARS,任架構(gòu)師。
陳仁松:曾連續(xù)獲得五屆微軟最有價(jià)值專家(MVP),是一位擁有十年以上互聯(lián)網(wǎng)經(jīng)驗(yàn)的老兵,具備豐富的研發(fā)經(jīng)驗(yàn),專注于 AI-Native、云原生等方向的技術(shù)開(kāi)發(fā)和探索。
梁敏:微軟 .NET20周年云原生開(kāi)發(fā)者大賽籌辦人、Prompt Engineering Conference(China)負(fù)責(zé)人、AIGC成都社區(qū)主理人。
致謝
本書(shū)的編寫(xiě)得到了51Aspx的大力支持,在此表示感謝。51Aspx自2007年成立,是領(lǐng)先的.NET源碼交流平臺(tái)。擁有超過(guò)108萬(wàn)會(huì)員和眾多嚴(yán)格測(cè)試過(guò)的項(xiàng)目源代碼。專注于源碼商業(yè)化和開(kāi)發(fā)者賦能,致力于幫助開(kāi)發(fā)者實(shí)現(xiàn)技術(shù)變現(xiàn),最大化價(jià)值。
限于作者水平,書(shū)中缺點(diǎn)和錯(cuò)誤之處,敬請(qǐng)批評(píng)指正。
51Aspx簡(jiǎn)介
51Aspx(https://www.51aspx.com/)是業(yè)內(nèi)領(lǐng)先的.NET學(xué)習(xí)和源碼分享平臺(tái),并緊跟技術(shù)趨勢(shì),不斷擴(kuò)展編程語(yǔ)言類型和合作團(tuán)隊(duì)。目前,51Aspx有110萬(wàn)注冊(cè)會(huì)員,14000余套完整源碼,以及建立緊密合作關(guān)系的資深開(kāi)發(fā)者800余人。51Aspx積極與微軟官方合作舉辦各類.NET技術(shù)活動(dòng),與微軟MVP團(tuán)隊(duì)、微軟Reactor團(tuán)隊(duì)緊密合作,多次受邀參加微軟中國(guó)及美國(guó)總部的重大技術(shù)合作,積極與微軟一道傳
播.NET。
劉海峰:軟積木CEO、微軟資深MVP(最有價(jià)值專家)、微軟技術(shù)大會(huì)特約講師。
郝冠軍:十屆微軟MVP,《ASP.NET 本質(zhì)論》作者,《精通 ASP.NET Core MVC》譯者。多年來(lái)致力于軟件開(kāi)發(fā)技術(shù)的鉆研與推廣,涉及多種開(kāi)發(fā)語(yǔ)言與技術(shù)。
張善友:廣東智用人工智能應(yīng)用研究院工業(yè)&社區(qū)CTO。從事 .NET技術(shù)開(kāi)發(fā)二十多年,CKAD認(rèn)證專家,曾在騰訊工作12年,2018年創(chuàng)立深圳友浩達(dá)科技,專注云原生和工業(yè)物聯(lián)網(wǎng)解決方案落地。目前在廣東智用人工智能應(yīng)用研究院 擔(dān)任CTO。積極參與運(yùn)營(yíng) .NET 技術(shù)社區(qū)、Dapr中文社區(qū)、Semantic Kernel 中文社區(qū)以及相關(guān)開(kāi)源項(xiàng)目,運(yùn)營(yíng)微信公眾號(hào)“dotnet跨平臺(tái)”和“新一代智能應(yīng)用”。連任18屆微軟最有價(jià)值專家MVP,5屆華為云HCDE,5屆騰訊云最有價(jià)值專家TVP。
閆曉迪:微軟最有價(jià)值專家/微軟認(rèn)證講師,微軟認(rèn)證Azure解決方案架構(gòu)師。曾擔(dān)任微軟技術(shù)大會(huì)講師,多年微軟技術(shù)社區(qū)組織者。近20年 .NET平臺(tái)開(kāi)發(fā)經(jīng)驗(yàn),熟悉ASP.NET、WPF、UWP、Azure 等多種微軟技術(shù)。目前專注于 .NET、Azure及Cloud Native應(yīng)用開(kāi)發(fā)。現(xiàn)居新西蘭,CITANZ(新西蘭華人IT協(xié)會(huì))志愿者、惠靈頓 .NET Meetup 組織者。LinkedIn Learning講師。
梁桐銘:微軟MVP、Microsoft AI Open Hack教練、Microsoft Tech Summit講師,52ABP 開(kāi)源框架作者,暢銷書(shū)《深入淺出 ASP.NET Core》作者。
徐磊:英捷創(chuàng)軟科技(北京)有限公司首席架構(gòu)師/CEO,微軟MVP,微軟區(qū)域技術(shù)總監(jiān),GitHub 中國(guó)區(qū)授權(quán)服務(wù)團(tuán)隊(duì)負(fù)責(zé)人,認(rèn)證Scrum Master,EXIN DevOps Master/Professional認(rèn)證講師,中國(guó)最大的敏捷精益社區(qū) IDCF 創(chuàng)始人。專注于軟件工程,敏捷精益商業(yè)創(chuàng)新方面的管理咨詢。經(jīng)客戶涵蓋從電信,能源,傳統(tǒng)生產(chǎn)制造,金融和電商等各行業(yè),從 2005 年至今已經(jīng)為超過(guò)100家企業(yè)提供過(guò)軟件工程方案的咨詢和服務(wù),包括:華為、中國(guó)農(nóng)業(yè)銀行、招商銀行、興業(yè)銀行、中國(guó)銀行、斯倫貝謝、中國(guó)聯(lián)通、中國(guó)人民保險(xiǎn)、京東商城、通用汽車(chē)等。
盧建暉:微軟高級(jí)云技術(shù)布道師,專注在人工智能和大數(shù)據(jù)領(lǐng)域。
桂素偉:開(kāi)發(fā)者,架構(gòu)師,曾是10屆微軟MVP,擅長(zhǎng) .NET技術(shù)和系統(tǒng)架構(gòu);對(duì)高性能,高并發(fā)開(kāi)發(fā)和性能排查很有心得;喜歡分享技術(shù),長(zhǎng)期耕耘微信公眾號(hào)“桂跡”。現(xiàn)就職東京 NETSTARS,任架構(gòu)師。
陳仁松:曾連續(xù)獲得五屆微軟最有價(jià)值專家(MVP),是一位擁有十年以上互聯(lián)網(wǎng)經(jīng)驗(yàn)的老兵,具備豐富的研發(fā)經(jīng)驗(yàn),專注于 AI-Native、云原生等方向的技術(shù)開(kāi)發(fā)和探索。
梁敏:微軟 .NET20周年云原生開(kāi)發(fā)者大賽籌辦人、Prompt Engineering Conference(China)負(fù)責(zé)人、AIGC成都社區(qū)主理人。
前言
第1章 迎接云原生的浪潮1
1.1 撲面而來(lái)的云原生1
1.1.1 單體應(yīng)用面臨的挑戰(zhàn)2
1.1.2 從微服務(wù)到云原生3
1.1.3 云原生應(yīng)用的特性4
1.1.4 云原生計(jì)算基金會(huì) CNCF5
1.2 云原生設(shè)計(jì)的十二原則6
1.2.1 Codebase(單一代碼)7
1.2.2 Dependencies(依賴管理)7
1.2.3 Configuration(配置)7
1.2.4 Backing services(支撐服務(wù))7
1.2.5 Build, Release, Run(構(gòu)建、發(fā)布、運(yùn)行)8
1.2.6 Processes(無(wú)狀態(tài)服務(wù)進(jìn)程)8
1.2.7 Port Binding(端口綁定)8
1.2.8 Concurrency(并發(fā)能力)8
1.2.9 Disposability(易回收)9
1.2.10 Dev/Prod Parity(環(huán)境對(duì)等)9
1.2.11 Logs(日志流)9
1.2.12 Admin Processes(管理進(jìn)程)9
1.3 云原生四大核心要素10
1.3.1 容器化10
1.3.2 微服務(wù)技術(shù)11
1.3.3 DevOps12
1.3.4 持續(xù)交付13
1.4 使用 .NET 技術(shù)開(kāi)發(fā)云原生應(yīng)用的優(yōu)勢(shì)14
1.4.1 高性能15
1.4.2 跨平臺(tái)15
1.4.3 完全容器化支持15
1.4.4 開(kāi)源15
1.5 小結(jié)16
第2章 配置 .NET云原生開(kāi)發(fā)與運(yùn)行環(huán)境17
2.1 系統(tǒng)要求17
2.2 安裝與配置Git環(huán)境18
2.2.1 安裝 Git18
2.2.2 配置Git18
2.2.3 下載eShopOnContainers源代碼20
2.3 安裝 .NET20
2.3.1 .NET 版本選擇21
2.3.2 安裝 .NET22
2.4 安裝 Visual Studio 2022 或 Visual Studio Code23
2.4.1 安裝Visual Studio 202223
2.4.2 安裝 Visual Studio Code25
2.5 安裝Docker27
2.5.1 安裝 WSL 227
2.5.2 安裝 Docker Desktop31
2.5.3 配置 Docker Desktop32
2.5.4 配置國(guó)內(nèi) Docker 環(huán)境35
2.6 啟用 Kubernetes36
2.7 小結(jié)36
第3章 云原生應(yīng)用開(kāi)發(fā)—電子商務(wù)應(yīng)用eShopOnContainers37
3.1 云原生應(yīng)用 eShopOnContainers功能概述37
3.1.1 功能需求38
3.1.2 eShopOnContainers開(kāi)發(fā)架構(gòu)38
3.2 運(yùn)行eShopOnContainers應(yīng)用40
3.2.1 了解docker-compose文件40
3.2.2 構(gòu)建eShop44
3.2.3 運(yùn)行eShopOnContainers 應(yīng)用45
3.2.4 注意事項(xiàng)46
3.3 訪問(wèn)eShopOnContainers應(yīng)用程序47
3.3.1 訪問(wèn)MVC Web應(yīng)用47
3.3.2 訪問(wèn)SPA Web應(yīng)用48
3.3.3 訪問(wèn)Android、iOS和Windows上的移動(dòng)應(yīng)用49
3.3.4 訪問(wèn) Swagger UI49
3.3.5 訪問(wèn)日志控制臺(tái)50
3.3.6 應(yīng)用程序與微服務(wù)列表53
3.4 eShopOnContainers代碼組織53
3.4.1 項(xiàng)目架構(gòu)53
3.4.2 源代碼介紹54
3.4.3 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)56
3.4.4 單元測(cè)試和集成測(cè)試60
3.5 小結(jié)62
第4章 實(shí)現(xiàn)云原生應(yīng)用的擴(kuò)展性63
4.1 容器化應(yīng)用63
4.1.1 單體部署面臨的挑戰(zhàn)63
4.1.2 什么是Docker65
4.1.3 Docker常用命令68
4.1.4 開(kāi)發(fā)中用到的Docker知識(shí)73
4.2 鏡像倉(cāng)庫(kù)74
4.2.1 Docker Hub74
4.2.2 創(chuàng)建自定義的容器鏡像倉(cāng)庫(kù)75
4.2.3 創(chuàng)建私有鏡像倉(cāng)庫(kù)77
4.3 Docker定義文件Dockerfile80
4.3.1 Dockerfile 語(yǔ)法概要80
4.3.2 構(gòu)建ASP.NET Core應(yīng)用81
4.3.3 構(gòu)建 ASP.NET Core Docker 應(yīng)用83
4.4 擴(kuò)展容器應(yīng)用84
4.4.1 使用Docker compose管理云原生應(yīng)用84
4.4.2 使用Kubernetes管理云原生應(yīng)用86
4.4.3 使用環(huán)境變量89
4.5 容器與編排器實(shí)踐94
4.5.1 購(gòu)物車(chē)服務(wù)94
4.5.2 構(gòu)建 Dockerfile95
4.5.3 構(gòu)建docker-compose.yaml96
4.5.4 構(gòu)建Kubernetes部署文件97
4.6 小結(jié)101
第5章 實(shí)現(xiàn)云原生應(yīng)用的通信102
5.1 云原生應(yīng)用通信的復(fù)雜性102
5.2 服務(wù)注冊(cè)與服務(wù)發(fā)現(xiàn)103
5.2.1 微服務(wù)下的服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)104
5.2.2 Docker Compose環(huán)境下的服務(wù)注冊(cè)與發(fā)現(xiàn)105
5.2.3 Kubernetes 環(huán)境下的服務(wù)注冊(cè)與發(fā)現(xiàn)106
5.3 前端應(yīng)用的通信模式107
5.3.1 實(shí)現(xiàn)網(wǎng)關(guān)的選擇109
5.3.2 實(shí)時(shí)通信110
5.4 服務(wù)與服務(wù)之間的通信111
5.4.1 查詢 Query112
5.4.2 命令Command115
5.4.3 事件Event116
5.4.4 領(lǐng)域總線和集成總線118
5.5 新一代通信協(xié)議gRPC118
5.5.1 gRPC的優(yōu)勢(shì)118
5.5.2 gRPC核心概念119
5.5.3 在 .NET中應(yīng)用gRPC119
5.5.4 gRPC的使用場(chǎng)景120
5.5.5 在eShopOnContainers中實(shí)現(xiàn)gRPC支持120
5.6 服務(wù)網(wǎng)格(Service Mesh)122
5.7 實(shí)戰(zhàn)演練:實(shí)現(xiàn) eShopOnContainers中的組件間通信123
5.7.1 實(shí)現(xiàn)基于 Envoy 的 API 網(wǎng)關(guān)123
5.7.2 實(shí)現(xiàn)BFF網(wǎng)關(guān)125
5.7.3 實(shí)現(xiàn)基于MediatR的領(lǐng)域總線128
5.7.4 基于RabbitMQ實(shí)現(xiàn)跨微服務(wù)的事件總線133
5.7.5 基于事件總線實(shí)現(xiàn)集成總線135
5.8 小結(jié)140
第6章 數(shù)據(jù)訪問(wèn)模式141
6.1 云原生應(yīng)用中的數(shù)據(jù)訪問(wèn)模式141
6.1.1 微服務(wù)中對(duì)數(shù)據(jù)庫(kù)使用方式的變化142
6.1.2 跨微服務(wù)的查詢143
6.1.3 數(shù)據(jù)完整性和分布式事務(wù)145
6.1.4 大規(guī)模數(shù)據(jù)訪問(wèn)147
6.2 關(guān)系型與非關(guān)系型數(shù)據(jù)庫(kù)150
6.2.1 CAP定理151
6.2.2 關(guān)系型數(shù)據(jù)庫(kù)與NoSQL數(shù)據(jù)庫(kù)152
6.2.3 NewSQL數(shù)據(jù)庫(kù)153
6.3 在云原生應(yīng)用中應(yīng)用緩存154
6.3.1 應(yīng)用緩存的原因154
6.3.2 云原生應(yīng)用的緩存架構(gòu)154
6.4 實(shí)戰(zhàn)演練:實(shí)現(xiàn)eShopOnContainers中產(chǎn)品價(jià)格變更的最終一致性155
6.4.1 實(shí)現(xiàn)簡(jiǎn)化事件溯源模式的集成事件日志156
6.4.2 發(fā)布基于事件日