推薦序
大約在10年前,移動互聯(lián)網(wǎng)處于萌芽階段,老牌的互聯(lián)網(wǎng)巨頭摩拳擦掌,紛紛布局以手機、Pad為代表的移動端,期望將傳統(tǒng)PC端的成功復制下去。而一些互聯(lián)網(wǎng)新貴則憑著自身敏銳的洞察力、強大的產(chǎn)品力,輕裝上陣殺入各個垂直領(lǐng)域。很快,這些產(chǎn)品延伸至老百姓的日常生活,最終形成千萬級產(chǎn)品,移動互聯(lián)網(wǎng)的時代終于到來。與此同時,支撐互聯(lián)網(wǎng)發(fā)展的底座——軟件技術(shù)及架構(gòu),也一直在變化。
對于大多數(shù)中小型互聯(lián)網(wǎng)公司來說,早期的產(chǎn)品屬于MVP試驗階段,用戶量較小,所采用的架構(gòu)以單體為主,技術(shù)選型也相對簡單,無須考慮高并發(fā)問題。上線部署時,通常是手工打包,然后上傳到某Linux單機上。在很長一段時間內(nèi),開發(fā)和運維的工作涇渭分明、互不干涉。一般來說,只有在系統(tǒng)出現(xiàn)故障時,雙方才會認真地打個照面,長此以往,摩擦和誤會必然存在。此時,有經(jīng)驗的運維工程師會考慮將一部分手動工作腳本化,以減少人為操作失誤,從而提高工作效率;而有經(jīng)驗的開發(fā)工程師會考慮將自己的系統(tǒng)變得更加友好,以降低事故率和縮短排查時間。隨著時間的推移,產(chǎn)品的用戶量越來越大,單機單體的架構(gòu)已經(jīng)不足以支撐海量請求,工程師們開始考慮用分布式服務(wù)集群來緩解單機壓力。至此,微服務(wù)架構(gòu)應(yīng)運而生。圍繞著微服務(wù)架構(gòu)有很多技術(shù),比如統(tǒng)一網(wǎng)關(guān)、注冊中心與服務(wù)發(fā)現(xiàn)、負載均衡等,相信大家也都有所了解。
此時,優(yōu)秀的開發(fā)和運維工程師們又開始考慮另一個問題:現(xiàn)在的服務(wù)越來越多,版本發(fā)布越來越頻繁,非常容易出現(xiàn)人為故障,系統(tǒng)也總處于不穩(wěn)定的狀態(tài),我們該如何優(yōu)化整個交付流程呢?
DevOps正是解決該問題的良方,它打破了開發(fā)、測試與運維之間的壁壘,將整個CI&CD流水線化、智能化。但這還不夠,對于大規(guī)模微服務(wù)架構(gòu),我們可能會更進一步關(guān)注資源與效率問題,比如服務(wù)(或機器)能否彈性擴容,能否在資源出現(xiàn)異常時有足夠的韌性提供持續(xù)服務(wù)等。隨著云計算、容器化、微服務(wù)框架等技術(shù)的發(fā)展,業(yè)界提出了云原生架構(gòu)。它旨在將系統(tǒng)中的非核心業(yè)務(wù)代碼剝離出來,讓IaaS和PaaS接管,而在實現(xiàn)CI&CD時,直接通過Docker鏡像進行交付,配以Kubernetes進行容器編排,讓整個應(yīng)用服務(wù)處于靈活部署、靈活擴展且資源可檢測的狀態(tài)。
可以看到,在技術(shù)架構(gòu)不斷演進的過程中,運維工程師所需的能力棧也在發(fā)生變化。從最開始的手工運維到腳本化運維,再到基于云原生架構(gòu)的自動化運維,運維工程師逐漸將觸角延伸到開發(fā)領(lǐng)域,最終和開發(fā)人員共同承擔系統(tǒng)穩(wěn)定性保障的責任,這其實非常考驗工程師的綜合能力。老余的這本書,正是在這個背景下創(chuàng)作出來的,本書不僅覆蓋了Python開發(fā)、Linux集群負載(LVS、HAProxy、Nginx等)等基礎(chǔ)內(nèi)容,還包含了云原生微服務(wù)架構(gòu)下的Kubernetes、Service Mesh服務(wù)網(wǎng)格Istio等前沿技術(shù)。同時,他還用親身經(jīng)歷的億級流量系統(tǒng)來講解高并發(fā)系統(tǒng)的架構(gòu)該如何設(shè)計。本書內(nèi)容基本能涵蓋一名優(yōu)秀工程師應(yīng)該掌握的所有運維技能(不僅限于運維工程師),這確實是一本不可多得的好書!
老余告訴我,這幾年他一直在開發(fā)云原生相關(guān)產(chǎn)品,在實踐中解決過很多問題,也經(jīng)歷過挫折與困擾,但“除了學習之外,好像也沒什么其他樂趣”,2020年十一期間,他基本都是在學習和工作,他也希望能將自己所遇到的問題,以及重要的知識點分享出去,讓其他人少走彎路。老余作為一名暢銷書作者和運維專家,還能保持在一線戰(zhàn)斗,并仍能花費較大精力做高質(zhì)量的經(jīng)驗輸出,這著實讓人敬佩!
阿里云MVP、資深技術(shù)顧問
《Akka實戰(zhàn):構(gòu)建高可用分布式應(yīng)用》和
《軟件開發(fā)實踐:項目驅(qū)動式的Java開發(fā)指南》作者
杜云飛
- Linux系統(tǒng)架構(gòu)與運維實戰(zhàn)
- FreeRTOS實時內(nèi)核應(yīng)用指南
- vSphere Virtual Machine Management
- 高性能Linux服務(wù)器構(gòu)建實戰(zhàn):系統(tǒng)安全、故障排查、自動化運維與集群架構(gòu)
- Linux Shell編程從入門到精通(第2版)
- Moodle 3.x Teaching Techniques(Third Edition)
- 嵌入式實時操作系統(tǒng)μC/OS原理與實踐
- 突破平面3ds Max動畫設(shè)計與制作
- Linux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實現(xiàn)原理
- Django Project Blueprints
- 計算機系統(tǒng)的自主設(shè)計
- 跟老男孩學Linux運維:Shell編程實戰(zhàn)
- HTML5 Enterprise Application Development
- 大學計算機應(yīng)用基礎(chǔ)實踐教程(Windows 7+MS Office 2010)
- bash shell腳本編程經(jīng)典實例(第2版)