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