架構這件事
Azure 可以幫助什麼
By Alan Tsai
@Alan Tsai 的學習筆記
簡單自我介紹
• Alan Tsai
• 蔡孟玹
• 後端工程師
• .NET 技術爲主
• 喜歡學習不同東西
• Azure
• Data Science、Chatbot
• DevOps、Container
• 架構、加强開發的 Tools
• 翻譯文章/軟體
• 看小說 2
@Alan Tsai 的學習筆記
教就是最好的學習方式 - 喜歡考證驗證所學
3
@Alan Tsai 的學習筆記
喜歡技術分享
▰2020 Global Azure
▻Azure API Management - 協助邁向Open API及Micro Service架構的好用服務
▰2020 Microsoft Online Tech Forum
▻Keep Azure cost down
▰2019 Microsoft Insider DevTour Taipei
▻Future proof your desktop apps with .NET core
▰.NET Conf 2019
▻用 Bot Framework 開發 Chatbot = 支援多平臺 + 包含平臺客制功能 - 以Line爲例
4
@Alan Tsai 的學習筆記
喜歡技術分享
▰Trainocate
▻AZ-104、DP-200、DP-201
▰台灣智慧自動化與機器人協會
▻運用Python進行大數據分析
▻機器學習基礎理論課程及人工智慧 – ML.NET
▰中華電信學院
▻使用Azure AI打造有人工智能的Line聊天機器人
▻DevOps與CI/CD實務研習班
▰聖森内部教育訓練
▻Azure DevOps CI/CD 應用
5
@Alan Tsai 的學習筆記
歡迎訂閲、按贊 + 分享
contact@alantsai.net
• Alan Tsai 的學習筆記
• https://blog.alantsai.net
• FB粉絲頁
• http://fb.alantsai.net
• Youtube
• http://yt.alantsai.net
@Alan Tsai 的學習筆記
Azure 有 600 個以上的服務
7
“Microsoft lists over
600 Azure
services,[4] of which
some are covered
below:”
@Alan Tsai 的學習筆記
8https://pptto.alantsai.net/azure-services
9
沒有最好,只有最適合
@Alan Tsai 的學習筆記
Agenda
10
▰架構這件事
▰服務介紹
▰整合
架構這件事
11
@Alan Tsai 的學習筆記
傳統 vs 現代
12
https://pptto.alantsai.net/arc-guide
@Alan Tsai 的學習筆記
架構風格
13
▰N-Tier Architecture
▰Microservices
▰Web-Queue-Worker
▰Big Data
@Alan Tsai 的學習筆記
N-Tier
14
▰最常見的 3層式架構
▻Presentation
▻Business
▻Data
▰Layer vs Tier
▻Layer 邏輯上的切割
▻Tier 實際上的切割
https://pptto.alantsai.net/arc-ntier
@Alan Tsai 的學習筆記
N-Tier
15
▰優點
▻沒什麼學習曲線,大家都很熟悉
▻Debug 相對容易
▰挑戰
▻Monolithic 架構導致沒法針對某個功能部署
▻大家都要熟悉同一套開發
https://pptto.alantsai.net/arc-ntier
@Alan Tsai 的學習筆記
Microservices
16
▰每一個服務
▻小小的
▻能夠獨立運作
▻互相透過 API 溝通
▰優點
▻輕量、混合技術、Scale
▰挑戰
▻管理複雜、Debug 相對困難、資料一致性問題、網路問題
https://pptto.alantsai.net/arc-microservices
@Alan Tsai 的學習筆記
Microservices vs Monolithic
17https://www.martinfowler.com/bliki/MonolithFirst.html
@Alan Tsai 的學習筆記
Web-Queue-Worker
18
▰Front End 和 Worker 沒有直接相依
▻不會互相影響服務
▻可以分別 scale
▰有可能有無形的相依
▻例如 Front 和 Worker 共用 schema
https://pptto.alantsai.net/arc-web-queue
@Alan Tsai 的學習筆記
Big Data
19
▰Cold 和 Hot Path
▻Cold 非及時
▻Hot 及時
▰需要處理大量資料或者報表時候適合
https://pptto.alantsai.net/arc-bigdata
@Alan Tsai 的學習筆記
Microsoft Azure Well-Architected Framework
20
Cost Optimization Operational Excellence Performance Efficiency
Reliability Security
https://pptto.alantsai.net/arc-framework
21https://www.redhat.com/en/topics/cloud-computing/iaas-vs-paas-vs-saas
Operational
Excellence
@Alan Tsai 的學習筆記
Scale up/out
22
https://nl.pinterest.com/pin/315463148894955389/
Performance
Efficiency
@Alan Tsai 的學習筆記
內外合一
23
程式碼 環境
服務介紹
24
25
Compute Storage Application
Load Balance
運算類型
服務介紹
26
@Alan Tsai 的學習筆記
運算類型
27
▰Virtual Machine / Virtual Machine Scale Set
▻IaaS 服務
▰App Service / Web App
▻PaaS 服務
▻API App
▻Mobile App
▻Container Instance
VM VMSS
App Service Web App
@Alan Tsai 的學習筆記
運算類型
28
▰Azure Function
▻排程/無伺服器服務
▰Azure Batch
▻High Performance Compute (HPC)
▰Service Fabric
▻.NET Microservice 服務
▰Azure Kubernetes Service
▻PaaS Kubernetes 服務
Azure Function Azure Batch
Service Fabric AKS
VM/VMSS
運算類型
29
@Alan Tsai 的學習筆記
Virtual Machine
30
▰一切自己掌控
▻包含打 OS patch
▰SLA 保證
▻2 台同 Availability Set
▻99.95%
▻1 台 Premium+ SSD Disk
▻99.9%
https://pptto.alantsai.net/vm-sla
Cost
Optimization
Operational
Excellence
Reliability
@Alan Tsai 的學習筆記
Availability Set 這件事
31
Reliability
@Alan Tsai 的學習筆記
Availability Set 這件事
32
Reliability
@Alan Tsai 的學習筆記
Scale 這件事
33
▰只能夠做 Scale Up
Performance
Efficiency
@Alan Tsai 的學習筆記
Virtual Machine Scale Set
34
▰建立一個 VM 範本
▰設定 Load Balancer 來分流
Performance
Efficiency
@Alan Tsai 的學習筆記
Virtual Machine Scale Set
35
▰建立一個 VM 範本
▰設定 Load Balancer 來分流
▰能夠做到自動 Scale out
Performance
Efficiency
App Service
運算類型
36
@Alan Tsai 的學習筆記
App Service
37https://weblogs.asp.net/scottgu/announcing-the-new-azure-app-service
Operational
Excellence
Security
@Alan Tsai 的學習筆記
App Service
38
▰支援 Windows 以及 Linux 環境
▻Container
▰支援多種語言
▻.NET Core/Framework, Node.js, Python, PHP, Java, Ruby
▰提供 99.95 SLA
Reliability
Cost
Optimization
Operational
Excellence
@Alan Tsai 的學習筆記
App Service Plan vs App Service
39
▰App Service Plan
▻實際被收費的服務
▻可以想象成 host IIS 的機器
▰App Service
▻掛在 App Service Plan 上面實際的服務
▻可以想象成 IIS 的一個 Website
@Alan Tsai 的學習筆記
Scale Up 一鍵搞定
40
Performance
Efficiency
@Alan Tsai 的學習筆記
Scale Out 一鍵搞定
41
Performance
Efficiency
@Alan Tsai 的學習筆記
Deployment 以及 設定方便
42
▰Deployment Slot
▻不同部署情境:
▻Blue/Green、Canary 等
▰Config 設定
▻搭配 Azure Key Vault 機敏訊息不外洩
Operational
Excellence
Security
Azure Function/K8S
運算類型
43
@Alan Tsai 的學習筆記
Azure Function
44
▰Function as a Service
▰無伺服器服務
▻也可以掛載到某個 App Service Plan
▰事件導向
▰觸發方式
▻排程觸發
▻Web hook
▻其他事件觸發
Operational
Excellence
Security
Cost
Optimization
@Alan Tsai 的學習筆記
Azure Batch
45
▰High performance computing (HPC)
▰Parallel Process
Operational
Excellence
Cost
Optimization
@Alan Tsai 的學習筆記
Microservice 服務
46
▰Orchestrate and Manage Service
▻相互之間怎麼溝通
▻死掉自動復活等
▰兩個服務
▻Azure Fabric
▻Azure Kubernetes Service (AKS)
Operational
Excellence
@Alan Tsai 的學習筆記
AKS
47
▰Azure Kubernetes Service (AKS)
▻PaaS 的 K8S 服務
Operational
Excellence
Reliability
@Alan Tsai 的學習筆記
Cluster Autoscaler
48
Performance
Efficiency
@Alan Tsai 的學習筆記
Azure Container Instance (ACI)
49
Performance
Efficiency
50
https://pptto.alantsai.net/arc-compute-decision-tree
存儲類型
服務介紹
51
@Alan Tsai 的學習筆記
存儲類型服務
52
▰Azure Storage
▰Azure SQL Database
▰Azure CosmosDB
@Alan Tsai 的學習筆記
Azure Storage
53
https://wakeupandcode.com/storage-resources/
Operational
Excellence
@Alan Tsai 的學習筆記
Azure Storage - Redundant
54
Reliability
Performance
Efficiency
@Alan Tsai 的學習筆記
Azure SQL Database
55
▰Relational Database Management System (RDBMS)
▰自動備份
▻每週完整備份
▻每 12~24 小時差異備份
▻每 5~10 分鐘 log 備份
▰一鍵完成 Scale up/down
Operational
Excellence
Reliability
@Alan Tsai 的學習筆記
Azure SQL Database – Geo Replicate
56
Reliability
@Alan Tsai 的學習筆記
Azure SQL Database – 高可用
57
▰高可用
https://azure.microsoft.com/zh-tw/blog/understanding-and-leveraging-azure-sql-database-sla/
Reliability
@Alan Tsai 的學習筆記
Azure Cosmos DB
58
▰預設 99.99% SLA
▻可以到 99.999%
▰速度非常快
▻< 10ms read and write
▰Global Distribution
Reliability
Performance
Efficiency
Operational
Excellence
59
https://pptto.alantsai.net/arc-data-decision-tree
60
https://pptto.alantsai.net/arc-data-decision-tree
Load Balance 類型
61
@Alan Tsai 的學習筆記
Load Balancer
62
▰Azure Load Balancer
▰Application Gateway
▰Azure Front Door
▰Traffic Manager
▰Azure API Management (APIM)
Reliability
Operational
Excellence
@Alan Tsai 的學習筆記
比較
63
Azure服務 OSI 什麼時候用
Application Gateway Layer 7 - WAF
- Session affinity
- URL Path-based routing
- In-region - VM/Container 之間 Load Balance
Azure Load Balancer Layer 4 - Internal 以及 External
- In-region
Traffic Manager N/A
DNS
- Cross-Region redirection
Front Door Layer 7 - 同 Application Gateway
- 差異在 Cross-Region
Reliability
@Alan Tsai 的學習筆記
WAF
64
Security
@Alan Tsai 的學習筆記
Traffic Manager
65
Reliability
Performance
Efficiency
@Alan Tsai 的學習筆記
Routing 方式 – 依照優先度
66
Reliability
Performance
Efficiency
@Alan Tsai 的學習筆記
Routing 方式 – 依照比例
67
Reliability
Performance
Efficiency
@Alan Tsai 的學習筆記
Routing 方式 – 依照速度
68
Reliability
Performance
Efficiency
@Alan Tsai 的學習筆記
Routing 方式 – 依照位置
69
Reliability
Performance
Efficiency
@Alan Tsai 的學習筆記
Azure APIM
70
APIs
整合
71
@Alan Tsai 的學習筆記
N-Tier
72
https://pptto.alantsai.net/arc-ntier
@Alan Tsai 的學習筆記
N-Tier
73
https://pptto.alantsai.net/arc-ntier-ex1
@Alan Tsai 的學習筆記
N-Tier – 高可用、跨 region
74https://pptto.alantsai.net/arc-ntier-ex2
@Alan Tsai 的學習筆記
Web-Queue-Worker
75
https://pptto.alantsai.net/arc-web-queue
@Alan Tsai 的學習筆記
Web-Queue-Worker
76
https://pptto.alantsai.net/arc-web-queue-ex1
@Alan Tsai 的學習筆記
Web-Queue-Worker – 高可用、跨 region
77https://pptto.alantsai.net/arc-web-queue-ex2
@Alan Tsai 的學習筆記
Microservices
78https://pptto.alantsai.net/arc-microservices
@Alan Tsai 的學習筆記
Microservices
79https://pptto.alantsai.net/arc-microservices-ex1
@Alan Tsai 的學習筆記
Big Data
80
https://pptto.alantsai.net/arc-bigdata
@Alan Tsai 的學習筆記
IoT
81
https://pptto.alantsai.net/arc-bigdata-ex1
結語
82
@Alan Tsai 的學習筆記
總結
83
▰常見的架構 Style
▰Azure 服務介紹
▰服務組合成為架構
84
沒有最好,只有最適合
@Alan Tsai 的學習筆記
參考資料
85
▰Azure Architecture Centre
▻https://pptto.alantsai.net/arc-guide
▰Service Limit
▻https://pptto.alantsai.net/azure-service-limits
▰SLA
▻https://azure.microsoft.com/en-us/support/legal/sla/
@Alan Tsai 的學習筆記
參考資料
86
▰費用
▻https://azure.microsoft.com/en-us/pricing/calculator/
▻[活動]Azure Taiwan #31 Azure 成本控管 - Keep Azure Cost Down
▻https://to.alantsai.net/blog-200509
▰Azure API Management - 協助邁向Open API 及Micro Service架構的好用服務
▻https://to.alantsai.net/blog-200427
▰我和阿九 (Azure) 有約 Azure 教學影片
▻http://yt.alantsai.net/
@Alan Tsai 的學習筆記
歡迎訂閲、按贊 + 分享
contact@alantsai.net
• Alan Tsai 的學習筆記
• https://blog.alantsai.net
• FB粉絲頁
• http://fb.alantsai.net
• Youtube
• http://yt.alantsai.net
CREDITS
Special thanks to all the people who made
and released these awesome resources for
free:
▰ Presentation template by SlidesCarnival
▰ Photographs by Startup Stock Photos
88

架構這件事 - Azure 可以幫助什麼 - 如何選擇使用什麼 Azure 服務