使用 Spring Boot 3 的可觀測性

工程 | Marcin Grzejszczak | 2022 年 10 月 12 日 | ...

Spring Observability 團隊一直致力於為 Spring 應用程式新增可觀測性支援,我們很高興地通知您,此功能將隨著 Spring Framework 6 和 Spring Boot 3 正式推出!

什麼是可觀測性? 在我們的理解中,它是「您可以透過檢查系統的輸出,來了解系統內部運作情況的程度」。 我們相信指標、記錄和分散式追蹤之間的互連,使您能夠推理系統的狀態,以便在應用程式中偵錯例外狀況和延遲。 您可以在 與 Jonatan Ivanov 的 Enlightning 的這一集中 觀看更多關於我們認為的可觀測性內容…

擁抱虛擬執行緒

工程 | Mark Paluch | 2022 年 10 月 11 日 | ...

Project Loom 已透過 JEP 425 進入 JDK。 自 2022 年 9 月起,它已在 Java 19 中作為預覽功能提供。 其目標是大幅減少編寫、維護和觀察高吞吐量並行應用程式的工作量。

虛擬執行緒適用的地方

這使得輕量級虛擬執行緒成為應用程式開發人員和 Spring Framework 的一個令人興奮的方法。 過去幾年表明應用程式彼此之間透過網路進行通訊的趨勢。 許多應用程式使用資料儲存、訊息代理和遠端服務。 如果 I/O 密集型應用程式是使用諸如 InputStream 和同步 HTTP、資料庫和訊息代理用戶端等阻塞式 I/O 設施構建的,它們將主要受益於虛擬執行緒。 在虛擬執行緒上執行此類工作負載…

本週的 Spring - 2022 年 10 月 11 日

工程 | Josh Long | 2022 年 10 月 11 日 | ...

嗨,Spring 愛好者! 歡迎來到另一期本週的 Spring! 我在打包和準備前往比利時安特衛普參加總是很棒的 Devoxx 展會時撰寫了這一期。 在疫情期間,我非常想念這個展會,並且非常期待回來。 我也希望能在那裡遇到你們所有人! 我將與我的朋友 James Ward 共同展示 Spring Boot 3 和 Kotlin 中的一些新穎之處。 這將會非常棒 - 加入我們,我們一起玩得開心!

現在,我們有很多東西要介紹,所以讓我們直接深入了解吧!

Spring 技巧:Spring Boot & Apache Kafka

工程 | Josh Long | 2022 年 10 月 10 日 | ...

嗨,Spring 愛好者! 在本期 Spring 技巧中,我將介紹備受尊敬的 Apache Kafka 代理及其在 Spring Boot 生態系統中各個抽象層次的整合。

想了解更多關於事件驅動架構、AOT 和 GraalVM、Apache Kafka 和 Spring Boot 的資訊嗎? SpringOne 2022 即將到來! 如果您想有機會向來源學習,那麼我希望您能於 2022 年 12 月 6-8 日加入我們,就在我的家鄉美國西海岸我最喜歡的城市舊金山。(提示:如果您現在註冊,使用此代碼 S1VM22_Advocate_200 可以從通行證價格中獲得 200 美元的折扣。)

一個精彩的 Podcast:Spring 和 Java 社群傳奇人物 Marten Deinum

工程 | Josh Long | 2022 年 10 月 6 日 | ...

嗨,Spring 愛好者! 在本期中,Josh Long (@starbuxman) 與長期的 Spring 社群成員和傳奇人物 Marten Deinum (@mdeinum) 談論潛水、軟體、Spring、社群等等。

另外:我修復了過去幾集中間的奇怪沉默! 感謝您與我一起度過難關。 我不知道出了什麼問題,但我現在知道如何修復它了

想在我們的生態系統中認識更多像 Marten 這樣了不起的人嗎? SpringOne 2022 即將到來! 我覺得這就像之前那種焦慮、興奮的時刻,有點像重要的節日,你會收到禮物! 隨之而來的是 Spring Boot…

本週的 Spring - 2022 年 10 月 4 日

工程 | Josh Long | 2022 年 10 月 4 日 | ...

嗨,Spring 愛好者! 歡迎來到另一期本週的 Spring! 現在是 2022 年 10 月 4 日,我身在德州奧斯汀,參加之前名為 Kafka Summit 的新版本展會,在這裡與大家討論 Spring Boot 和 Apache Kafka 的絕佳機會。 12 號我將在比利時安特衛普參加精彩的 Devoxx 展會。 10 月 17-20 日,我將在拉斯維加斯參加新版本的 JavaOne。 而且,還有更多,但我不能確切地說。 請繼續關注!

