SQL Azure的資料庫應用程式開發和SQL Server有95%以上可相容,剩下的5%只要修改一下SQL,將不支援的指令移除後,一樣能連接SQL Azure。
[Windows Azure][IT鐵人賽系列] Day 27 - SQL Azure Application Development
- 4388
- 0
- Cloud Computing
SQL Azure的資料庫應用程式開發和SQL Server有95%以上可相容,剩下的5%只要修改一下SQL,將不支援的指令移除後,一樣能連接SQL Azure。
SQL Azure的安全性可以分為兩個部份,一個是防火牆設定,另一個則是帳戶的管理與授權設定。
SQL Azure資料庫的管理,基本上多數功能和在本地的SQL Server是一樣的,但是和伺服器與作業系統調整的功能,就不在SQL Azure的支援範圍以內。
筆者之前在多場研討會和課程中講授SQL Azure時,都會強調一件事:『雖然SQL Azure和SQL Server很像,但它們本質上還是不同的』。看起來再怎麼像的東西,也一定有不同的地方,SQL Azure以Windows Azure基礎建設環境為基石建構,同時享有了高可用度與容錯能力,但是它並不是什麼都沒改就能做容錯的,除了基礎建設對網路與虛擬機器資源的支援外,SQL Server本身勢必也要做一些修改,才能符合SQL Azure原始設計上應有的功能。
在介紹完Windows Azure Platform基本的核心服務Compute Service, Storage Service, VM Role, Remote Desktop和VPN後,我們將焦點轉到資料庫上,微軟的SQL Azure是業界少數將關聯式資料庫(RDBMS)開放給外界使用的一種雲端資料庫服務(Cloud Database)...
Windows Azure Platform在v1.3時提供了一項功能,可以把Windows Azure Platform內運行中的虛擬機器當做企業網路中一台電腦的能力,就有如將外部電腦視為企業內網路的電腦一樣,這個新功能稱為Windows Azure Connect...
繼前一天的VM Role作業,我們已經成功的上傳了自訂的 VM Role 基礎作業系統影像 (base operating system image),接下來就是在 Visual Studio 中使用這個VM Role。VM Role 和 Web Role/Worker Role 不同,它擁有自己的組態環境,不像 Web Role/Worker Role 是可以在上面建置專案,也就是說,企業的應用程式必須要在 VM Role 中都設定好以後,再將 VHD 上傳到 Windows Azure 資料中心。當然,你也可以使用 Remote Desktop Connection 的檔案上傳來傳送檔案,但是速度不會比直接在 VHD 組態好後再上傳來的快。
VM(Virtual Machine)Role 是微軟特別開放 Windows Azure Platform 上的 Image Deployment 機制,讓企業可以自行設定一個自己的虛擬磁碟(Virtual Hard Drive, VHD)並上傳到 Windows Azure Platform的 BLOB 儲存區中,而 Windows Azure Platform的RDFE (Red Dog Front-End) 可以在應用程式的設定下,由自己的 BLOB 儲存區中取用自訂的 VHD 進行組建,以作為應用程式的執行環境。
在今年九月的時候,收到來自於國外一間出版公司 Packt Publishing 的電子郵件,邀請我為他們的書 Microsoft Windows Azure Development Cookbook 寫篇書評,當時我原本是因為語言的關係回絕,但他們回覆說允許我使用繁體中文來撰寫,所以我就答應了,但因為很來事情實在太多,應接不暇,所以才拖到現在寫,對他們是有些抱歉 ...
Windows Azure Platform一開始的設計大多是以開發人員為中心,因為它是一個Cloud Platform,要先吸引開發人員的目光,才會讓它的應用變得更廣泛,但是雲端運算不是只有開發人員的任務,在應用程式發行之後,維運則是MIS與企業內的IT人員的工作,所以在1.3版開始,微軟慢慢的加入了與MIS維運有關的功能,其中一項就是Remote Desktop Connection(遠端桌面連線)。
開發雲端應用程式的思維可不能像平常開發應用程式一樣,我們每天在開發應用程式時,都能運用除錯器來偵錯,或是調台近端的主機上傳測試用,或是公司自己有自動化測試的機制,然而當應用程式上了雲端環境後,這些習慣幾乎通通不能用了,原因很簡單,雲端應用程式執行的地方可能是離你幾千公里外的公有雲機房,我們不可能在機房內掛除錯器偵錯,就算要上傳也要幾經思量(要錢),但是我們又希望能夠記錄或測量應用程式的執行細節,這時我們能夠用的,就是Windows Azure Platform本身的診斷服務(Diagnostics Service)。
Drive Storage是Windows Azure SDK特別為.NET的開發人員所準備的一個儲存格式,它只存在於Windows Azure SDK的組件和API中,它並沒有對外的REST APIs,除了使用Windows Azure SDK外,沒有別的方法可以使用,它本身是基於Page-BLOB為主的儲存服務,但將它模擬成一個獨立的磁碟機供應用程式使用...
學過資料結構的人一定都聽過Stack和Queue吧,Stack是後進先出(LIFO),而Queue則是先進先出(FIFO)的資料結構,商用系統的實務開發上,Queue的應用範圍比Stack要大的多了,因為在實務上會用到先進先出的案例太多了,舉凡線上訂位(購買)、抽號碼牌、選位等等商用的需求都會要求先進先出的條件,故Queue的應用範圍會比Stack大的多,微軟當然也很清楚這一點,所以在Storage中也實作了一個專門處理Queue的服務,即為Queue Storage。
Table Storage是一個模擬關聯式資料庫的結構化資料(structured data)存取服務,它就像是在雲端中的表格一樣,允許應用程式可以在Table儲存體中宣告並存取自己的資料結構。而在Table儲存體的內部,則是橫跨多個伺服器與磁碟儲存區的基礎架構,微軟的Windows Azure開發小組將核心內的所有作業都隱藏起來,只顯露出一個REST API供外部應用程式存取,而且都是透過相同的URL來呼叫,因此Table基本上並不是儲存在應用程式所在的VM,而是在Windows Azure Platform內部自動規範的儲存區域中。
BLOB Storage顧名思義,是專門用來儲存二進位檔案使用的儲存服務,基本上檔案的格式沒有任何的限制,只要是可以轉換成二進位資料(binary data)的檔案都可以儲存,也就是我們常說的非結構化(unstructured)資料,舉凡一般的文字檔案到大型的影音檔案都可以使用。
作為應用程式以及其他類型線上服務的核心平台,Windows Azure Platform除了針對雲端運算的基礎建設、營運與管理部份特別設計並支援外,它也必須要具有應用程式以它為基礎開發服務的相關支援,以一個作業系統來說,除了硬體與運算資源的分配與控管外,對軟體最直接最基本的支援,非儲存功能莫屬。如果沒有儲存功能的話,作業系統只能執行運算,而不能利用近端的媒體來儲存資訊,因此作業系統必須要有儲存的能力,才能夠達到開放給應用程式發展的最低限度服務。
昨天我們完成了準備工作,接下來我們就可以直接部署了。
在完成Cloud Application的開發也完成本地的測試後,我們就可以將應用程式發行到雲端環境了,當然,使用者必須要先申請到Windows Azure Platform的帳戶,然後登入到Windows Azure Management Portal建立新的主機服務(Hosted Service),才可以進行上傳的工作。
為了要讓開發人員無需為了測試簡單的功能就不斷的在雲端環境和本機間來回,所以特別準備了一個在本機上模擬雲端環境的工具,稱為Windows Azure Simulated Environment...
經由前幾天的知識補給後,我們來寫一支簡單的Cloud Application吧,當然第一次用要先向Windows Azure說聲Hello,所以第一支程式就以Hello Windows Azure來實作吧。
Windows Azure Platform的運算服務設計上分為兩個部份,第一個部份是等級(Level),第二個部份是用途,等級決定了RDFE在部署時的實體伺服器選擇,而用途決定了Guest OS以及內部的Fabric Agent要如何啟動以及開啟適當的網路通訊埠...
本文介紹 Windows Azure 核心的另一個重要元件:RDFE,它是應用程式部署的核心,外界對 Windows Azure 的任何呼叫操作都會透過它與 Fabric Controller 溝通與命令。
在介紹完雲端運算的三種服務模型後,我們再將目標轉回到主幹Windows Azure Platform,深入Windows Azure Platform的核心部份一探究竟。
Windows Azure Platform是微軟的雲端運算藍圖中,公有雲(Public Cloud)端的解決方案,就如同在桌面與伺服器上的Windows作業系統一樣,它擁有自己的作業環境、資源配置以及資訊交換與控制等等的核心架構,提供儲如運算服務(Compute Services)、儲存服務(Storage Services)、網路服務以及核心端的監管與安全服務等等,可將它視為是一個公有雲上的Windows作業環境...
繼前一篇 Windows Azure SDK v1.5 announced 文章,我們再介紹幾項 SDK v1.5 以及其他相關服務的新功能吧。
這次 9/13-15 在老地方 (TICC) 舉辦的 Microsoft Tech.days 2011 Taiwan,筆者受邀當 COS 課程的講師,這次所主講的是 SQL Azure Overview 以及程式開發人員比較感興趣的 Windows Azure Service Management APIs 的開發。
在 9/13-16 舉行的 BUILD WINDOWS (其實就是以前的 PDC 啦) 研討會中,除了眾所矚目的 Windows 8 和 Visual Studio "11" 以外,雲端當然也不會缺席,微軟在 9/14 的 Keynote 2 中發表了 Windows Azure SDK v1.5,並隨著新的 Visual Studio Tools for Windows Azure v1.5 一起發表,這次的 Windows Azure SDK v1.5 中,除了以往功能的小部份增強外,還多了幾個有意思的功能。
各位觀眾,佛心專案又來啦,這次是給 Windows Azure Platform 的 Service Management APIs 的開發人員,一個簡易的服務管理應用程式元件,稱為 EasyAzure Framework Library,可以在 http://easyazure.codeplex.com/ 中下載。
本回的 bug 逃走中,發生在 Windows Azure Platform 的 Service Management API 上。
Membership, Role 以及 Session State 這三樣是 ASP.NET 2.0 以後其後版本中的重要角色,ASP.NET 內建了數個 APIs 以及預設的 Providers,並透過 aspnet_regsql.exe 在 SQL Server 中可以建立必要的資料庫與表格,供 ASP.NET 應用程式使用。但是,在 SQL Azure 中,這個功能突然不能用了...