Java開發(fā)者可以通過使用谷歌云功能來構(gòu)建云原生應(yīng)用。它支持無服務(wù)器計算,并提供一個簡單的API來處理數(shù)據(jù)和響應(yīng)各種事件。Java開發(fā)人員可以利用幾種無服務(wù)器架構(gòu)為客戶端提供云原生應(yīng)用開發(fā)服務(wù)。
AWS Lambda和Azure函數(shù)是兩個最受歡迎的云原生服務(wù)趨勢,有助于管理和部署可擴展的解決方案。流行的微服務(wù)框架是Spring Boot、Quarkus、Vert.x和Micronaut,它們正在成為Java云原生開發(fā)的中流砥柱。
云原生安全性:Quarkus和Micronaut最佳實踐
Quarkus是一個輕量級框架,它占用的內(nèi)存很少。它有助于快速啟動,旨在提高開發(fā)效率。Micronaut在效率方面的表現(xiàn)與此相似,但它有一個更大、更活躍的社區(qū)。
Quarkus占用內(nèi)存少,非常適合Java應(yīng)用程序的快速啟動。開發(fā)人員應(yīng)該在社區(qū)論壇中提出問題,以獲得即時響應(yīng),并在使用該框架時獲得快速的問題解決方案。Micronaut為許多第三方框架提供開箱即用的支持,如Kafka、S3、rabbitmq等。
下面是用Java構(gòu)建云原生應(yīng)用程序時Quarkus和Micronaut的一些最佳實踐:
l 開發(fā)人員可以在JUnit測試期間使用數(shù)據(jù)庫開發(fā)服務(wù)來自動運行容器。Quarks dev命令啟用了dev模式,它的實時重載特性非常有用。
l 你可以使用Quarkus Panache ORM在代碼中實現(xiàn)一個數(shù)據(jù)層。你可以添加定制的find方法,并使用REST端點定義存儲庫和資源類。Quarkus應(yīng)用程序可以很容易地部署到Kubernetes集群,而無需創(chuàng)建YAML文件。
l 要映射機密,請使用性能,若要在源代碼中啟用健康檢查,請應(yīng)用夸克-庫伯內(nèi)特模塊。你還可以通過在代碼中將quarkus.kubernetes.deploy設(shè)置為true來啟用自動部署,甚至可以將默認(rèn)部署目標(biāo)從kubernetes更改為OpenShift。
l 你可以通過以下方式訪問開發(fā)UI控制臺http://localhost:8080/q/dev并包含更多的模塊。使用圖形用戶界面,你可以配置設(shè)置和部署Java應(yīng)用程序。Quarkus還支持持續(xù)測試,并對代碼變更提供即時反饋。為此,你必須在代碼中包含Quarkus測試模塊和放心庫。所有的測試類都必須用@QuarkusTest。
l 開發(fā)人員應(yīng)該使用Micronaut對服務(wù)發(fā)現(xiàn)、身份驗證、分布式配置和客戶端負載平衡的本地支持。控制反轉(zhuǎn)(IoC)、面向方面編程(AOP)技術(shù)、配置和配置共享、HTTP路由和代理可以幫助構(gòu)建模塊化組件。
l Micronaut使用annotate處理器直接與Java編譯器集成,并支持Reactive streams標(biāo)準(zhǔn)。開發(fā)人員應(yīng)該用它測試和部署無服務(wù)器功能,包括不同的云計算平臺和提供商,如Google Cloud Functions、AWS Lambda和Azure Functions。
l Micronaut使為Java應(yīng)用程序創(chuàng)建可伸縮的微服務(wù)變得容易。Java開發(fā)人員應(yīng)該使用它的無縫測試能力和健壯的產(chǎn)品,比如編譯時依賴注入、代碼樣本和大量文檔。
l Quarkus的GraalVM原生映像編譯技術(shù)可以將Java應(yīng)用程序轉(zhuǎn)換為云原生代碼,并利用SubstrateVM進行翻譯。它的其他特性,比如類路徑調(diào)整和構(gòu)建時配置增強,應(yīng)該被用來簡化開發(fā)效率和減少云原生應(yīng)用程序的大小。
結(jié)論
使用Java開發(fā)云原生應(yīng)用程序?qū)⒃鰪娦阅堋⒖缮炜s性和靈活性,使部署后的維護變得更加容易。在微服務(wù)架構(gòu)中,單個服務(wù)具有彈性,隔離可以將安全事件的影響降至最低。