多通路行銷應用程式開發架構指南


Microsoft Azure 上有相當多服務可以協助你開發堅固的網站,而針對面向一般消費者的行銷網站(其實適用於許多網站應用情境),Azure 團隊有一個建議的架構圖。

這篇文章就針對這份架構的建議來提供說明。

您也可以參考影片的說明:

流量管理與網站建置

你的客戶可能來自世界各地,或是你希望在多個資料中心做備援,為了要讓用戶的連線可以自動導向鄰近或是還可以正常存取的資料中心,這時你可以使用流量管理員(traffic manager)的服務,讓它設定指向不同資料中心的網站服務,然後將你的網域名稱設定在流量管理員上,接下來要到哪個資料中心就是流量管理員來負責處理,除了可以避免資料放在單一機房上會有服務中斷的疑慮之外,也有負載平衡的效果。

另一方面,Azure 網站服務除了可以自己使用 .NET、PHP、Python、Node.js、Java 來撰寫網站應用程式之外,也可以使用現成的架站工具(如:WordPress, Umbraco 等等)來快速建立網站,若網站需要串接身份驗證的功能,可以直接使用 Azure Active Directory 的服務,直接可以完成 AD、Microsoft、Facebook、Twitter、Google 的帳號身份驗證,不必自己撰寫這部份的程式。

由於是面對消費者的網站,有時候辦一些活動時可能需要臨時增加運算資源來應付暴增的流量,Azure 網站服務可以設定自動延展(Auto scale)的機制,視需要動態增減需要使用的運算資源數量;而若是要處理一些非同步的工作,則可以將這些非同步的工作放在 WebJobs 裡背景執行,方便處理一些非由使用者驅動的工作(如:處理客戶資料、寄送 Email 等)。

根據不同用途處理資料

如果要把使用者在網站上的行為記錄下來,做為日後分析的數據,那肯定是一種大數據(big data)的使用情境,這些資料可以使用 Azure HDInsight 來儲存,這個服務完全基於 Apache Hadoop 的技術架構,而運用 Azure 的雲端技術來提供服務,由於完全是採用 Hadoop 的技術架構,所有基於 Hadoop 架構做的資料處理、分析工具都可以直接使用。

而網站上的靜態檔案部份,不論是網站原本的靜態檔案(CSS、JavaScript、圖片)還是由使用者上傳到網站上的靜態檔案(個人圖片等),都可以運用 Azure 儲存體中的 Blob 儲存體服務來儲存,這些檔案都可以直接透過專屬的 URL 來存取,除了可以分散網站的流量之外,也可以降低網站對本機檔案系統的依賴,有效減輕延展網站的難度;同時,也可以運用 Azure 儲存體對於資料的可得性、易用性來保存檔案。

關聯式資料的部份,當然就可以直接選擇使用 Azure 上的 SQL 資料庫服務,除了不必管理 SQL 伺服器之外,還直接有 HA 架構,並且根據不同的價格方案也能提供完整的備份及還原服務,使用與管理此 SQL 資料庫的方式都與操作在 SQL 伺服器上的資料庫相同。而為了提升資料存取的速度,也可以直接套用 Azure 快取服務來做快取,這個服務是由 Redis 的技術所建立,所以操作使用的方式與 Redis 相同,也能直接使用 Redis 的相關函式庫。

與企業機房連接

你可以使用 Azure 虛擬網路的服務,將 Azure 上的服務與企業機房設定進相同的虛擬網路中,如此一來,企業內的機密敏感資料不必一定要放在雲端,還是可以在自家機房內部,但依然可以透過虛擬網路的設定,讓它能與 Azure 上的服務連接,讓資料只在這個虛擬網路間流動,不必擔心資料洩漏的問題。

擴展服務到行動裝置

如果你還想開發行動裝置的 app 來接觸更多消費者(或是讓消費者多一種方式來使用網站),Azure 的行動服務可以幫你解決開發行動裝置時許多需要伺服器的工作,像是資料同步、身份驗證、(結合通知中樞服務)推播通知等等,讓你可以專心開發 app,而伺服器的部份由 Azure 行動服務做完,並且這些功能都支援 Windows、Android 以及 iOS 裝置,省去許多開發維護的工作。

使用其它服務完成特定工作

如果你要提供影音直播串流、或是隨選視訊(VOD, Video-on-Demand)的服務,這些都可以直接使用 Azure 媒體服務完成,不管是串流還是 VOD 都可以支援各種平台裝置所需要的影音編碼格式,大大減輕了撰寫程式的負擔。而若是要處理其它工作,可以在 Microsoft Azure 市集中找到一些第三方服務來使用,像是寄 Email 的需求,就可以使用市集中的 SendGrid 服務來租用完成。透過這些 Azure 或第三方開發的服務,你的應用程式可以省下很多開發的時程,快速將網站系統上線。

使用 CDN 加速網路存取

當網站系統都開發完成後,除了我們一開始規劃的使用流量管理員來負載平衡、分散流量之外,若想要讓使用者從更接近他的網路節點取得網站內容(靜態內容),則可以使用 Azure CDN 服務來快取網站上的靜態資料、Blob 儲存體內容、媒體服務的影音檔案,舉例來說,離台灣用戶最近的 Azure 資料中心在香港(東亞機房),但若套上 Azure CDN 之後,因為 Azure CDN 的服務有在台灣的節點,所以用戶從 CDN 讀取資料時就是從台灣這裡的節點讀取,比起到香港讀取資料又更快了一點。


這個架構圖只是建構系統上的一個建議,你不一定要照這樣的方式才能建立網站,但總是一種參考架構,同時也可以瞭解 Azure 眾多的服務要如何運用。

Comments (1)

  1. Anonymous 說:

    Microsoft Azure 上有相當多服務可以協助你開發堅固的網站,而針對面向一般消費者的行銷網站(其實適用於許多網站應用情境),Azure 團隊有一個建議的架構圖。

    這篇文章就針對這份架構的建議來提供說明

Skip to main content