iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
1
Everything on Azure

三十天.NET❤️Azure漸進式開發專案系列 第 7

三十天.NET與Azure漸進式開發專案(7): Azure SQL Database 使用、概念

搞定圖片之後,接著搞定系統的資料保存,當大量資料存取,使用關聯式資料庫來處理是一個很好的方式。

其中又以SQL Server為佼佼者,有使用MySQL、Oracle、SQL Server經驗的讀者,可以發現使用T-SQL撰寫腳本相比其他兩者而言,能提高開發速度,靈活度(尤其Function、SP方面),但也會伴隨著開發者能力風險,使用錯誤語法方式導致DB效能浪費,但這是後話了…

一般情況下,如果公司內部新建資料庫服務,需要有硬件、網路管理、安裝軟件等過程,還需要熟悉資料庫的人維護,其中昂貴的費用更是一大問題

而Azure SQL Database可以快速建立資料庫,節省許多複雜操作,讓.NET/資料庫開發人員可以更加專注於開發上面。

另外重要概念是 Azure SQL Database只是邏輯數據庫,物理數據庫仍然是SQL Server,只是它多了雲端的特性,可以自動配置容量、CPU,漸進式的調整資料庫需求,所以SQL Server多數的經驗是可以沿用的。


建立方式

如何選擇符合的Azure SQL Server方案,需要特別注意,這裡有一個小秘訣,假如從建立資源功能建立DB,最低版本都需要付費,如圖片:
2018-10-12.21.17.41-image.png

想要測試階段免費使用資料庫,可以在web app service > 選擇資料連接 > 新增 資料庫
2018-10-12.21.18.32-image.png
接著填寫資料,選擇Free方案。
2018-10-12.21.18.37-image.png
注意,免費版理所當然會有限制

  1. 只支援最多32MB存儲大小
  2. 資源跟webapp是共用
  3. 只能建立一個DB
    所以只適合剛開始專案小規模測試。
    2018-10-12.21.18.46-image.png
    接下來等Azure一段時間後,就可以看到免費、正版的SQL Server跟DB建立好了!
    2018-10-12.21.18.53-image.png

資安防護

因為資料庫是重要資訊寶庫,許多怪客都想要從其中盜取秘寶,所以資訊安全、防護非常的重要。

Azure提供IP限制的方式,保護資料庫的安全,假如不是白名單的IP,就算知道你資料庫帳號密碼,也無法登入使用資料庫搞怪。

白名單設定方式,選擇防火牆設定-添加客戶端IP
2018-10-12.21.19.18-image.png

設為白名單後可以在 Connection strings > ADO.NET 取得連線字串,注意字串內帳號密碼需要使用者自行輸入。
2018-10-12.21.19.36-image.png

接著在本機打開SSMS連線測試,輸入伺服器、帳號、密碼
2018-11-07.10.57.49-image.png

登登登,完成後成功連線到雲端上 Azure SQL Server
2018-10-12.21.19.54-image.png


接著思考為何要使用Azure SQL Database?

它有什麼優點可以取代公司買一台機器安裝SQL Server,個人認為每個技術都有擅長的環境、技術,假如沒有合適理由、需求是不必使用的

以下是我個人使用它原因,供參考

大量減輕災難維護的成本:

舉例1:

阿明趕案子已經連續五天晚上十一點才下班,在疲倦狀態下處理一筆異常資料 ,需要刪除一個異常資料,不小心手殘忘記加上where條件篩選,SSMS又沒有設定Trasation,全部資料刪除GG。

假如公司又小沒有DBA的角色,沒有做資料庫log的紀錄的設定,要追回來資料難度難之又難。

而在Azure我們可以簡單做到排程器備份,避免類似問題。

舉例2:

阿明所在的公司遇到地震,導致機房的機器損壞,又沒有做異地備份,

而在Azure幾乎不用擔心機器發生故障(除非又發生Azure機房遭雷擊),它幫忙解決了MIS跟DBA角色工作。

可以動態調整資料容量、CPU等資源

Azure提供從一開始測試的免費環境到正式生產環境都提供完整服務,非常適合漸進式開發

想要效能,口袋裡的錢決定Azure SQL Database的強度。
想要省錢,可以排程動態調整資料庫強度,半夜調整為低方案版本,巔峰時間為高強度方案


結論

假如上面符合你的需求,接著要講實際面,生產環境的雲端資源很貴很貴,很貴,假如沒有保存意義的資料就不要放雲端資料庫。

誇張舉例:Log資料保存在資料庫許久不做清理動作,造成容量達到TB級別,原本只要P1方案就能解決生產需求,結果被搞到P11級別每小時 NT$282.78,這都可以買一個超強伺服器了!
2018-10-13.20.48.43-image.png

有了以上概念後,想要開發自己的專案使用到SQL Server的應用,又不想負擔維護操作系統和硬體知識成本的花費,Azure SQL Database我覺得是一個不錯的解決方案。

紀錄:第七天,Azure總花費金額:0


上一篇
三十天.NET與Azure漸進式開發專案(6):替換使用Azure Storage Blob保存圖片
下一篇
三十天.NET與Azure漸進式開發專案(8):Azure SQL Database異地備份、最簡單讀寫分離架構
系列文
三十天.NET❤️Azure漸進式開發專案30

尚未有邦友留言

立即登入留言