日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Azure云原生构建博客是怎样一种体验?(上篇)

發(fā)布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Azure云原生构建博客是怎样一种体验?(上篇) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

點擊上方藍字關(guān)注“汪宇杰博客”

導語

https://edi.wang

我的網(wǎng)站是在.NET Core 平臺上使用 C#語言編寫的開源博客系統(tǒng),運行于微軟智慧云 Azure 國際版上。

本文將重點介紹 Azure 的各項服務(wù)如何為博客帶來絲滑體驗與保駕護航。



歷史回顧

我博客的歷史可以追溯到2003年,而.NET 版博客最初在10年前由 ASP.NET 2.0 WebForm VB + Access 數(shù)據(jù)庫構(gòu)建,逐步維護升級至今,使用 ASP.NET Core MVC + Azure SQL 數(shù)據(jù)庫。

目前系統(tǒng)代號為“Moonglade”(月神湖),是對上一版.NET Framework 博客(代號“Nordrassil”)的完全重寫。

針對單用戶博客,極度精簡,去除了上一版本設(shè)計中過度的多用戶權(quán)限管理、多級分類、MetaWeblog 接口、文章審核工作流等無用組件,并針對云原生環(huán)境設(shè)計。

博客目前部署在微軟公有云 Azure 國際版的 East Asia 地區(qū)。排除國內(nèi)網(wǎng)絡(luò)因素后,訪問速度幾乎是秒開。服務(wù)器響應平均速度6.5 ms,頁面加載平均速度4s(受國內(nèi)網(wǎng)絡(luò)影響,使用“正?!边B接可以達到1.5-2s)。曾經(jīng)被許多人懷疑說不可能是.NET 寫的,(畢竟說好的.NET 性能差呢)Entity Framework 說好的性能差呢。其實這不僅需要.NET 和 SQL 代碼優(yōu)化,Azure 的服務(wù)在其中也功不可沒。

接下來為大家詳細介紹 Azure 如何助力博客實現(xiàn)質(zhì)的飛躍?


WHY AZURE GLOBAL

為什么選擇國際版


6年前 Azure 在大中華區(qū)落地后,我曾經(jīng)第一時間把博客系統(tǒng)遷移到國內(nèi)版,畢竟訪問速度明顯優(yōu)于國際版。但卻發(fā)現(xiàn)大中華區(qū) Azure 的功能相比國際版通常要落后很長一段時間才能落地。一些非常重要功能,如 Application Insight 至今無法使用。

即使功能落地,也經(jīng)常是部分功能可使用,在網(wǎng)站方面還會受到一些規(guī)定的影響。另外,由于博客目前主要面向國外社區(qū),因此我也要考慮全球訪問速度的因素,這些讓我把網(wǎng)速和錢包的因素拋在腦后,選擇世界領(lǐng)先的國際版 Azure。

當然,如果各位的業(yè)務(wù)主要集中于大中華區(qū),又想充分使用 Azure,最適合的還是國內(nèi)版 Azure,但國內(nèi) Azure 并非微軟運營,請仔細慎重評估后再使用。



App Service + Azure SQL Database


這兩項服務(wù)是博客的核心,也是博客系統(tǒng)最早上云時采用的唯一兩項服務(wù)。能夠?qū)?VM 或是本地數(shù)據(jù)中心部署網(wǎng)站需要的一天或幾天,縮短到十幾分鐘。而且價格上也比使用 VM 方式部署網(wǎng)站便宜不少。

圖 | 網(wǎng)絡(luò)


App Service

App Service 是 Azure 上的一種 PaaS 服務(wù)。相比傳統(tǒng)虛擬機部署網(wǎng)站,App Service 提供了一個完全托管的平臺,讓用戶無需關(guān)心如何安裝配置虛擬機,只需要使用上面的 Web 服務(wù)即可。至于底層的系統(tǒng)補丁、網(wǎng)站運行環(huán)境、Web 服務(wù)器配置,都已經(jīng)由微軟自行管理。

因此,程序員和運維人員再也不需要996進 ICU,就能在幾分鐘內(nèi)建完網(wǎng)站環(huán)境,而傳統(tǒng)方式可能需要數(shù)小時甚至數(shù)天?

本地機房/虛擬機部署網(wǎng)站的缺點

? 又雙叒叕打補丁

??手工安裝/升級運行環(huán)境(IIS、.NET、Python)

?手工配置網(wǎng)站程序(環(huán)境變量、路徑、config)

?手工連接 CI/CD(安裝web deploy、FTP)

??手工配置 IP,網(wǎng)絡(luò),生產(chǎn)/ ST 環(huán)境、負載均衡

? 網(wǎng)站爆了,手工上服務(wù)器看文件目錄、抓 dump

? 難以彈性伸縮

App Service 云原生部署網(wǎng)站

? 完全托管的平臺

? 面向全球拓展業(yè)務(wù)

? 快速構(gòu)建、部署和縮放

? 智能監(jiān)控、故障定位

? 滿足嚴苛的性能、可縮放性、安全性要求

? 運維成本低于本地數(shù)據(jù)中心

Azure Portal 在網(wǎng)頁端提供了非常完整的管理界面,可以用來完成所有部署(包括不同環(huán)境)、診斷、設(shè)置、備份、縮放實例、綁定域名/SSL 等幾十種操作。

.NET雖然應當成為正確的選擇,但微軟并沒有只支持自家.NET。你可以選擇 Node.js、PHP、Python 或其他語言,同樣能使用 App Service 的幾乎全部體驗,甚至可以選擇 Linux/Docker 的底層機器。

