• 如何規劃您放在 Azure 上的網站服務

    原文發表自 How to plan your migration to Azure Websites

    把應用程式移轉到雲端平台上(順利地運作)有時候也是件不容易的事情,若您採用 Azure 網站服務來託管您的 web 應用程式,那我們有幾件事情想讓您知道,作為移轉時的參考。

    1. 遍佈全球

    目前 Azure 網站服務已經正式營運,所以 Microsoft Azure 全球的資料中心都可以提供 Azure 網站服務,這點對於想要做全球生意的您來說是相當方便且重要的,您可以參考這份清單來看 Microsoft Azure 在哪些地區提供了什麼樣的服務。

    2. Azure 網站服務已經內建負載平衡器

    若您使用其它的雲端或是 IaaS 服務,當您架設網站時可能還要自行搭建負載平衡器(load balancer),而在 Azure 網站服務上,您不必擔心負載平衡的問題,您只需要設定要使用多少資源來運作網站,Azure 網站服務會幫您做好負載平衡,即使是跨不同區域的流量,您也可以直接使用 Microsoft Azure 所提供的流量管理員(traffic manager)來平衡跨地區的流量。但要注意的是,若您使用免費的網站服務價格方案,則並不支援負載平衡器。

    結論就是:使用 Azure 網站服務來託管 Web 應用程式,不需要再另外架設負載平衡器。

    3. Azure 網站服務底層是使用 IIS 伺服器

    Azure 網站服務的底層是由 Windows Server 以及 IIS (作為 Web 伺服器)的技術所建置而成,在這個架構上目前支援了 .NETPHPNode.JSPython 以及 Java 程式語言所開發的 web 應用程式,所以關於安全性、錯誤診斷以及效能都可以完全利用 IIS 伺服器的功能來完成,詳細資訊可以參考這裡

    4. 瞭解 Azure 網站服務的服務水準(SLA)

    在 Azure 網站服務上的 web 應用程式都不該假設服務能在 100% 的時間都上線運作,請詳情閱讀 Azure 網站服務的服務水準,您會知道目前 Azure 網站服務保證了每個月 99.9% 的服務水準。

    然而,若您除了 Azure 網站服務之外,還使用了其它的 Azure 或非 Azure 的服務,像是資料庫、儲存體、CDN 服務等等,那您必須也要瞭解這些服務本身的服務水準。

    若您希望自己的 web 應用程式服務水準能夠超過 99.9%,那您必須要為可能發生的錯誤做好設計,以便讓網站應用程式在發生問題時,能夠自動重試或是自行復原。

    5. 瞭解各個價格方案

    Azure 網站服務目前提供了四種價格方案:免費共享(預覽)基本標準

    • 共享方案(預覽):使用共享價格方案,在預覽期間,一個 web 實體的一個小時運算費用為新台幣 0.39 元,一個月差不多約新台幣 300 元左右(視匯率而定)。
    • 基本及標準方案:基本及標準方案提供不同的主機大小,讓您可以根據需要隨時自行更改運算資源,每個月的價格從新台幣 1680 元(基本方案,一台機器,小型主機)或新台幣 2250 元(標準方案,一台機器,小型主機)起。

    關於價格以及詳細的功能資訊,請參考這一頁的說明。

    6. 在 Azure 網站服務上無法直接操作服務的虛擬主機

    Azure 網站服務提供平台來運作您的 web 應用程式,但您無準連線到該服務的虛擬主機進行操作或安裝特定的軟體,這是平台即服務(platform-as-a-service)的特性,由服務商直接來管理虛擬機器的部份,而您只需要專注在程式的開發即可。

    當然我們建議您,開發無狀態(stateless)的 web 應用程式可以得到更好的延展性。

    7. 自動延展

    目前只有選擇標準價格方案才能使用自動延展(Auto-scale)的功能,這可以幫助您省下自行監控及手動操作的力氣,費用上也較有效率,因為自動延展機制會根據狀態自行幫您挑選合適的運算資源,以免造成浪費或平足,詳細的資訊可以參考這篇文章的說明。

    8. Azure 網站服務的磁碟伺服器是共享的

    Azure 網站服務中,每一個 Web 實體都有本地端的磁碟空間,不過這個磁碟伺服器是在同一個 Web 服務下各實體間共享的,所以同一個 web 下的各實體都可以共享像是 session、cache 之類的資料。

    9. 快取

    Azure 網站服務針對 PHP 應用程式提供了 Wincache ,而 IIS 伺服器也設定了 Output Cache 讓所有放在 Azure 網站服務上的應用程式享用到這個快取。

    在大部份的狀況下,這樣的快取機制已經足夠,但如果您需要更高等級的快取,您可以選擇:

    10. 提供部署的預備環境

    Azure 網站服務在標準的價格方案下,提供了部署預備環境(staging)的機制,您可以在網站開發完成後,先部署到預備環境,待測試沒有問題之後,直接在不停機的狀況下立刻切換上線,詳細的操作可以參考這篇文章

    11. SSL

    為了讓瀏覽器與網站之間的通訊更安全,我們會使用 HTTPS 通訊協定來進行資料傳輸,這時就必須使用 SSL 加密技術,Azure 網站服務可以讓您直接設定好 SSL 連線,詳情請參考這篇文章

    12. 自訂網域名稱

    當您建立網站服務時,Microsoft Azure 會提供給您一個網域名稱像是:http://<mysite>.azurewebsites.net 來使用,而當然您也可以設定自訂的網域名稱,詳細的內容請參考這篇文章

    13. 使用 WebJobs 執行背景程式

    Azure 網站服務不只是能執行網站應用程式,也能透過 WebJobs 來背景執行一些批次的工作,詳細的使用請參考這篇文章

    14. 自我修復

    在 Azure 網站服務中開啟了自我修復的功能後,您的網站就會自動偵測是否有狀況發生,以及嘗試進行復原,詳細的設定及功能請參考這篇文章

    15. 備份及還原

    Azure 網站服務提供您可以很方便地自動或手動進行網站內容的備份及還原,您不僅可以回溯到之前的網站,也可以用備份的內容建立新的網站。

    關於網站備份的部份,可以參考這篇文章;而這篇文章則說明了如何從備份中進行還原。

    16. 使用 SendGrid 服務來寄送郵件

    Azure 網站服務本身並沒有提供 SMTP 的服務來寄送信件,您可以使用像是 SendGrid 這樣的服務來寄信,價格方案可以參考這裡,而這篇文章也說明了要如何設定 SendGrid。

    Azure 網站服務上線前的確認

    • 確認您使用正確的資料中心。
    • 瞭解 Azure 網站服務的價格方案,來規劃網站的方案,以及考慮是否要使用預備部署環境。
    • 選擇部署方案:Visual Studio Online、Git、Web Deploy、Dropbox 還是 Bitbucket 等等。
    • 設定快取、資料庫等等。
    • 設定開發與測試的環境。
    • 建議使用基本或標準的方案來運作上線的網站服務。
    • 考慮使用 Azure 儲存體或媒體服務來處理多媒體檔案。
    • 設定自我修復的機制。
    • 設定自動備份。
    • 設定自動延展。

    結論

    在 Azure 網站服務上有很多種架構設計的方式,這篇文章只是特別提示幾個重點,希望可以協助您部署成功的網站服務。

  • Microsoft Azure Websites 如何攔阻特定 IP 區段之網路連線‏

     

    感謝北科大劉建昌同學翻譯 微軟公司 Microsoft Azure Websites 主管  Stefan Schackow 於 2013/12/09所發表的文章

    http://azure.microsoft.com/blog/2013/12/09/ip-and-domain-restrictions-for-windows-azure-web-sites/

    一個 Azure Web Sites 上的網站如何設定僅允許特定 IP 位址可以存取,或是限制特定 IP 位址不能夠存取 ? 這一直都是 Azure Websites 用戶最常問到的問題,而現在在 Microsoft Azure上終於可以實現這���功能了。 自 2013 年開始 Azure Websites 即可透過動態 IP位址限制 (DIPR) 功能,提供使用者這項攸關資安的重要功能。

    開發人員可以使用 IP 或網域 (domain) 方式來控制特定 IP 位址允許或禁止存取一個 Azure Websites 上的網站,ASP.NET 開發人員可以透過設定網站上的 web.config 檔來啟用、禁用甚至是自訂特定的 IP 位址存取行為模式。

    這項功能原本在 Windows Server IIS 上即有提供,這裡有一篇關於由 IIS 提供 IP 與網域限制用在 .NET Website 的概述。所有完整的組態參數和屬性都可以在 TechNet 網站上找到。

    下面的程式碼範例,顯示了如何在 ASP.NET 中透過 web.config 針對 IP位址存取規則在 ipSecurity 區塊進行配置。

    如過要讓特定 IP 位址與子網路遮罩 (subnetMask) 共同定義的某個 IP 位址範圍才能夠存取此網站。如下圖將 allowUnlisted 設定為false,代表只有那些被開發人員所指定的 IP 位址或 IP 位址範圍,Azure Websites 才會接受其 HTTP 請求。而在子元素中的 allowed 屬性設置為 true,表示其後由 IP 位址與子網路一同定義的 IP 位址範圍能夠允許存取這個網站。

    clip_image002

    若有一個 HTTP 請求是從不被允許的 IP 位址範圍發送到網站,此時依據 denyAction 屬性所定義,用戶會得到一個 HTTP 404 的錯誤回傳訊息。

    最後要注意的是,就像 動態IP位址限制(DIPR)功能 一樣,Microsoft Azure Web Sites 此功能會依據用戶真實的 IP 位址來進行存取控制。

  • Azure BizTalk Services Hybrid Connections (技術預覽)

     

    感謝北科大劉建昌同學翻譯 微軟公司 Microsoft BizTalk 團隊主管  Harish Kumar Agarwal 於 2014 年 5 月 13 日所發表的文章 http://azure.microsoft.com/blog/2014/05/13/hybrid-connections-preview/

    hybrid connections

    混合連接服務 (Hybrid Connection)

    2014 年 5 月 Microsoft Azure 推出了一項新的技術預覽功能 : Azure BizTalk Services Hybrid Connections,使用 Hybrid Connections 服務可以輕易的在 Azure 上部屬一個混合式的應用程式。

    Hybrid Connections 服務是 Azure BizTalk Services 上的一項功能,用戶只需要在 Azure入口管理網站上操作,即可讓您的 Azure Website 或是行動服務可以穿透防火牆連接自己本地資料中心內的資料與服務。除此之外,為了讓您可以輕鬆的體驗這項新服務,Microsoft Azure 目前提供免費體驗 Azure BizTalk Services Hybrid Connections 的方案。

    Hybrid Connections 服務支援所有 Azure Websites 所支援的程式語言與框架( .NET, PHP, Java, Python, node.js )以及 Azure 行動服務所支援之後台程式語言 ( node.js, .NET ),也支援各種微軟公司或非微軟公司之企業軟體應用系統 (LOB application),包含許多使用特定通訊協定 ( protocols ) 之應用程式。使用 Hybrid Connections 服務時,不需要去改變網路周邊的設定 ( 不需要配置 VPN 或是新增特定之防火牆連接埠)。它提供了企業系統管理人員能夠管理與控制混合式應用程式所使用之內部資源。

    Hybrid Connections (Preview)

    透過 Hybrid Connections 服務,Azure Websites 和行動服務上的程式碼能夠如同在企業內部網路般存取本地端的資源。也因為如此,應用程式系統管理員可以簡單且靈活地,將面對外部用戶前端服務層輕易地移往 Microsoft Azure,延伸既有企業應用程式成為混合式的應用模式。

    使用 Hybrid Connections 服務來連接您的 Azure Websites 和本地端資源 :

    1. 從 Azure預覽入口網站 選取您的網站,並且在操作介面中選取 Azure BizTalk Services Hybrid Connections 並且點擊新增

    clip_image002

     

    2. 選擇一個現有的 Hybrid Connections 服務,或是創建一個新的 Hybrid Connections 服務

    clip_image004

    a. 輸入 Hybrid Connections 服務以及主機名稱,並且設定連接本地端資源的連接埠

    clip_image006

    b. 使用現有或是創建一個新的 Azure BizTalk Services Hybrid Connections 服務實例

    clip_image008

    3. 點擊 OK

    一旦連接創建好之後,其狀態將顯示為 "未連接" ( Not Connected )。若要完成連接建立,則須從任何本地端的 Windows Server 主機點擊連接

    clip_image010

    4. 選擇 Hybrid connection

    5. 點擊 Listener Setup

    clip_image012

    6. 在 Hybrid Connections 連接的屬性頁面,選擇 "Install and configure",這個動作要求您做 Hybrid Connections 服務的權限設置

    clip_image014

    7. 設定完權限之後即完成 Hybrid Connections 服務的設定。

    當 Hybrid Connections 服務的狀態顯示為 "已連接" ( Connected ),這就表示您的網站已經連接到本地端伺服器了。

    行動服務則可以透過 Azure入口網站 進行配置 Hybrid Connections 服務。

    1. 建立一個新的 BizTalk 服務,並且在 BizTalk 設定頁面上選取新增一個混合式連接 (Hybrid Connections)

    clip_image016

    2. 新增一個混合式連接

    clip_image018

    3. 選取您的行動服務,並且選擇混合式連線

    clip_image020

    4. 點擊新增混合連線,並且選擇與您的行動裝置建立連線的BizTalk服務以及混合連線

    clip_image022

    透過使用混合式連接,您現在可以在 Azure Website 或行動服務上使用相同的應用程式連接字串和 API。

    舉例來說,若您要連接到一個本地端的 SQL server (payrollSQL.corp.contoso.com)

    您在 Azure Website 或行動服務上可以使用相同的 SQL 連接字串 (“Data Source=payrollSQL.corp.contoso.com;Initial Catalog=payrollDB;User ID=<user>;Password=<password>”)

    若想要了解更多關於混合式連接的資訊,請參照以下英文技術資源 :

    · Overview: Hybrid Connections

    · How-To: Connect an Azure Website with an On-Premises Resource

    · Tutorial: Connect an Azure Website to an On-Premises SQL Server using Hybrid Connections

    · Tutorial: Connect an Azure Mobile Services .NET Backend to an On-Premises Resource using Hybrid Connections

  • Azure 網站服務整合虛擬網路功能

    原文發表於 Azure Websites Virtual Network Integration

    Azure 網站服務現在已經整合了 Azure VNET(virtual network 虛擬網路)的連接,透過 Azure 虛擬網路,您的網站就能夠存取由虛擬網路連接的其它資源,像是僅透過虛擬網路連接的虛擬機器或資料庫等,如果你既有機房透過 Site-to-Site VPN 連接到這個虛擬網路後,那這個放在 Azure 網站服務上的 Web 便能存取既有機房內的各種資源。

    Azure 網站服務的虛擬網路整合需要有一個動態路由閘道以及開啟 Point-to-Site 的功能,同時這項功能目前還在預覽階段,所以僅支援使用標準價格方案的網站服務,目前標準價格方案支援 5 個網路連線,而一個網站只能連接到一個虛擬網路,多個網站連接到同一個虛擬網路是沒問題的。

    要使用這個功能必須要到預覽中新的 Azure 管理介面進行設定以及瞭解連線狀況。

    透過這個介面,你可以將網站連接到既有或是直接建立一個新的 Azure VNET,這個動作可以在任何時間進行建立、連接、修改或刪除虛擬網路的連線,而要注意的是選擇了正確的價格方案。

    虛擬網路目前支援 TCP 及 UDP 通訊協定,同時也可以使用 VNET 中的 DNS 服務。由於混合網路連線(hybrid connection)與虛擬網路相容,而且這兩個服務在不同的應用情境上也有不同的好處,所以您可以視情況混合使用。

    混合網路連線讓你可能存取遠端的應用程式,混合網路連線的代理程式可以部署在任何網路環境中然後順利地連回 Azure 的網路,這樣的功能讓你可以在不同的網路環境中存取應用程式,而不必逐一設定虛擬網路。而虛擬網路服務則是設定完成後便能自由地存取虛擬網路中的各項資源,而不必安裝代理程式,而且 Azure 提供的 Site-to-Site VPN 服務能讓企業使用既有的工具。現在 Azure 網站服務可以使用這兩種網路功能後,將會更適合在遠端連線存取的應用情境之中。

  • Azure虛擬機器組件庫釋出針對交易和資料倉儲的資料負載全新優化的虛擬機器映像檔

    我們很高興宣布Microsoft Azure 虛擬機器組件庫釋出全新優化的SQL Server 映像檔。這些預先配置好的映像檔對於交易及資料倉儲的資料負載進行優化,並分別使SQL運行於Azure VMs上擁有最佳的實務表現

    有哪些預先配置的虛擬機器映像檔可以使用?

    在Azure VM組件庫中有下列四個新的預先配置的虛擬機器映像檔可以使用:

    • SQL Server 2014 Enterprise Optimized for Transactional Workloads on Windows Server 2012 R2
    • SQL Server 2014 Enterprise Optimized for Data Warehousing on Windows Server 2012 R2
    • SQL Server 2012 SP2 Enterprise Optimized for Transactional Workloads on Windows Server 2012
    • SQL Server 2012 SP2 Enterprise Optimized for Data Warehousing on Windows Server 2012

    目前在虛擬機器實體上的映像檔允許附加16個data disks,用以提供最高的流量(或總頻寬)。這些實體是Standard Tier A4, A7, A8 和A9,及Basic tier A4。欲了解更多大小和選項的細節,請參考Azure虛擬機器和雲端服務大小

     

    如何開始從組件庫使用新的交易/資料倉儲映像檔?

    透過Azure 入口網站開始使用優化的交易或資料倉儲虛擬機器映像檔

    1. 登入Azure 入口網站
    2. 點選左下角的新增,然後點選計算,再點選虛擬機器,然後點選從組件庫
    3. 在虛擬機器映像檔選擇頁面,選擇其中一個交易或資料倉儲的SQL Server映像檔


       4. 在虛擬機器組態頁面中的大小選項,選擇一個可支援的大小


     

    請注意,只有Standard tier A4, A7, A8 and A9 and Basic Tier A4可支援,若企圖選擇未支援的虛擬機器大小將會使得虛擬機器建置失敗


     

       5. 等待虛擬機器建置完成,在這期間你可以在虛擬機器的頁面查看準備狀態。

    除此之外,你可以使用PowerShell Commandlet New-AzureQuickVM來建置虛擬機器。您將會需要輸入您的雲端服務名稱、虛擬機器名稱、映像檔名稱、管理者使用名稱和密碼等作為參數。取得映像檔名稱的簡易方法是使用Get-AzureVMImage列出所有可用的虛擬機器名稱。

     

     在交易/資料倉儲映像檔中有哪些特定的組態?

    這些優化的映像檔是以Performance Best Practices for SQL Server in Azure Virtual Machines為基礎,包括以下:

     

     

    交易

    資料倉儲

    硬碟組態

    附加的硬碟數

    15

    15

    儲存空間

     

    兩個儲存池:

    -  一個資料池有12個data disk;固定大小為12TB; 欄位=12

    -  一個紀錄池有3個data disks;固定大小為3TB; 欄位=3

    剩下的一個data disk(第16個)由使用者自行附加以及使用。

    Stripe size = 64 KB

    Stripe size = 256 KB

    硬碟大小、快取、配置大小

    1 TB each, HostCache=None, NTFS Allocation Unit Size = 64KB

    SQL組態

     

    啟動參數

    -T1117當資料庫需要自動增長時,幫助維持資料檔案擁有相同大小

    -T1118協助TEMPDB的可擴充性(瞭解更多)

    復原模式

    No change

    Set to “SIMPLE” for MODEL database using ALTER DATABASE

    設定預設位置

    移動SQL Server 錯誤日誌和追蹤文件目錄至data disks

    資料庫預設位置

    系統資料庫移至Data Disks

    使用者資料庫建立位置改變至data disks

    即時文件初始化

    Enabled

    Locked pages

    Enabled (瞭解更多)

     

    FAQ

    1.優化和非優化的映像檔價錢有無任何差別?                                                                       

      沒有。全新優化的映像檔的定價模式與非優化映像檔完全相同(瞭解更多),不需額外的成本。注意,虛擬機器實體的大小越大,成本越高。

    2.有無任何其他效能修正我必須考慮的?                                                                              

      有,考慮以下與SQL Server相關的效能修正

    3.我要如何能夠找到更多儲存空間的資訊?     

      請參考儲存空間FAQ

    4.全新資料倉儲映像檔與先前舊有的有甚麼差別?

      先前的資料倉儲映像檔需要顧客去執行額外的步驟,像是建立VM後需自行附加data disks,但是新的資料倉儲映像檔在建立完成後便準備完成,更加精簡,也更不容易出錯。

    5.如果我想要使用舊有的資料倉儲版本,是否有辦法可以使用?                                             

      舊有的VM映像檔還可以使用,只是不能直接從組件庫存取,但您可以使用Powershell commandlets來建立。舉例來說,你可以使用Get-AzureVMImage列出所有映像檔,一但你找出舊有的

    資料倉儲映像檔的描述及發佈日期,您可以使用New-AzureVM來使用相對應的映像檔。

     

    參觀我們的Azure portal並且試用新的SQL VM映像檔,告訴我們您的感受,給予我們回饋。

    透過您喜愛的社群網路頻道讓您的同事知道新的VM映像檔已經可以使用,並且別忘了在Twitter上追蹤@SQLServer,以及在Facebook上找到SQL Server專頁