對於Microsoft Windows Azure的傳播速度都讓大家大吃一驚,開發者們也異乎尋常的快的接受了。 使用Microsoft Windows Azure作為雲平臺的話,應用程式可以很輕鬆地遷移到雲中。 它是基於Windows 和 . NET的,所以它和開發者們現有的應用程式是高度相容的。
一般情況下,一個應用程式如果要遷移到雲中,就需要經過兩個關鍵性的階段。 第一個階段是盡可能地少做改動,第二個階段則是對這個應用程式的一些元件進行升級。 在第一個 階段中, 只改變那些不得不改變的地方就可以了, 讓它可以「原封不動」地在Microsoft Azure中發揮作用。 而第二個則是讓你的應用程式可以利用上那些Microsoft Azure提供的獨一無二的能力。
在本文中,我們將會討論一些在完成第一個階段(只要可以在Microsoft Azure中正常工作就可以了)的過程中遇到的問題。 大多數的遷移專案都是從「雲適應性」分析開始的,這可以説明你識別出要完成遷移,哪些部分需要做一些額外的工作。 當你正在進行第一個階段的時候,搞清楚你的系統架構是至關重要的,同時,你要讓必須要做的代碼變更最小化。 如果你使用一個完整的單元測試套件來構建你的系統,那麼現在你可以開始歡呼雀躍了。
1,資料移轉
從應用程式的底層開始,我們就不得不面對我們應該把資料存儲到哪裡,以及如何存儲的問題。 最常見的ASP.NET應用程式使用SQL Server把資料存儲在關係資料模型中。 無論你的代碼如何使用這些資料(Entity Framework, nHibernate, ADO. NET等),你都應該關注一下如何把SQL資料庫移轉到SQL Azure中。 這樣做的話,可以讓你的應用程式處於「near data」的場景之中,在這種場景中,應用程式可以保持高度的回應性。
一個Microsoft Azure中的應用程式完全可以通過一個內置的SQL Server來連接和使用資料,但是這樣做的話,會創建一個「far data」的場景。 在這種場景中,資料訪問的延遲會很大,而且性能也會有所降低。
SQL Azure和SQL Server是高度相容的,所以遷移起來並不是很困難,對於那些小型資料庫來說,情況更是如此。 你必須要留意一下你自己可以使用的SQL Azure資料庫的最大尺寸,目前,這個最大尺寸是50GB。 如果你的資料庫比這個尺寸還要大,那麼你必須對你的資料進行分割。
有一個叫作SQL Azure Migration Wizard的開源工具可以説明你完成這個任務,你可以使用它來分析和遷移你的資料。 它可以分析你當前的模式,指出和SQL Azure不相容的地方,然後説明你修改這些地方。 再然後,它可以在後臺使用BCP,把你的資料移轉到雲中。 你可以在這個頁面中找到這個工具。
長期來看,你可以對你的資料進行分析,判斷出哪些資料從本質上來說是非關聯式的,然後把它們遷移到Windows Azure Table storage中。