除了每個網(wǎng)站都會配置的域名、SSL 等基礎(chǔ)功能,博客使用了一部分 App Service 的其他功能。

部署槽

該功能的用途是創(chuàng)建和切換不同環(huán)境。如我的博客僅有 staging 和 production 兩個環(huán)境。代碼從 Azure DevOps 的持續(xù)集成自動發(fā)布到非常接近于 production 的 staging 環(huán)境,測試完成后,再手動觸發(fā) production 環(huán)境的部署。Azure 可以做無縫切換兩個環(huán)境,讓你的應用程序幾乎是 zero down time,就算爆了,你也可以偷偷切回來,假裝沒爆過。

圖 | 網(wǎng)絡(luò)

而傳統(tǒng)上如果部署爆了,通常需要回滾操作,這段時間內(nèi)用戶肯定會截圖給你發(fā)微博上慶祝你的爆。所以,我的博客之所以看起來一直非常穩(wěn)定,并不是每次我寫的代碼都不爆,而是爆了大家也不知道(手動doge)。

備份

傳統(tǒng) VM 或本地數(shù)據(jù)中心做備份要么人工操作,要么自己寫一套復雜的腳本,或者配合系統(tǒng)定時任務(wù)操作,或者購買三方產(chǎn)品,非常麻煩,容易996進 ICU。而 Azure App Service 可以在網(wǎng)頁端點點鼠標,幾分鐘內(nèi)配置定時自動備份,而且包含數(shù)據(jù)庫一起打包。網(wǎng)站爆掉的時候,可以一鍵選擇備份文件進行回檔操作,減少損失。你也可以隨時下載備份包,以便還原到本地環(huán)境。


擴大

Azure App Service 可以點點鼠標就在幾分鐘內(nèi)輕松配置縮放規(guī)則。例如,當 CPU 使用率在1分鐘內(nèi)達到平均70%以上,持續(xù)10分鐘,就自動增加一個實例。而傳統(tǒng) VM 或本地數(shù)據(jù)中心要配置這樣的縮放規(guī)則,很容易996進ICU。

高級工具

Kudu 是一個微軟的開源工具,由 ASP.NET(可惜不是Core)構(gòu)建,它正是 App Service 的幕后英雄??梢园l(fā)布、管理、診斷 IIS 上的網(wǎng)站。微軟不僅免費開源了這個工具,也將它整合到了 Azure Portal,通過它,我能查看和操作博客服務(wù)器的高級功能。

Kudu 不僅可以查看應用設(shè)置、服務(wù)器環(huán)境變量、瀏覽或編輯網(wǎng)站目錄文件、查看實時 log stream,還能查看 IIS、node、dotnet 等進程,并下載 dump 文件用于本地 debug。簡直就是個網(wǎng)站應用的瑞士軍刀。


Kudu 項目源代碼傳送門

https://github.com/projectkudu/kudu?


App Service 的其他功能也很實用。例如,你可以在“拓展”里找到能夠全自動續(xù)命、全自動配置免費SSL證書的 Let's encrypt 服務(wù);在 Web Jobs 里跑定時任務(wù),而不用自己996折騰任務(wù)框架進 ICU;還能0代碼實現(xiàn)登錄驗證等等,本文篇幅有限,不逐一介紹。

使用傳送門了解? App Service

https://azure.microsoft.com/en-us/services/app-service/?




圖 | 網(wǎng)絡(luò)

Azure SQL Database

和 App Service 類似,Azure SQL Database 是一個完全托管的數(shù)據(jù)庫服務(wù),包含 SQL Server 的幾乎全部功能,也支持 My SQL。使用 Azure SQL Database 就意味著你也無須關(guān)心如何安裝和配置數(shù)據(jù)庫運行環(huán)境,不用給機器打補丁,不用糾結(jié)防火墻配置,所有常用操作都在 Azure Portal 里點點鼠標就能分分鐘完成。

Azure托管的SQL Server數(shù)據(jù)庫可以用你熟悉的工具管理,如SSMS、Azure Data Studio。

為了保證數(shù)據(jù)庫安全性,默認情況下,Azure 允許內(nèi)部服務(wù)訪問數(shù)據(jù)庫(你可以隨時禁用/啟用這項設(shè)置),但會把其他公網(wǎng)IP排除在外。你可以在網(wǎng)頁端,或SSMS、Azure Data Studio中添加IP白名單。

更牛逼的是,SQL數(shù)據(jù)庫并不是只托管就完事了,Azure 還提供了數(shù)據(jù)安全(包括合規(guī),比如對敏感數(shù)據(jù)打碼)、性能優(yōu)化服務(wù),可以分析哪些SQL Query最慢,給出準確的調(diào)優(yōu)建議,也能自動找到需要加索引的位置,甚至可以幫你自動加索引。可惜我除了CRUD以外并不了解數(shù)據(jù)庫技術(shù),所以無法給大家深入介紹。


使用傳送門了解? Azure SQL Database

https://azure.microsoft.com/en-us/services/sql-database/


圖 | 網(wǎng)絡(luò)


DNS,?CDN, Blob?Storage,?Azure AD,?Application Insights, Azure DevOps 等更多精彩內(nèi)容請聽下回分解

關(guān)注汪宇杰博客


微軟最有價值專家 汪宇杰

.NET, Windows, Azure 技術(shù)分享

博客地址 https://edi.wang

點擊閱讀原文查看往期精彩內(nèi)容

總結(jié)

以上是生活随笔為你收集整理的使用Azure云原生构建博客是怎样一种体验?(上篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。