簡化 JVM 上雲
范聖佑 (Shengyou Fan)


微軟最有價值專家


IT EXPLAINED 數位轉型攻略 IV
透過 Azure Spring Cloud
提升開發、發佈


及服務監控效率
本⽇⼤綱
• 回顧 JVM ⽣態系及上雲痛點


• Azure Spring Cloud 簡介


• ⽰範開發 Spring Boot 應⽤並部署⾄ Azure Spring Cloud


• 實作回顧及延伸討論


• 學習資源
Spring - 最受歡迎的 Java 框架
Source: State of Spring 2020 Report - https://tanzu.vmware.com/content/ebooks/state-of-spring-2020
的開發者使⽤ Spring Boot 做為他們唯
⼀或主要的開發平台
52%
顯著的年增成長及採⽤率
開發 Spring 應⽤的常⾒挑戰
管理 Spring Boot 應⽤的雲基
礎設施需要龐⼤的管理成本
難以管理應⽤程式的⽣命週期


為應⽤程式做故障排除很痛苦
Spring 

Cloud Apps
Spring Cloud
Components
Spring Cloud 

Components
Cloud 

Services
App 

Consumers
Breaker
dashboard
Service
registry
Distributed
tracing
Config
dashboard
IoT
Mobile
Browser
API
Gateway
Microservices
Microservices
Microservices
Message brokers
Databases
開發團隊需要⾃⾏管理基礎架構、更新和故障排除
Azure Spring Cloud
眾多選擇並可整合到 Azure 的⽣態系及服務裡
完全託管的


基礎架構
內建應⽤程式


⽣命週期管理
易於使⽤的


監控服務
企業級應⽤
Azure Spring Cloud
由 Microsoft 與 VMware 共同建構與營運的 Spring Cloud 完全託管服務
Spring 與 Azure 的各項整合
App Configuration


Event Hubs


Service Bus


Storage


Redis


Functions
Spring Cloud
SQL Database


MySQL


PostgreSQL


Maria DB


Cosmos DB


• SQL


• MongoDB


• Cassandra
Spring Data
Active Directory (AAD)


AAD B2C


Spring Security
SQL Database


PostgreSQL


MySQL
R2DBC
Spring Cache
Redis Cache
Storage


Spring Resource
Spring Messaging
Service Bus
Micrometer
Monitor
只需幾⾏設定和少量的程式碼變更,Spring 開發者就可以連接到 30 多個 Azure 服務
強⼤的夥伴⽣態
Solution templates for
WebLogic on Azure IaaS
Confluent Cloud with Azure
Portal and CLI integration
Jointly built and operated
service—Azure Spring Cloud
Redis Enterprise on Azure
managed infrastructure
Solution templates for
WebSphere on Azure IaaS
Jointly supported JBoss EAP


on App Service and VMs
Elastic Cloud on Azure


Marketplace
Demo 1:建立 Spring Boot 應⽤程式
• ⼯具


- IntelliJ IDEA


- Azure Toolkit for IntelliJ


- Azure CLI


- Azure Spring Cloud extension for Azure CLI


• 步驟


- 使⽤ IntelliJ IDEA 建立 Spring Boot 專案


- 使⽤ Docker Compose 建立開發⽤ MySQL


- 本機測試
Demo 2:部署⾄ Azure Spring Cloud
• Azure 設定


- 建立 Azure Database for MySQL servers


- 建立 Azure Spring Cloud


- 建立 App


• 步驟


- 使⽤ Gradle 建立 (Fat) Jar 檔


- 使⽤ IntelliJ IDEA 或 Azure CLI 部署


- 取得測試位址
Demo 3:建立 Spring Cloud Config server
• 步驟


- 建立 Spring Cloud Config Repository


- Push ⾄ Git Repository


- 設定 Azure Spring Cloud Config Server 的 Repository
位置
Demo 4:導入微服務架構
• 步驟


- 在 Spring Boot 應⽤程式增加相依套件


- 修改程式碼讀取 Config Server 上的 Value


- 部署更新
Demo 5:建立 Spring Cloud Gateway
• Azure 設定


- 建立 App 並開啟 Public Access


• 步驟


- 建立全新 Spring Cloud Gateway 應⽤程式


- 設定 Application Configuration


- 使⽤ Gradle 建立 (Fat) Jar 檔


- 使⽤ IntelliJ IDEA 或 Azure CLI 部署
Demo 6:藍綠部署
• 步驟


- 修改 Spring Boot 應⽤程式⾏為


- 建立開發版 (Fat) Jar 檔


- 部署開發版


- 測試開發版⾏為


- 部署成正式版上線
Demo 7:查看服務架構地圖、調整 Scale、效能報表及 Log
• Azure 設定


- 服務架構地圖


- 調整 Scale


- 效能報表


- Log
實作回顧
延伸討論
• 導入 CI/CD ⼯具


• 實作 Transaction Script pattern (Spring Cloud OpenFeign)


• Auto-Scaling
成功案例
https://docs.microsoft.com/en-us/
azure/spring-cloud/quickstart
Azure Spring Cloud
官⽅說明⽂件
https://github.com/microsoft/
azure-spring-cloud-training
快速上⼿教材
https://azure.microsoft.com/en-
us/develop/java/
Java on Azure
入⼝⾴
https://azure.microsoft.com/en-us/
services/spring-cloud/
Azure Spring Cloud
產品⾴
⽰範專案


—
https://github.com/shengyou/azure-spring-cloud-demo
👈 歡迎加 FB 好友


范聖佑 (Shengyou Fan)


shengyoufan@gmail.com
關注 Azure 粉專
保持交流

簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率