至於現在,我很高興來到這裡! 我們本週有很多很酷的東西要介紹,所以讓我們直接深入了解吧…

一個精彩的 Podcast:思想領袖 Chris Richardson(不,我不是在諷刺地使用這個標題!)

工程 | Josh Long | 2022 年 9 月 29 日 | ...

嗨,Spring 愛好者! 在本期中,Josh Long (@starbuxman) 與他的朋友 Chris Richardson (@crichardson) 談論,Chris Richardson 幫助闡明和推進了雲端運算、反應式程式設計、微服務、領域驅動設計、事件溯源等等,這些都遠早於時代精神。 此外,我們過去曾一起工作!

想在我們的生態系統中認識更多像 Chris 這樣了不起的人嗎? SpringOne 2022 即將到來! 我覺得這就像之前那種焦慮、興奮的時刻,有點像重要的節日,你會收到禮物! 隨之而來的是 Spring Boot 3 和 Spring Framework 6。 我們將宣布…

刪除密碼:Spring Boot 應用程式到 Azure 服務的無密碼連線

工程 | Josh Long | 2022 年 9 月 27 日 | ...

使用使用者名稱/密碼憑證從一個應用程式存取另一個應用程式會帶來巨大的安全風險,原因有很多。 今天,我們宣布 Java 應用程式到 Azure 資料庫和事件服務的無密碼連線的預覽版,讓您最終可以擺脫使用密碼。

密碼的安全性挑戰

應謹慎使用密碼,開發人員絕不能將密碼放置在不安全的位置。 許多 Java 應用程式使用使用者名稱和密碼,或其他敏感憑證(例如存取權杖或連線字串)連線到後端資料、快取、訊息傳遞和事件服務。 如果洩露,密碼可用於未經授權地存取敏感資訊,例如您為即將到來的活動建立的銷售目錄,或僅僅是必須保密的所有客戶資料。

將密碼嵌入到應用程式本身中會帶來巨大的安全風險,原因有很多,包括透過程式碼儲存庫進行發現(請參閱下面的圖 1)。 許多開發人員使用環境變數外部化此類密碼,以便應用程式可以從不同的環境載入它們。 但是,這只會將風險從程式碼本身轉移到執行環境。 任何獲得環境存取權限的人都可以竊取密碼,這反過來會增加您的資料外洩風險。

圖 1 – 顯示具有嵌入式使用者名稱和密碼以連線到資料庫的 Java 程式碼

我們的客戶可能有嚴格的安全要求,要求在不向開發人員、運營商或任何其他人暴露密碼的情況下連線到 Azure 服務。 他們經常使用保存庫來儲存密碼並將其載入到應用程式中,並且他們透過新增密碼輪換要求和程序來進一步降低風險。 這反過來又增加了運營複雜性,並可能導致應用程式連線中斷。

無密碼連線 – 零信任

現在,您可以使用應用程式中的無密碼連線,透過免程式碼配置連線到基於 Azure 的服務。 您不再需要輪換密碼。 使用「永不信任,始終驗證且無需憑證」的原則,零信任透過在授予對後端服務的存取權限之前驗證身份來幫助保護所有通訊的安全,無論是機器還是使用者。

「我們擁有的每個密碼和每個金鑰保存庫都是潛在的負債,這增加了更多的管理費用和成本。 我總是很高興看到更多的身份驗證和授權為我們處理,並作為簡單的整合運送到 Azure 上的 Java 和 Spring 生態系統中。 當我刪除我們的金鑰保存庫時,我不會流下任何眼淚,現在 PostgreSQL 支援無密碼連線了。」
-Jonathan Jones,首席解決方案架構師,Swiss Re Management Ltd。(瑞士)

使用受控識別和 Azure RBAC (角色型存取控制) 的組合,是 Java 應用程式安全、無密碼連線至 Azure 服務的建議驗證選項。開發人員或運營人員不需要手動追蹤和管理受控識別的許多不同密碼,因為這些任務由 Azure 在內部安全地處理。

您可以使用服務連接器設定至 Azure 服務的無密碼連線(請參閱下圖 2),或者您可以手動設定它們。服務連接器可在 Azure Spring Apps、App Service 和 Azure Container Apps 等應用程式託管服務中啟用受控識別。它使用受控識別和 Azure RBAC 配置後端服務的無密碼連線,並為應用程式提供必要的連線資訊 – 不再需要密碼。

