前言

個人第一次使用 Azure App Services 的經驗是 Azure Web App,連結 Azure SQL 快速地將網站成品呈現給客戶並進行測試。雖然需要稍微地修改程式,但價格不貴又不需要維護主機讓我印象深刻。
目前因為工作關係,鮮少有機會接觸到雲端服務。最近因為想要多了解 Azure App Services,所以寫了一系列的筆記文章。本系列文章將簡單介紹 Azure App Services,是個人學習 Azure 時作的筆記與操作紀錄,提供給未來的自己與有興趣的朋友們參考。 若有錯誤或任何建議,請各位先進不吝提出,謝謝。

關鍵字: 基本介紹Web AppMobile AppAPI AppLogic AppAzure Function



目錄 
01. Azure App Service 基本介紹
02. Azure App 佈署 (Azure App Deployment)
03. Azure App 持續與階段性部署 (Continuous and Staged Deployment)
04. Azure App 備份與還原 (backup and restore)
05. Azure App 規模與效能教調
06. Azure Apps 安全性介紹
07. Azure 背景處理服務介紹 1 : WebJob 與 Azure Function
08. Azure 背景處理服務介紹 2 : WebJob 與 Azure Function
09. Azure Logic Apps - 自動化工作流程的好幫手
10. Azure WordPress on Azure - 架設你的個人網站
13. Azure App Service 如何取得 Dump 進行並進行分析

介紹

Azure App Service 為一種平台服務 (Platform-as-a-service, Paas),提供快速且簡單操作的雲端環境,讓您可以佈署您的網站或行動應用程式。您能將伺服器與架構的問題交給 Azure,而您可以專心於建置與佈署工作。App Service 支援 Windows 與 Linux 作業系統,開發者可以透過 Web App For Containers 使用自己的 containers。 App Service 支援多種程式語言與其框架,包含  .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python。除此之外,開發人員能透過 App Service ,與目前現有的框架與持續整合工具進行整合,有助於提高開發者的生產力。

Azure App Service 主要分成 5種,分別為:
Web Apps
透過 Azure Web App Service 託管您的網站

由 Azure 提供 代管的網站 或 網頁應用程序 的運算資源。依據您選擇的定價層不同,應用程式可能位於共享或專用的虛擬機器上。您的程式碼將以與其他客戶隔離的方式,在託管的虛擬機器上運行。如前面簡介提過的  , Web App 支持多種語言,如:ASP.NET、Node.js、Java、PHP 或 Python。您也可以在 Web 應用程式上使用 PowerShell 或其他腳本語言。
除此之外,Web App 可以使用 API 應用程式 (支援 CORS) 和移動應用程式 (如:推送通知)。多數情況下, Web App 是最佳選擇;對於微服務架構,可以參考 Service Fabric;若需要對於虛擬機器有更多的需求,請參考 Azure VM。


Mobile Apps
Mobile App 功能提供開發人員與系統整合人員一個高擴充且全球可用的行動應用後端。 Mobile App 具有下列特色。
1. Build native and cross platform apps:無論你建置原生 IOS、Android、Windows App 或跨平台的 Xamarin 與 Cordova (Phonegap),您能透過原生 SDKs 使用 App Service
2. Connect you your enterprise system:快速地連接您的企業雲端服務
3. Build Offline-read apps with data sync:當行動應用程式連結至企業資料來源與 SaaS APIs 時,可以進行背景同步資料程序
4. Rapidly push notifications to millions of users:透過任何設備及時推送通知吸引客戶。根據需求進行個人化,並在適合的時間進行推播。

 除上述功能外,App Service 其他對於 Mobile Apps 實用功能包含:
1. Auto Scaling:App Service 可以快速提升效能以處理客戶負載。手動選擇 VM 數量與大小,並以時間或負載為基礎來設定 mobile app 後端。
2. Staging Environments:App Service 可以運行多個版本在您的網站、允許執行A/B Test …等等。
3. Continuous Deployment:App Service 可以整合一般的 SCM 系統,允許透過 Push 您SCM中的分支更新新版本到你的後端。
4. Virtual Networking:App Service 可以透過 Network, ExpressRoute 或混合連線,連結至內部環境資源。
5. Isolated / Dedicated Environments:App Service 可以在完全隔離且專用的環境中運行,以便大規模安全的運行 Azure App Service 應用程式。這非常適合需要大型規模、安全網路與隔離環境的工作負載。


API App
API 是為軟體系統不同組成部分介接的約定,理所當然,您可以透過 Azure 輕鬆地託管您的 API Apps。 App Service 對於 API Apps 實用功能包含:
1. Bring your existing API as-is - 你不需要更改您 API 內任何程式碼,只需要佈署您的程式到您的 API App 即可。API App 支援多種語言與框架,包含 ASP.NET and C#, Java, PHP, Node.js, and Python.
2. Easy consumption - 整合 Swagger API 功能,讓您的 API 可以讓各種客戶輕鬆使用。對於 C#, Java, and JavaScript,您可以輕鬆自動產生對應於 API 之客戶端程式碼。 除此之外,您可以更容易設定 CORS 而不需要更改程式碼。
3. Simple access control - 您不需要更改程式碼即可保護您 API 遭到非授權的存取,內建的 authentication services 確保 APIs 其他服務與現有使用者存取安全。支援的辨識服務包含 Azure Active Directory, Facebook, Twitter, Google, 與 Microsoft Account。
4. Visual Studio integration - Visual Studio 專屬工具簡化了建立、佈署、除錯與管理 API 工作。
5. Integration with Logic Apps - 您的 API App 可以透過 App Service Logic Apps 使用。



Logic Apps
Logic Apps 提供一種簡化且實作可調整整合與工作流程的方法。他提供視覺設計工具,對您的處理程序進行一系列建模與自動化工程流程。雲端與內部網路有許多連接器,可以快速整合各種服務與通訊協定。Logic App 從 Trigger 開始 (像是加入帳戶),觸發後可以進行許多操作組合、轉換與條件邏輯判斷。 屬於完全託管的 PaaS ,開發者不需要擔心 hosting、擴充性、可用性與管理問題。

Logic App 優點如下:
1. 節省時間:透過容易理解的設計工具,設計一連串的複雜的處理程序
2. 無縫實作 pattern 與工作流程,免除難以在程式碼中實現的問題
3. 多種樣板可以快速入門
4. 透過您自定義的 API、程式碼與操作,客製自己的 Logic App
5. 跨越本地與雲端,連結與同步不同系統
6. 透過一流的整合支援建構 BizTalk 伺服器, API Management, Azure Functions, 與Azure Service



Azure Function
Azure Function 是一種 Serverless  運算服務,您只需要執行您的程式碼而毋需配置或管理 infrastructure。Serverless 讓開發人員免於運行系統過程中複雜的操作。您不需要擔心伺服器、虛擬機器,修補與擴充。 當您透過 PaaS 服務,您仍需要選擇作業系統與虛擬機大小,必須要預測您的需求,並依據容量進行支付,即使他沒有充分應用。

使用 Serverless,Azure 可以預先準備資源。它透過事件觸發,開發人員提供程式碼,當事件發生時 (如:Azure 警告訊息發出) 或收到訊息時,Azure 會提供必要運算資源。因為是以服務運行時產生費用,所以您只需要支付 Serverless 執行期間的費用。

參考資料



相關文章