微服務

雲原生時代下微服務架構演進之路 (13)

本篇文章是雲原生時代下微服務架構演進之路的最後一篇,與以往不同的是,本篇主旨

是帶您回顧、總結下整個系列文章的內容。 整體來說,將其歸納為三大板塊:

  • 單片 VS Micro 服務
  • SWIFT
  • Spring

單片 VS Micro 服務

從軟體架構的發展趨勢出發:

首先談到了Monolithic架構的優劣勢,並逐步延伸出Microservices架構,同時總結了微服務架構的優勢:

  • 應用程式擴展性
  • Two-Pizza團隊
  • 資料安全性
  • 快速反覆運算、交付、驗證
  • 技術多樣化
  • 容錯性

雖然微服務架構具有諸多優勢,那麼如何設計好一個微服務架構就變得更加重要了。 這裡就延伸出了微服務拆分原則的內容:

即微服務拆分、技術選型、業務開發落地。 而對於微服務的拆分,理論上的通用指導原則採用的是Domain Driven Design(領域驅動設計,簡稱DDD)

作為雲原生的提出者VMware,對於微服務架構設計的解決方案,首要做的是對應用現代化策略的評估和規劃,這種評估和規劃是從技術和業務兩個角度進行的。 同時剛剛提到的策略採用的是5R模式。 即(Retire、Retain、Rehost、Replatform、Refactor

另一方面從技術選型的角度,VMware作為Spring的原廠,透過Spring Boot以及Spring Cloud從 JAVA技術棧的角度給出了開箱即用的解決方案。

SWIFT

SWIFT是一種輕量級、敏捷、高效同時又快速的將單體應用拆分、轉化為微服務架構的方法。 進一步我們瞭解到完整的SWIFT流程:

在整個SWIFT流程中,該系列文章重點介紹了Event Storming、Boris Workshop、Snap-E的實踐過程。

Event Storming

Event Storming是一種靈活的研討會(workshop)形式,用於複雜業務領域的協作探索。

它可以按照不同的形式進行展開,適用於以下多種場景。 在Event Storming章節,主要是圍繞以下三個主題進行的介紹:

  • Event Storming 歷史、由來
  • Event Storming 具體實施流程
  • Event Storming 的一個簡單Demo

Boris Workshop

Boris: 確定複雜系統中服務之間的關係,以揭示概念上的目標系統體系架構,並且使用SNAP進行記錄。 同時在Boris章節,主要是圍繞以下三個主題進行的介紹:

  • Boris歷史、由來
  • Boris具體實施流程
  • Boris的具體例子

Snap-E

Snap-E是英文的縮寫,全稱為: Snap Not Analysis Paralysis – Enhanced.

簡單的理解,我們可以透過Snap-E清楚的了解某個具體微服務內部結構資訊,比如這個微服務內部包含多少個APIs、數據實體,是否存在UI介面,是否與外部系統交互等。 同時在Boris章節,主要是圍繞以下三個主題進行的介紹:

  • Snap-E簡介
  • Snap-E具體實施流程
  • Snap-E的具體例子

至此從業務角度,我們可以很好的將微服務進行了劃分,那麼一個成熟、高效、開箱即用的微服務開發框架就變得尤為重要,而在Java的世界里,我們就不得不提到最具有統治力的Spring,

Spring

首先是對Spring Boot進行了介紹,內容包括:

  • Spring Boot發展歷史
  • Spring Boot核心特性
  • Spring Boot 版本遷移

從Spring Boot的發展歷史說起,再到六大核心特性(遵循約定大於配置的核心思想、完全不使用XML配置、內嵌Servlet容器、依賴管理 、應用的可觀測性、對Spring自動裝配)

最後給出了Spring Boot版本遷移的最佳實踐。

其次對Spring Cloud進行了介紹,內容包括:

  • Spring Cloud簡介
  • Spring Cloud的前生今世
  • Spring Cloud & Kubernetes最佳實踐

從Spring Cloud定義說起,到微服務架構系統系面臨的一些問題,而Spring Cloud正好提供了開箱即用的解決方案,可以幫助開發者快速完成微服務架構的構建。

在Spring Cloud的前生今世章節中,我們談到了傳統意義上的Spring Cloud即Spring集成Netflix 一些元件。 但是隨著時間的推移,有一些Netflix元件已經處於maintenance的狀態,從而Spring 對相關的元件也進行了改進和升級。 最後我們談到了關於Spring Cloud與Kubernetes整合時的三種不同解決方案。

再者對在微服務架構下消息中間件的解決方案進行了深入的討論,即Spring Cloud Stream。 首先從概念入手,瞭解到Spring Cloud Stream是什麼,解決了什麼問題,並且對其核心概念以及如何使用進行了介紹。

接下來我們對Spring 黑科技之Spring Native進行了介紹,主要分為兩部分,首先是Spring Native的簡介 ,其次是Spring Native的深入介紹。 在深入介紹的章節中,我們首先談到了相比與傳統JVM的優勢有哪些,並且接著介紹了使用native image的流程是怎樣的。

最後是對Spring Boot 3.0 以及Spring 6.0的介紹,以上就是關於《雲原生時代下微服務架構演進之路》系列文章的整體回顧,也非常感謝大家的閱讀。

作者簡介

李剛,VMware 大中華區應用現代化部門高級系統架構師,資深企業級軟體開發和軟體系統架構師。 Spring Cloud開源社區項目貢獻者、Netflix開源社區貢獻者。 近幾年,參與並主導了許多大型企業客戶的應用現代化數位轉型專案,涉及物流、製造、金融等諸多領域。 特別對微服務實現方法、現代化應用架構設計、雲原生實施落地、開源軟體技術等方面有著豐富經驗。