圖 2 – 服務連接器為 Java 應用程式配置至 PostgreSQL 資料庫的無密碼連線

如果您檢查配置為無密碼連線的應用程式的執行環境,您可以看到完整的連線字串。例如,圖 3 顯示了它如何攜帶資料庫伺服器位址、資料庫名稱以及委派驗證給 Microsoft Azure 的 JDBC 驗證外掛程式的指令。

圖 3 – 資料來源配置 “spring.datasource.url” 顯示無密碼連線

讓我們考慮一個連接到 PostgreSQL 資料庫的 Spring Boot 應用程式,該資料庫使用 Spring Cloud Azure Starter。該 Starter 為 Spring Data JPA 模組組合一個不帶密碼的連線字串。從連線字串中,驅動程式瞭解它必須載入 Azure 的 JDBC 驗證外掛程式,該外掛程式使用 Azure Identity Client Library 來獲取存取權杖。驅動程式使用權杖作為密碼登入資料庫 - 不再需要密碼。

對於本地開發和測試,開發人員可以使用相同的配置來連接到服務,而無需使用密碼。您將通過 Azure CLI、IntelliJ 或任何開發工具進行身份驗證,並使用該身份來保護應用程式的安全存取,以便與 Azure 服務建立無密碼連線。

了解更多資訊並刪除密碼!

您可以逐漸擺脫在應用程式中使用密碼。立即遷移您現有的 Java 應用程式,以使用 Azure 服務的無密碼連線!

閱讀更多關於無密碼連線的資訊 – https://aka.ms/Delete-Passwords

資源

<tbody>

<tr>
    <td>Azure Service</td>
    <td>Java Quickstart</td>
    <td>Spring Quickstart</td>
    <td>Migration Guide</td>
</tr>


<tr>
    <td> Azure Database for MySQL</td>
    <td>
    <a href="https://learn.microsoft.com/en-us/azure/mysql/single-server/connect-java?toc=%2Fazure%2Fdeveloper%2Fintro%2Ftoc.json&amp;bc=%2Fazure%2Fdeveloper%2Fintro%2Fbreadcrumb%2Ftoc.json&amp;tabs=passwordless">JDBC</a>
    </td>
    <td>
        <div><a href="https://learn.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-data-jdbc-with-azure-mysql?tabs…

本週 Spring - 2022 年 9 月 27 日

工程 | Josh Long | 2022 年 9 月 27 日 | ...

嗨,Spring 愛好者們! 歡迎來到另一期的本週 Spring

已經來到九月的最後一週了!今年已經過了一大半了。 白晝時間越來越短。 南瓜香料拿鐵也上市了。 越來越黑和冷的天氣有點令人沮喪,但今年這個時候我仍然感到興奮和高興。 知道為什麼嗎?

SpringOne 2022 就要來了! 我感覺這就像是在重要的節日之前那種焦慮、興奮的時刻,你會收到禮物! 同時,Spring Boot 3 和 Spring Framework 6 也會發布。 當然,我們將在 Spring 部落格上宣布所有消息,但如果您想有機會從源頭學習,那麼我希望您能加入我們,在 2022 年 12 月 6-8 日,就在我的家鄉舊金山,我最喜歡的美國西海岸城市。 )Psst.: 如果您現在註冊,可以使用此代碼 S1VM22_Advocate_200 獲得 200 美元的通行證價格折扣…

Spring Boot 3.0.0-M5 中的原生支援

工程 | Stéphane Nicoll | 2022 年 9 月 26 日 | ...

Spring 團隊一直在研究 Spring 應用程式的原生映像檔支援已有一段時間。經過在 Spring Native 實驗性專案中使用 Spring Boot 2 進行 3 年以上的孵化後,原生支援將與 Spring Framework 6 和 Spring Boot 3 一起轉為正式推出!

原生映像檔為 Java 應用程式提供幾乎即時的啟動時間和減少的記憶體消耗。 最近的 Spring Boot 3.0.0-M5 版本標誌著我們首次要求更廣泛的社群針對我們的原生故事提供回饋。 如果您需要複習基礎知識,請參考 3 月底的 Ahead Of Time 基礎知識部落格文章。 您還可以了解 如何準備您的應用程式以用於 Spring Boot 3.0

取得 Spring 電子報

透過 Spring 電子報保持聯繫

訂閱

搶先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉行的活動

查看 Spring 社群中所有即將舉行的活動。

查看全部