企業(yè)級Java現(xiàn)代化:寫給開發(fā)者的云原生簡明指南
定 價:79 元
- 作者:(德)Markus Eisele(馬庫斯·艾澤勒), Natale Vinto(納塔萊·文托)
- 出版時間:2022/10/1
- ISBN:9787121443374
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8-62
- 頁碼:164
- 紙張:
- 版次:01
- 開本:16開
本書討論了如何利用現(xiàn)代化的技術(shù)開發(fā)新一代的企業(yè)級Java應(yīng)用。傳統(tǒng)的單體應(yīng)用已經(jīng)難以適應(yīng)云環(huán)境下的開發(fā)和部署,因此,作者首先介紹了在云環(huán)境下需要什么樣的Java應(yīng)用架構(gòu)和開發(fā)實踐。作者基于Quarkus、Spring Boot和Vert.x技術(shù)搭建了一個典型的云原生分布式應(yīng)用,并將其容器化和部署至Kubernetes。Serverless是一種新興的應(yīng)用開發(fā)和部署模式,能夠最大化地節(jié)省成本,作者以Knative平臺為例,講解了如何將我們開發(fā)的云原生應(yīng)用部署至Serverless平臺。在應(yīng)用現(xiàn)代化的過程中,我們不僅要面臨新應(yīng)用的開發(fā),更要處理已有的遺留應(yīng)用,作者花費大量的篇幅介紹了對傳統(tǒng)應(yīng)用進(jìn)行現(xiàn)代化改造的行動方案,其中涉及大量最佳實踐,以及實用的技術(shù)和工具。
Markus Eisele是Red Hat在EMEA的開發(fā)者項目的負(fù)責(zé)人。他與不同供應(yīng)商的Java EE服務(wù)器打交道已經(jīng)超過14年。他是一名Java Champion,前Java EE的專家組成員,也是德國首屈一指的Java會議JavaLand的創(chuàng)始人。Natale Vinto是一名軟件工程師,在IT和ICT技術(shù)方面有超過10年的專業(yè)經(jīng)驗,在電信和Linux操作系統(tǒng)方面有深厚的背景知識。如今,Natale是紅帽O(jiān)penShift的開發(fā)者倡導(dǎo)者,幫助社區(qū)中人和客戶在Kubernetes和云原生戰(zhàn)略上獲得成功。
張衛(wèi)濱,天津大學(xué) 2007 屆研究生,有著十多年的企業(yè)級軟件研發(fā)和設(shè)計經(jīng)驗,熱愛探索和研究新技術(shù),目前主要關(guān)注云原生、微服務(wù)、自動化測試等領(lǐng)域。翻譯出版了十多本流行的技術(shù)圖書,如《Spring 實戰(zhàn)》(第 3 版到第 6 版)、《Spring Data 實戰(zhàn)》、《RxJava反應(yīng)式編程》等。業(yè)余時間擔(dān)任技術(shù)社區(qū) InfoQ 的編輯,撰寫、翻譯了數(shù)百篇技術(shù)文章和新聞。
序言
前言
第1章 重新回顧企業(yè)級開發(fā)
什么是公有云與私有云?為何要使用云
“云原生”的含義
Kubernetes原生的開發(fā)
面向開發(fā)者的容器和編排
容器原生的運(yùn)行時
Kubernetes的不同風(fēng)格
管理開發(fā)的復(fù)雜性
DevOps與敏捷
小結(jié)
第2章 云原生Java之路
云原生工作坊
架構(gòu)
使用Quarkus創(chuàng)建Inventory微服務(wù)
創(chuàng)建Quarkus Maven項目
創(chuàng)建領(lǐng)域模型
創(chuàng)建RESTful服務(wù)
在開發(fā)模式下運(yùn)行應(yīng)用
使用Spring Boot創(chuàng)建Catalog微服務(wù)
創(chuàng)建Maven項目
創(chuàng)建領(lǐng)域模型
創(chuàng)建數(shù)據(jù)資源庫
創(chuàng)建RESTful服務(wù)
使用Vert.x創(chuàng)建Gateway服務(wù)
創(chuàng)建Vert.x Maven項目
創(chuàng)建API Gateway
使用Node.js和AngularJS創(chuàng)建前端
運(yùn)行前端
小結(jié)
第3章 輕裝前行
是三層還是分布式系統(tǒng)
技術(shù)更新、現(xiàn)代化和轉(zhuǎn)型
6R
分解并容器化
將Kubernetes作為新的應(yīng)用服務(wù)器
定義目標(biāo)平臺
強(qiáng)制遷移的步驟和工具
創(chuàng)建應(yīng)用組合
為大事做準(zhǔn)備
小結(jié)
第4章 基于Kubernetes的軟件開發(fā)平臺
開發(fā)人員與Kubernetes
Kubernetes能夠做什么
Kubernetes不能做什么
基礎(chǔ)設(shè)施即代碼
容器鏡像
Dockerfile
構(gòu)建容器鏡像
運(yùn)行容器
鏡像倉庫
部署至Kubernetes
Pod
Service
Deployment
Kubernetes與Java
Jib
JKube
小結(jié)
第5章 超越原樣轉(zhuǎn)移:處理遺留系統(tǒng)
管理遺留系統(tǒng)
評估要遷移的應(yīng)用
評估要遷移的功能
遷移方式
保護(hù)遺留應(yīng)用(Replatform)
構(gòu)建新的應(yīng)用(Refactor)
挑戰(zhàn)
避免雙重寫入
長時間運(yùn)行的事務(wù)
快速移除舊代碼
集成
小結(jié)
第6章 構(gòu)建Kubernetes原生的應(yīng)用
尋找可擴(kuò)展性和復(fù)雜性之間的平衡點
現(xiàn)代化架構(gòu)的功能性需求
API驅(qū)動
服務(wù)發(fā)現(xiàn)
安全與授權(quán)
監(jiān)控
跟蹤
日志
CI/CD
調(diào)試微服務(wù)
端口轉(zhuǎn)發(fā)
Quarkus遠(yuǎn)程開發(fā)模式
Telepresence
小結(jié)
第7章 未來之路:Serverless
什么是Serverless
架構(gòu)的演進(jìn)
使用場景:數(shù)據(jù)、AI與機(jī)器學(xué)習(xí)
使用場景:邊緣計算和IoT
Knative:適用于Kubernetes的Serverless
事件驅(qū)動的Serverless架構(gòu)
面向Java應(yīng)用的函數(shù)即服務(wù)
Java應(yīng)用的函數(shù)部署
Boson Function CLI
小結(jié)
索引