iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 30
5
Everything on Azure

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

三十天.NET與Azure漸進式開發專案(30): 完賽,下台一鞠躬

個人鐵人賽方便閱讀版連結 : https://itweihan.azurewebsites.net/

2018-11-06.19.21.03-image.png


今天是本系列的最後一篇文章,來做一個整合結尾。

當初報名的初衷:

幫助同樣有.NET平台 + SQL Server開發經驗基礎的讀者,了解如何使用微軟的Azure平台,做漸進式上線專案

至於為什麼強調漸進式,寫過Vue的開發者應該會特別有感覺,Vue強調殺雞焉用牛刀逐步添加功能,有時候我們只是需要完成一個小功能,不需要像重量級框架做完繁雜設定後才能做開發。

在雲端服務也是一樣,有時候我們只是要開發一個雛形專案,專案能不能撐過初期幾個月都不確定,所以如何有效利用資源並且兼顧品質上線就是本系列重點,主要分初期跟中後期來寫文章。

初期資源有限時期 :

初期重點 :

  1. 方案能免費或是小額金額做上線測試,也就是價格合理
  2. 流量不多,不需要太好的設備避免資源浪費,能動態細緻控管雲端資源大小

首先介紹Azure初期上線免費使用 Azure Web APP 滿足架設網頁
(1):介紹,快速開始
(2):Azure WebAPP - 網頁設定,簡單網頁監控,編輯

但是不能因為資源有限,把最基本的資訊安全、災難預防給拋棄,所以寫了以下文章 :
使用Azure定期備份資料,假如初期不想上到S1方案,我寫了一篇Git+WebJob做一個排程器來做版控備份方式 :
(3):WebAPP備份 : Azure備份、GIT遠端備份
(4):WebJob自動排程器Git備份

使用 Web Job 做雲端背景排程程式處理資料,示範圖床例子減輕伺服器壓力 :
(5):WebJob.NET做排程器,更新server圖片到圖床
(6):替換使用Azure Storage Blob保存圖片

接著當資料需要做保存、管理時,Azure也提供免費32MB大小Azure SQL Database關聯式資料庫的使用:
(7):Azure SQL Database 使用、概念
(8):Azure SQL Database 異地備份、最簡單讀寫分離架構

假如要輕量級開發一些外掛程式,可以使用Azure Function來補助開發,甚至Email服務也都能簡單套用,以下是文章清單:
(12):Azure Function-建立、測試
(13): Azure Function - 來做一個鐵人賽文章清單API
(14): Timer Trigger排程抓資料保存到Azure SQL DataBase
(15): Azure做Feed RSS訂閱鐵人賽文章功能
(16): 藉由 SendGrid 發送 Email

因為使用花費的金額有限,相對會有系統上面的限制,像是Web App初期方案沒有Always On問題,導致使用者的體驗感不好,我這邊提供一個小程式 + Azure Timer Trigger方式模擬Always On :
(18): Web App Always On替代方案


中、後期效能瓶頸時期 :

當流量起來的時候,首先會遇到效能的問題,這時後需要進行效能的調校,所以寫了以下文章。

首先是Azure SQL Database自動調校資料庫,像是有效Index建立,找出查詢計畫中的慢查詢
(23): Azure自動化調校資料庫

接著做讀寫分離動作,分攤主資料庫負擔:
(24): 資料庫讀寫分離 Azure SQL Database Sync
(25): 資料庫讀寫分離,多資料庫同步
(26): 資料庫讀寫分離,實作程式

接著使用Redis快取來分攤負擔資料庫流量:
(10):使用Azure Redis(上)-建立、使用
(11):使用Azure Redis(下) - 為甚麼要使用

需要做流量資料統計情況下,可以使用Application Insights的Analytics Query功能:
(17): Analytics Query分析需要的Log資料

上線後會遇到各式各樣異常,這時候就需要開發人員做Debug動作,所以寫了以下文章:
(19): 如何遠端Debug
(20): 使用Application Insights Debug Exception
(21): Debug超進化Snapshot! (Exception偵錯快照)
(22): 解決初始化異常-使用Kudu、FTP調查eventlog.xml

當遇到惡意攻擊的時候,如何避免被怪客當成待宰的羔羊,可以使用動態負載平衡來抵擋:
(27): 簡單達到動態負載平衡,抵擋惡意流量攻擊

接著開發人員入續進駐,需要講求專案的多人開發、維護,這時候需要自動化測試跟發布:
(28): DevOps Project 建立使用、示範專案CI/CD
(29): 在Azure DevOps從無到有建立,更細緻化處理


結語

筆者最後感謝好隊友小魚跟阿Q超人 ,小魚每天都會關心組員狀況,假如十點還沒發信都會關心是否有問題(抱歉讓他集滿20封關懷信了XD)。阿Q在鐵人賽之前就常常在IT邦分享優質文章,許多邦友在他身上學習很多概念、知識。十分感謝團隊的叮嚀與鼓勵,最後等鐵人大會,我會跟公司請假返台見面!

今年鐵人賽此系列到此告一段落,但是不代表結束,我會持續在IT邦發文做個人技術分享,有任何錯誤或是技術上討論都可以留言。

或是IT邦友有技術上面的問題,都可以在發問區發問@我,我能力所及地方會盡量幫忙解答。

那麼暐翰在此下台一鞠躬。。。


上一篇
三十天.NET與Azure漸進式開發專案(29): 在Azure DevOps從無到有建立CI/CD專案
系列文
三十天.NET❤️Azure漸進式開發專案30
1
神Q超人
iT邦新手 2 級 ‧ 2018-11-04 22:17:07

YA!手牽手一起完成了!
恭喜大大挑戰兩個主題成功/images/emoticon/emoticon12.gif

暐翰 iT邦大師 5 級‧ 2018-11-04 22:20:30 檢舉

一起完賽真的好爽!

可以暴睡一波了,這個月沒一天兩點前睡覺過 /images/emoticon/emoticon06.gif

1
Homura
iT邦研究生 3 級 ‧ 2018-11-04 22:27:17

一次挑戰完成2個主題太猛了
恭喜完賽啊!!/images/emoticon/emoticon12.gif

暐翰 iT邦大師 5 級‧ 2018-11-04 22:29:03 檢舉

換大大要完賽了

1
SunAllen
iT邦好手 1 級 ‧ 2018-11-07 14:49:13

恭喜大大,兩邊都完賽啦! /images/emoticon/emoticon42.gif/images/emoticon/emoticon42.gif

暐翰 iT邦大師 5 級‧ 2018-11-07 18:41:07 檢舉

謝謝大大! 大大也快完成今年兩篇了 /images/emoticon/emoticon32.gif

快了快了.../images/emoticon/emoticon20.gif

1
s320134009
iT邦新手 5 級 ‧ 2018-11-07 16:20:28

30天拜讀完,感恩讚嘆~

暐翰 iT邦大師 5 級‧ 2018-11-07 18:41:34 檢舉

謝謝大大 /images/emoticon/emoticon12.gif

我要留言

立即登入留言