使用Azure云原生构建博客是怎样一种体验?(下篇)
點擊上方藍字關注“汪宇杰博客”
接上篇《使用Azure云原生構建博客是怎樣一種體驗?(上篇)》
DNS
Azure DNS 是一套分布全球的域名解析服務。具有超高可用性和接近實時的記錄更新及生效速度。我的博客也使用了這項服務。
Azure 現在可以提供域名注冊到解析一條龍服務。但是你可以不在Azure注冊域名,這不會影響我們使用 Azure 的DNS服務。
Azure 現在可以提供域名注冊到解析一條龍服務。但是你可以不在Azure注冊域名,這不會影響我們使用 Azure 的DNS服務。
使用傳送門了解? Azure DNS
https://azure.microsoft.com/en-us/services/dns/CDN
CDN 也是經常搭配網站使用的服務之一。由于 Azure 龐大的全球規模,使用 Azure CDN 更能確保資源的全球訪問速度。在我博客系統里,文章的配圖均采用CDN的方式對接 Azure Blob Storage,解決了國內外訪問的速度問題。
Azure CDN 支持自定義域名,并可以免費贈送SSL證書。微軟是何等的良心!
在我的博客系統中,第一次請求文章配圖,CDN會去對應的 Blob Storage中獲取圖片,并緩存起來。之后的請求就無需再經過Blob Storage,可以從緩存中直接返回結果,以增加響應速度。相比國內直接訪問 Blob Storage 的龜速,使用 CDN 以后,響應速度明顯提高。
使用傳送門了解? Azure CDN
https://azure.microsoft.com/en-us/services/cdn/
Blob Storage
我的博客系統包含圖片等非結構化數據,不適合用 SQL Server 數據庫保存。而 Azure Blob Storage 正適合存儲圖片、文件等資源。它的好處在于支持全球冗余、支持多種Blob類型、對象可變以及強一致性。
微軟提供了包括 .NET Core 在內的SDK支持,讓程序可以輕松操作Blob。有關我博客程序如何將文章配圖上傳至Azure Blob,可以參閱源代碼:
https://github.com/EdiWang/Moonglade/tree/master/src/Moonglade.ImageStorage.AzureBlob
在Blob上存儲的文件可以使用 Azure 的網頁端,或微軟官方客戶端 Azure Storage Explorer 管理。
使用傳送門了解? Azure Blob Storage
https://azure.microsoft.com/en-us/services/storage/blobs/
Azure Active Directory
熟悉微軟產品的人可能知道 Active Directory,它可以幫助企業管理員工賬號。而 Azure Active Directory 就是云端的域服務,不僅能管理組織內賬號,還能邀請合作伙伴或臨時訪客。微軟的 Office 365 也采用了該服務。Azure AD 最實用的特性是可以方便地和自己的應用程序整合,做成 SSO (單點登錄)體驗。我的博客也支持 Azure AD 單點登錄。
有關我博客代碼如何整合Azure AD,可參見:
https://github.com/EdiWang/Moonglade/tree/master/src/Moonglade.Web.Authentication
使用傳送門了解? Azure Active Directory
https://azure.microsoft.com/en-us/services/active-directory
Azure DevOps
Azure DevOps 不是新東西,而是微軟改名部的杰作。以前稱為 VSTS,或大家更熟悉的名字:TFS。
它是一套完整的DevOps工具,涵蓋需求管理、代碼托管、編譯發布、測試等全部功能于一身。使用Azure DevOps就意味著再也不用為了單獨的功能買各家的產品,然后以996ICU為代價整合他們。并且,Azure DevOps 對于5人以下團隊以及開源項目是免費的!
當然,現在的 Azure DevOps 不僅僅支持微軟自家.NET,而是任何語言、任何平臺!甚至編譯和發布弄死WP的iOS產品都行!
本文之前提到的 staging 及 production 環境均由Azure DevOps配置部署。
由于開源性質,我的博客并沒有使用 Azure DevOps 的全部功能,主要使用的只有 Pipelines。它提供 CI/CD 生成、測試和部署。可以連接到 GitHub 或任何其他 Git 提供程序并持續部署(當然也包含微軟自家TFVC托管方式)。
基本操作可參見我以前的文章:《使用Azure DevOps持續集成GitHub項目》
使用傳送門了解? Azure DevOps
https://azure.microsoft.com/en-us/services/devops
Azure Application Insights
一個網站好不容易開發完,部署上線后,監測運行情況對于查找問題、優化性能等至關重要。天下沒有不爆的程序,誰能快速發現和解決問題,誰就能霸占市場。我們只有能方便快速的發現及定位問題,才能及時優化,從而更愉快地拖控件。
而 Azure Application Insights 正是一款強大的APM工具,能從網站的前端到后臺一條龍整合,提供實時檢測數據。
我可以把我最關心的服務器響應時間、失敗的請求、PV、頁面加載時間等指標,配置成圖表放在Dashboard上。并可以每項指標查看詳細信息。
對于爆過的請求,可以清楚的看到從網站前臺到中間層,再到數據庫經過了哪些環境和服務。在哪一層產生了何種異常、運行了什么SQL查詢、每個環節耗時是多少,一目了然。對于沒爆的請求,也可以查看這些信息以自我欣賞。
支持客戶端和服務器端的性能分析工具更是能幫你快速定位性能瓶頸,如最慢的request是哪些,最慢的SQL查詢在哪里等等。
對了,Azure Application Insights 還帶有一個 Application Map 可以非常直觀地看到你的網站程序和其他資源的關系以及訪問情況。當然這些也都是可操作的。
Azure Application Insights 還可以通過編程方式更深入整合到應用中,幫助獲取數據或者發送自定義事件。
使用傳送門了解? Azure Application Insights
https://azure.microsoft.com/en-us/services/monitor
CLOSING
結 束 語
使用 Azure 構建云原生的博客系統對比傳統方式擁有極大的功能、性能以及開發效率提升。而以上的這些服務,只是 Azure 數百項產品里的 8 個。光我的博客,能利用Azure 辦到的還有很多。例如:
? Azure AI 評論/內容審查
??整合必應搜索
??KeyVault 托管密鑰
??Cosmos DB 保存非關系型數據
??Web Jobs 跑后臺定時任務
期待各位使用 Azure 構建更出色的應用,成就不凡!
總結
以上是生活随笔為你收集整理的使用Azure云原生构建博客是怎样一种体验?(下篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不好意思,这么久没有更新《从零开始掌握A
- 下一篇: .NET Core 3.0之深入源码理解