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

Alan Tsai
Alan Tsaia Microsoft MVP, MCT, Blogger, Youtuber and ASP .NET Developer at Wishing-Soft
架構這件事
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
1 of 88

More Related Content

What's hot(20)

為瞬間巨量做好準備 20180726為瞬間巨量做好準備 20180726
為瞬間巨量做好準備 20180726
Earou Huang1.7K views
CICD Workshop 20180922CICD Workshop 20180922
CICD Workshop 20180922
Earou Huang144 views
容器與 Gitlab CI 應用容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng2.8K views

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

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