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

    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 眾多的服務要如何運用。

  • Azure Data Factory- 資訊管線的建立與管理 (技術預覽)

    感謝北科大劉建昌同學翻譯微軟公司 Azure Data Factory 團隊主管 Mike Flasko於 2014 年 10 月 29 日所發表的文章 http://azure.microsoft.com/blog/2014/10/29/data-factory-public-preview-build-and-manage-information-production-pipelines/

    現代企業資料處理的方式相較過往更為多樣化,資料處理往往需要牽涉到多個不同地理位置的資料,面對位於本地與雲端上的資料,甚至較過去更為多樣化的資料型別與更大的資料量,上述原因都會造成資訊系統過於複雜或是多樣化。也因此開發人員必須撰寫大量的客製處理邏輯,以便協調,處理和管理所有產生出來的資料。

    我們很高興的宣布,新的 Azure Data Factory 服務正式進入技術預覽階段,可供所有使用者測試和使用。Azure Data Factory 是一個將資料儲存,資料處理,資料搬移運用產生資料管線 (data production pipelines) 方式處理的雲端服務,您僅需要在 Azure 管理網站上透過幾個簡單的步驟,或是使用命令列操作,就能夠建立一個 Data Factory 並且將其與生產的資訊和資���加以結合。在技術預覽階段的 Data Factory 能夠連接到本地端 SQL Server 或是 Azure Storage Blob、Table 與 Azure SQL Database 上的資料。歡迎您將此預覽階段上使用 Azure Data Factory 的心得回饋給我們,我們將會增加更多種資料來源在這項服務上。

    關於 Hadoop 巨量資料的處理,在最一開始都是透過 Hive、Pig 或是 C# 等語言撰寫出的 activites 來進行。這些 activites 可以用來清除資料、遮罩資料欄位 (mask data fields) 或是透過各種各樣複雜方式來轉換資料。Hive 和 Pig 所編寫的 activites 能夠在您所建立的 Azure HDInsight 叢集上運行,或者您也能夠讓 Data Factory 來全權管理整個 Hadoop 叢集的生命週期。透過這項方法,您只需要編寫 activites,並且將他們組合成一個管線 (pipeline),並設定好執行的時程 (execution schedule),您就完成了所有的設定,不需要再進行額外之 Hadoop 叢集的安裝和管理。Azure Data Factory 也提供了即時的監控儀表板,這意味著您能夠在佈署了資料管線 (data pipelines) 的同時,也能夠立刻在監控儀表板上了解整個資料產出與處理的狀態。

    目前您已經可以在 Azure 預覽入口管理網站上啟用 Azure Data Factory 服務。

    clip_image002

    clip_image004

    一旦您在 Azure Data Factory 創建和佈署了管線 (pipelines) 之後,您可以快速評估點對點之間數據傳輸的效率,還能夠精準的找到問題點,並在需要的時候採取矯正措施。在 Azure 預覽入口管理網站上,整個資料管線都是以視覺化方式呈現。用戶可以透過圖像了解管線 (pipelines) 之間的相依性,以及資料如何進行輸入與輸出。您還可以透過監控儀表板,得知作業執行狀態 (job execution)、資料生產的狀況與系統健康狀況等詳細資料。最後,利用資料管線 (data pipelines) 的設定,您可以自動從雲端將巨量資料轉換至本地端的 SQL Server 內,或是將轉換完的資料保存在雲端儲存體上,以供應用程式或分析工具來使用。

    透過以下方式,我們可以開始使用 Azure Data Factory

    我們很高興您能夠來試用 Azure Data Factory 服務,並且期待您能夠回饋給我們對於 Data Factory 的使用心得。若您有任何想要告訴我們的想法或是意見,可以到此處來告知我們

  • 使用 Azure Websites Migration Assistant 移植現有網站至雲端

    代發北科大劉建昌同學所撰寫之技術文件

    傳統使用微軟解決方案之技術人員會透過自建機房伺服器上的 Windows Server IIS 來佈署網站或是網頁應用程式,但是這往往會讓網站承載量受限於實體基礎建設上既有投資,而無法有效率的進行擴充和提高可用性。也因此為了解決這種限制,Azure Website 團隊正式推出了 Azure Websites Migration Assistant 的正式版本協助用戶將現有 Windows Server IIS 上網站與應用程式快速移轉到雲端,您可以透過此網站下載 免費的 Azure Websites Migration Assistant 工具。

    Azure Websites 是 Microsoft Azure 所提供的 PaaS ( Platform-as-a-Service ) 服務之一,透過這項服務,開發者只需要專注於網站的開發,而不用擔心建置實體設施的任何問題,即可快速建立一個擁有高擴充性以及高可用性的網站相關服務。

    本篇文章透過使用 Azure Websites Migration Assistant,將運行在本地端或遠端伺服器 IIS 上的網站移轉到 Azure Websites 。目前Azure Websites Migration Assistant 支援移轉 IIS 6或更新版本。Azure Websites Migration Assistant 能夠分析您的伺服器 Windows Server IIS 是否安裝完成,並且確認哪些網站是可以移轉到 Azure Websites。

    移轉本地端伺服器 Windows Server IIS 上的既有網站

    clip_image002

    上圖是一個運作在本地端伺服器 Windows Server IIS上的網站

    clip_image004

    接下來我們可以至 https://www.movemetothecloud.net/ 準備下載 Azure Websites Migration Assistant 工具軟體。Azure Websites Migration Assistant 執行畫面如下圖,用戶可以自行選擇要移轉本地端伺服器的網站還是遠端伺服器上的網站。

    clip_image006

    本文以移轉本地端伺服器 Windows Server IIS上的網站作為範例。若要移轉遠端伺服器上的網站,則需要輸入伺服器名稱以及使用者帳號與密碼。

    Azure Websites Migration Assistant 會找到伺服器IIS根目錄下的所有網站,透過此步驟,您能夠選取IIS上想要移轉的網站。

    clip_image008

    選取將要進行移轉的網站後,Azure Websites Migration Assistant會產生一個準備報告。

    clip_image010

    一旦您上傳了移轉準備報告,Microsoft Azure將會開始分析這份報告,並且將結果顯示出來。您需要去仔細閱讀Azure所做出的移轉評估,並且在移轉前確保已經處理所有移轉問題。

    clip_image012

    若確定移轉問題都解決了,點擊 "Begin Migration"。

    Azure Websites Migration Assistant會要求您輸入您的Azure訂閱帳戶。

    clip_image014

    若您目前還沒有Azure訂閱帳戶,您可以到這裡來申請試用帳號

    選擇租用帳戶和訂閱帳號,並且決定要將您移轉的網站和資料庫放置在哪個區域的Microsoft 資料中心。

    clip_image016

    決定完放置移轉的網站位置後,將需要輸入一個唯一的Azure Websites網域名稱。

    clip_image018

    在自訂選項中,可以選擇移轉網站的運作規模以及是否重新建立一個 Azure SQL Database 資料庫。

    clip_image020

    在自訂選項中,可以選取移轉的網站是否要結合 Azure Active Directory,關於更多同步 Azure Active Directory 的資訊,您可以參考此網站。設定完成後,即可以開始進行網站的移轉。

    clip_image022

    Azure Websites Migration Assistant 會先利用上述步驟設定的 Azure 訂閱帳戶以及移轉目標資料中心的設定,在您指定的 Azure 訂閱帳戶中建立一個 Azure Websites。

    clip_image024

    clip_image026

    此時還尚未將移轉的網站發布到Azure Websites上

    點擊 "Begin Publish",開始將網站發布到 Azure Websites 上。

    clip_image028

    clip_image030

    如下圖所示,原本運行在本地伺服器 Windows Server IIS 上的網站已經成功移轉到 Azure Websites 服務上,並且享有 Azure Website的高擴充性和高可用性。

    clip_image032

    結論

    使用 Azure Websites Migration Assistant,開發者不需要再透過修改程式碼或是重新佈署等方式將網站放到 Azure Website上,而是藉由幾個簡單的步驟,將本地端或遠端伺服器上的網站移轉到 Azure Website 服務上。若想要有更詳細的資訊,您可以透過這篇由Owais Shaikh 所撰寫的部落格,裡面有更多詳細的 Azure Websites Migration Assistant 影片介紹。