![]() ![]() |
基于Go語言的云原生 ![]() 本書的各個章節(jié)環(huán)環(huán)相扣,我們將引導Go語言中高級開發(fā)人員構(gòu)建一款簡單但功能齊備的分布式鍵值存儲。我們將學習選用Go作為開發(fā)語言來解決云原生管理和部署問題的最Z佳實踐。本書的主要內(nèi)容有:了解云原生應用程序與其他軟件架構(gòu)有何不同。了解如何利用Go語言解決設計可擴展的分布式服務的各種難題。利用Go語言的底層特性(例如通道和go協(xié)程)來實現(xiàn)可靠的云原生服務。探討什么是服務可靠性及其與云原生的關系。利用各種模式、抽象和工具來構(gòu)建和管理復雜的分布式系統(tǒng)。 編輯推薦 前言對于技術(shù)專家來說,現(xiàn)如今是一段多么美好的時光。我們使用Docker 來構(gòu)建容器,使用Kubernetes 來編排容器;使用Prometheus 來監(jiān)控容器;使用Consul 來發(fā)現(xiàn)容器;使用Jaeger 來追蹤容器之間的關系。這只是幾個例子,這類的工具還有很多很多,它們代表了新一代技術(shù):它們都是云原生,并且都是用Go 編寫的。感覺上云原生是一個略帶歧義的流行術(shù)語,但實際上它有非常具體的定義。根據(jù)云原生計算基金會(Linux 基金會的子基金會),云原生應用程序的設計目標是在面對急劇變化的負載時可擴展、在面對環(huán)境的不確定性時具有很好的韌性、在面對不斷變化的需求時可管理。換句話說,云原生應用程序是為殘酷、不確定的宇宙中的生命構(gòu)建的。Go 創(chuàng)建于大約十年前,吸取了多年來構(gòu)建基于云的軟件的經(jīng)驗教訓,是第一款專門為云原生軟件開發(fā)而設計的主流語言。Go 的誕生主要是因為當時使用的通用服務器語言根本不適合編寫谷歌大量產(chǎn)出的分布式、進程密集型應用程序。從那以來,Go 成為云原生開發(fā)的通用語言,被廣泛用于各個領域,從Docker 到Harbor、從Kubernetes 到Consul、從InfluxDB 到CockroachDB。云原生計算基金會的15 個畢業(yè)項目中有10 個是用Go 語言編寫的,而在所有62 個注1 項目中有42 個大部分或全部是用Go 編寫的。而且這個數(shù)字每天都在增加。本書面向的讀者對象本書主要面向中高級開發(fā)人員,特別是Web 應用程序工程師和DevOps 專家及網(wǎng)站可靠性工程師�?赡茉S多人都在使用Go 來構(gòu)建Web 服務,但并不熟悉云原生開發(fā)的微妙之處,甚至不清楚什么是云原生,然后發(fā)現(xiàn)自己的服務很難管理、部署或觀察。本書不僅可以為這些讀者學習如何構(gòu)建云原生服務提供堅實的基礎,而且還將展示為什么這些技術(shù)如此重要,并提供具體的示例來解說這個有些抽象的主題。許多讀者可能更熟悉其他語言,但被Go 作為云原生開發(fā)語言的名號所吸引。本書可以為這些讀者提供有關采用Go 作為云原生開發(fā)語言的最佳實踐,而且還可以幫助他們解決云原生的管理和部署問題。本書的創(chuàng)作原因應用程序的設計、構(gòu)建和部署方式正在發(fā)生變化。擴展的需求迫使開發(fā)人員將服務分散到大量服務器上,軟件行業(yè)正在走向云原生。但這引入了許多新問題:如何開發(fā)、部署或管理在十臺、一百臺、一千臺服務器上運行的服務?不幸的是,云原生領域的現(xiàn)有書籍都側(cè)重于抽象設計原則,而且只介紹如何執(zhí)行這些操作的基本示例,有些甚至連示例都沒有。本書旨在滿足這部分的市場需求:演示復雜的云原生設計原理。使用代碼示例你可以通過如下鏈接下載本書的補充材料(代碼示例,練習等):https://github.com/cloud-native-go/examples。本書的目的是幫助你完成工作。一般來說,你可以在自己的程序或者文檔中使用本書附帶的示例代碼。你無需聯(lián)系我們獲得使用許可,除非你要復制大量的代碼。例如,使用本書中的多個代碼片段編寫程序就無需獲得許可。但以CD-ROM 的形式銷售或者分發(fā)OReilly 書中的示例代碼則需要獲得許可�;卮饐栴}時援引本書內(nèi)容以及書中示例代碼,無需獲得許可。在你自己的項目文檔中使用本書大量的示例代碼時,則需要獲得許可。我們不強制要求署名,但如果你這么做,我們深表感激。署名一般包括書名、作者、出版社和國際標準圖書編號。例如:Cloud Native Go by Matthew A. Titmus(OReilly). Copyright 2021 Matthew A. Titmus, 978-1-492-07633-9。如果你覺得自身情況不在合理使用或上述允許的范圍內(nèi),請通過郵件和我們聯(lián)系,地址是permissions@oreilly.com。OReilly 在線學習平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。公司獨有的專家和改革創(chuàng)新者網(wǎng)絡通過OReilly 書籍、文章以及在線學習平臺,分享他們的專業(yè)知識和實踐經(jīng)驗。OReilly 在線學習平臺按照您的需要提供實時培訓課程、深入學習渠道、交互式編程環(huán)境以及來自OReilly 和其他200 多家出版商的大量書籍與視頻資料。更多信息,請訪問網(wǎng)站:https://www.oreilly.com/。聯(lián)系我們?nèi)魏斡嘘P本書的意見或疑問,請按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2 號成銘大廈C 座807 室(100035)奧萊利技術(shù)咨詢(北京)有限公司這本書有專屬網(wǎng)頁,你可以在那兒找到本書的勘誤、示例和其他信息。地址是https://oreil.ly/cloud-native-go。如果你對本書有一些評論或技術(shù)上的建議,請發(fā)送電子郵件到errata@oreilly.com.cn。要了解OReilly 圖書、培訓課程、會議和新聞的更多信息,請訪問我們的網(wǎng)站,地址是http://www.oreilly.com。我們的Facebook:http://facebook.com/oreilly。我們的Twitter:http://twitter.com/oreillymedia。我們的Youtube:http://youtube.com/oreillymedia。致謝首先,我要感謝我的妻子和兒子。自從進入我的生活以來,你們就成為了我做好每一件事的動力,你們就像啟明星指引著我前進的方向,吸引著我的目光望向天空。致父親,最近他離我們而去。在我認識的所有人中,只有你最像文藝復興時期的人,同時你也是我認識的最善良、最謙虛的人。我希望長大以后能成為你一樣的人。致Mary。父親的離世帶給你的感觸最深。你是我的家人,永遠都是我的家人,即使我打電話給你的次數(shù)并不多。父親一定會為你的力量和優(yōu)雅感到自豪。致Sarah。你的力量和勇氣總讓我感到驚嘆。從牙牙學語開始,敏銳的頭腦就讓你成為我最堅定的盟友,同時也是最兇猛的對手。不要告訴Nathan,兄弟姐妹們當中我最喜歡的人是你。致Nathan。如果說我們都繼承了父親三分之一的天賦,那么你得到的是他的心。雖然我不會經(jīng)常宣之于口,但我為你以及你的成就感到驕傲。不要告訴Sarah,兄弟姐妹們當中我最喜歡的人是你。致母親。你堅強、聰明、多才多藝、不因循守舊。感謝你教導我做真正需要做的事情,不要在乎別人的想法。請繼續(xù)保持你的個性,記得喂雞。致Albert。你有一顆博大的心和無限的耐心。感謝你加入我們的大家庭,這個家因為有你而變得更美好。致我的其他家人。雖然見面的機會并不多,但我非常想念你們。每當我需要你們時,你們總會在我身邊。感謝你們與我一起慶祝勝利,并在我失敗時給予支持。感謝Walt 和Alvaro,感謝你們始終陪伴在側(cè),即便換工作也離不開你們。感謝你們在需要時給予熱情的支持,并讓我及時認清現(xiàn)實。你們幫助我成為一名更好的工程師。另外,感謝你們把Will Wight 的《Cradle》系列介紹給我,我已經(jīng)深陷其中不能自拔。致Jeff Classic、New Jeff、Alex、Markan、Priyanka、Sam、Owen、Matt M.、Marius、Peter、Rohit,以及我在Flatiron Health 的所有朋友和同事。感謝你們的包容,讓我集中注意力撰寫本書,感謝你們對我和我的工作的支持,你們擔任著我的參謀、測試版讀者和評論家,并鼓勵我,推動我前進。致紐約及世界各地CoffeeOps 的所有朋友。感謝你們傾聽我的想法,允許我挑戰(zhàn)你們,而你們也挑戰(zhàn)了我。感謝你們的投入,讓這本書變得更好。致著名的可觀測性專家和預言家 Liz Fong-Jones。感謝您的指導,您的代碼示例非常寶貴,如果沒有您的慷慨,本書的創(chuàng)作會更困難,而且結(jié)果也不如人意。感謝我的技術(shù)審閱人員Lee Atchison、Alvaro Atienza、David Nicponski、Natalie Pistunovich 和James Quigley。感謝你們耐心地閱讀我寫的每一個字(甚至是腳注)。多虧了你們敏銳的眼光和辛勤的工作,本書得到了極大提升。最后,感謝OReilly Media 編輯以及藝術(shù)家團隊的辛勤勞動,很榮幸能與你們合作,特別感謝Amelia Blevins、Danny Elfanbaum 和Zan McQuade。今年是非常有趣的一年,你們的善良、耐心和支持讓我渡過了難關。 Matthew A. Titmus是一位經(jīng)驗豐富的軟件開發(fā)行業(yè)資深人士,擁有分子生物學學位。作為云原生技術(shù)和Go語言的早期采用者和倡導者,他對如何構(gòu)建生產(chǎn)級質(zhì)量的系統(tǒng)充滿熱情。他付諸大量心血來實現(xiàn)觀察和編排分布式系統(tǒng)的策略。 目錄
你還可能感興趣
我要評論
|