公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2012年6月13日 星期三

Windows Azure 無法啟用試用帳號的問題

Windows Azure 雲端平台已經可以在台灣使用了,但是有些朋友在啟用試用帳號的時候,遇到了一些無法啟動的問題。下面是目前暫時的解決方法:

1. 開啟 http://account.live.com ,並且使用Live ID登入。

2. 檢查一下,如果姓名欄位有中文資料的話,請暫時先改成英文的。

3. 儲存之後,再回到試用的頁面( https://www.windowsazure.com/zh-tw/pricing/free-trial/ ),這時候應該就可以啟用試用帳號了。

如果你馬上就想試用Windows Azure雲端平台,這是暫時的解決方式,再一些時間就會完全解決。

2012年6月4日 星期一

如何開通Windows Azure雲端平台三個月試用

Windows Azure雲端平台在台灣已經可以開放試用了! 如果有興趣試用的朋友可以參考下面的步驟開通試用帳號:

1. 開啟連結到Windows Azure雲端平台官方網站:http://www.windowsazure.com/zh-tw/ ,然後選取首頁上的 "免費試用":

image

2. 接下來,選取Windows Azure 試用頁面中的 "免費試用" 按鈕:

image

3. 登入你的Windows Live ID,註冊在台灣的Live ID就可以直接開通喔!!

SNAGHTML92eadac

4. 在彈出的視窗當中,國家可以直接選取"台灣",然後按下右下角的箭號繼續下一步:

image

5. 接下來要驗證使用者身分,以避免資料錯誤。請參考下面步驟:

(1) 請先輸入手機號碼,最前面的 "0" 不需要輸入。

(2) 按下 "傳送簡訊" 按鈕,此時系統會傳送一封簡訊到你的手機上。

(3) 輸入簡訊中聳收到的驗證碼。

(4) 按下 "驗證碼" 按鈕。

驗證完成之後,一樣按下右下角的箭號,繼續下一步,輸入信用卡的資料。

image

6. 輸入信用卡的資訊,此時系統可能會向銀行要求1元進行授權確認,但是不會請款:

image

7. 完成之後按下下一步,如果信用卡資料沒問題,就可以開始試用Windows Azure雲端平台了!!

image

8. 你可以隨時選取 "訂用帳戶",檢視目前使用的狀況。需要提醒大家的是,因為試用帳號有使用資源的限制,因此適合用來測試開發好的雲端專案;若是要營運的話,最好要另外申請正式的帳號喔!

image

下一步:

Windows Azure雲端試用帳號開通之後,別忘了下載Windows Azure Training Kit,開始練習雲端平台上的開發喔!!

Windows Azure Training Kit - January Refresh:http://www.microsoft.com/en-us/download/details.aspx?id=8396

2012年4月26日 星期四

上雲端很貴? 成本應該怎樣算?

幾個月之前,有位合作夥伴跟我說,他每個月的帳單都好貴,有沒有辦法幫他省點錢。

“請問你租用的運算環境大小是?”

  "Extra-Large" ,我想我知道問題大概是在那裡了。

  "請問你目前運算環境中,CPU和記憶的用量是…?"

“很低ㄟ,不到5%吧…”

要上雲端,絕對要先換腦袋  -- 不管是在架構的設計或是執行環境的規劃。在傳統的 IT環境當中,因為Server設備的採購以及升級都需要經過冗長的採購與建置程序,因此大家都會習慣一次採購高規格等級的機器,等機器進來之後,再把系統部署上去執行。而雲端呢?

在Windows Azure雲端平台上,因為你可以隨時根據程式執行的需要,調整所需要租用的運算環境的大小與數目,因此在系統上線的初期,你只需要租用"足夠"的運算環境來使用就好了,而不需要一開始就照以往的做法,先開最高規格的機器,再讓資源閒置在那邊浪費。以這個例子來說,原本這一位夥伴是使用Extra-Large的運算環境兩個instance,一整個月的支出大約是:

( 0.96美金 * 720小時 * 30 匯率) * 2 = 41472 台幣/月

但是實際上,以他系統上線初期的負載量,其實使用4個Extra-Samll的instance就足夠了,因此每個月的支出就變成了:

( 0.02美金 * 720小時 * 30 匯率) * 4 = 1728 台幣/月 (http://www.windowsazure.com/zh-tw/pricing/details/)

看到了嗎! 這才是真正他的系統在雲端每個所需要支出的成本! 其實只要一個月1728元,就可以在國際級的資料中心使用四個虛擬運算環境執行你的程式,還有負載平衡管理服務,而且還不需要你自己去設定作業系統環境與維運,你還會覺得雲端很貴嗎?

只要記得 "用多少,租多少" 的原則,其實把系統搬上Windows Azure雲端平台執行,的確是相當划算的! 但是需要注意的是,如果你是使用IaaS或是IDC的虛擬主機的話,除了虛擬機器的支出之外,其實還有許多額外的有形或是無形的成本需要考慮進去。例如一般的 IDC並不會告訴你,程式只部署到一台機器是不可靠的,因為如果要部署到兩台以上的話,你就還要另外再租用負載平衡管理服務,每個月就必須要再額外支出 500~2000左右;而一般的 IDC的虛擬環境,頻寬的計算方式也並非是採用資料傳輸量來計費,大小也都有限制,因此一旦突然有大量的資料傳輸需求,往往是無法立即處理。

換一個腦袋之後,你看雲端就不會再只是霧裡看花!

2012年3月12日 星期一

對不起,我們回不去了…

有家公司,突破了時間的限制,製造出了一台可以回到未來的時光機器;也因為這樣,所以他們獲得了某創投所頒發的創新服務比賽獎金,然後開始大張旗鼓,準備開始載客人進行時空旅行。

第一趟時空旅行,因為相當的新奇,因此吸引了很多人參與。而這家公司也帶著這些客人,前往2020, 2030, 2040…年,看看未來有哪些改變。就在大家要前往2050年的時候…

“啊,糟糕,我晚點要去接小孩…”,有位爸爸突然想起了這件事,於是提出了問題:“請問一下,我們幾點可以回去?”

“對不起,我們回不去了…”

“因為我們只想到回到未來的方法,回到過去的方法還沒想出來…”

創新服務是件好事,但是如果沒有周全的考慮,很容易就遇上瓶頸。像是隱私權、著作權等等,都是新創公司常常遇到的法律問題。再來,創新服務不是去比賽得獎,或是跟創投拿錢就算成功了,還必須要可以永續經營,負起應有的社會責任 - 不可以帶著客人到未來去參觀,最後卻一句 "回不去了",把客人遺棄。

寫到這裡,想起多年前Dropbox剛成立,我跟百敬介紹Dropbox服務,他跟我說他還是用SkyDrive就可以了。理由很簡單:

"我不知道他甚麼時候會倒,所以還是用比較可靠的服務來放資料…"

對照起這幾年一些網路服務的狀態,還真有道理…

2012年1月14日 星期六

資料放雲端,安全嗎?

一直以來,很多朋友與合作夥伴,一聽到雲端,就會有這樣的問題。我想先請教各位幾個問題:

如果你有十萬塊,請問你會放家裡還是放銀行?

如果你有一百萬,請問你會放家裡還是放銀行?

如果你有一千萬,請問你會放家裡還是放銀行?

這幾個問題,對於大部分的人來說,答案都是"放銀行"。為什麼錢不放家裡,要放到別人開的銀行呢? 難道不怕錢被銀行的人偷走嗎? 事實上,你會放心把錢放銀行的原因,就是因為銀行有一定的安全稽核機制,因此你把錢放銀行被監守自盜的機會,絕對比你把錢放家裡被小偷偷走的機會來得低很多

公司裡的資料何嘗不是如此? 當你把資料放在公司中,可能會因為系統外包,而被外包的開發人員下載複製帶走;也可能因為開發人員的疏失,而造成系統的漏洞被盜走;更可能因為資料庫管理員沒有落實備份備援計劃,當機房或是伺服器發生問題時,導致重要資料的遺失...

所以資料放雲端安不安全,其實只是一個觀念上的問題。對於企業來說,資訊安全的問題,有七八成是屬於管理面的責任,剩下的才是跟程式實作有關係;也因為這樣,所以才會有ISO 27001的資安標準(http://www.bsigroup.tw/zh-tw/Training/Course-areas/Information-Security/)。如果你的公司沒有通過ISO 27001,如果你的外包廠商沒有通過ISO 27001的標準,那我可以告訴你,你的資料放在公司,絕對不會比放在雲端上面來的安全。至少在機房的管理上,Windows Azure雲端平台通過了ISO 27001的資安標準;而且當作業系統有重要安全更新的時候,還會自動提供安裝最新安全更新的作業系統版本,避免人為因素所造成的安全性漏洞。

當然,也會有些人用剛通過的個資法,質疑雲端的安全性,其實這並沒有太大的關連。就如同剛剛所提到的,系統的安全性其實有大部分都跟管理有關,如果公司整體的資安管理沒做好,資料放哪裡都是不會安全的。就好比你中了大樂透第一特獎,如果你全家人都不跟外人說,錢放家裡也是可行(放得下的話);但是如果你家人大肆張揚的話,就算你把錢存在銀行,歹徒也可以綁架你去拿這些錢,不是嗎?

從另外一方面來看,也就是因為一般公司的資料中心或是機房管理人員,並非具有專業的資安背景,因此若是將資料存放在管理更好、安全性更高的Windows Azure雲端平台當中,反而更安全! 當然,若是再搭配系統本身實作資料加密,與使用者驗證、授權、稽核等機制,就可以再提升系統整體的安全性!!

面對資訊安全,請記得正確的觀念:資訊安全是架構在良好的資安管理上的! 如果你們沒有制定安全性的政策、程式與架構沒有review、員工沒有資安的觀念與訓練、沒有定期做資訊安全稽核、沒有做資安的弱點分析、沒有有效的掌控重要資料的存取權限、沒有即時監控系統執行的狀況.... 等等,只要其中任何一個資安管理的環節出錯,都會是資安的漏洞!

資料放哪裡,老實說關係其實並沒這麼大。

2012年1月10日 星期二

把Windows Azure 搬回家?

常常有些夥伴會問我,能不能把Windows Azure 裝在公司的機房裡 ?

其實現階端,很多朋友對於雲端平台的名詞都比較有概念了,但是有些觀念的部分可能是因為沒有實際運用過,所以比較不清楚一點,讓我們用最簡單的方式來說明Windows Azure 雲端平台的概念。

首先,先從公有雲和私有雲開始好了。民以食為天,我們就用開餐廳來舉例:假設是做小吃攤的話,你可以用自家的廚房,然後門口擺幾張桌子椅子,就開始做生意;但若是需要開餐聽賺大錢的話,就必須要有正式的店面,才可以容納川流不息的客戶,又不會影響自家人的三餐。

而餐聽裡有廚房,有桌子椅子;你家裡也一樣有廚房,有桌子有椅子,但是絕對不是做生意用的! 除了這些設施之外,開餐館還需要有裝潢、招牌、會計、廚師等等這些你家裡不需要有的成員。所以我們可以說,開餐廳的一些基本設施我們家裡原本就有,我們在家裡就可以利用這些既有的設施,研發新的菜色,然後再請餐廳的廚師幫我們利用這些新菜色賺錢。

 

因此簡單的說,私有雲就是你家,公有雲就像是餐聽的店面。在Windows Azure雲端平台上面,有Web Role、Worker Role和SQL Azure等等服務,而你利用企業內既有的IIS、Windows Service與 SQL Server就可以模擬出來這樣的環境,所以其實並不需要在公司裡自己再架一套起來。而且,除了這些基礎建設之外,Windows Azure雲端平台更重要的價值,就是減輕應用程式上線所需要的IT 營運成本,這更是沒辦法在公司中模擬的。

“We wanted a platform-as-a-service solution, not just cloud infrastructure” (http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000011637)

很多人都會有錯誤的觀念,以為使用虛擬化技術所建構的環境,就是雲端平台(platform),所以以為自己造一個雲端的環境很容易。事實上,虛擬化技術只是雲端基礎建設(infrastructure) 的一種技術,就好像你今天要開餐廳,透過虛擬化技術,你可以得到的是一個店面的毛胚屋,裡面的水電、瓦斯、裝潢、隔間等,都必須要你自己處理。換句話說,假使你有一手好菜色,在開始開張賺錢之前,你還必須要花很多的心力,才能夠開張營業。

而Windows Azure提供的是雲端平台,就好像是裝潢好的店面,你只要把材料搬進店哩,餐廳馬上就可以開張作生意;甚至還提供了中央廚房,如果生意好的話,店面可以隨時擴張,也不會斷炊…

而開餐廳一定需要買店面嗎? 一般說來,如果是好地段的店面的話,買下來當作一種投資,是有增值的可能;但是以機房設備這種東西來說的話,我入行到現在,從來沒聽說有會隨著時間增值的,只有不斷的折舊,不斷的淘汰而已。因此,以租賃代替購買,還有隨著使用量隨時調整租用資源的數量,才是真正可以有效掌握成本的一種做法。

所以,不要再去想怎樣把Windows Azure搬到公司裡了,趕快想一些新菜色,搬到Windows Azure雲端平台開張做生意吧!!!

2012年1月1日 星期日

從Windows Azure 雲端平台談Web應用程式執行環境的安全性

對於企業或是雲端服務提供廠商來說,如何讓對外營運的網站或是Web應用程式有一個安全又穩定的執行環境,一直是一個很重要的課題。然而對於大部分的公司來說,因為內部缺乏專業的資訊安全服務團隊的關係,因此往往是等到遭受到惡意的攻擊導致服務停止之後,才開始去修補漏洞;而就算是作業系統有推出修補的程式,IT 人員也有可能因為事情太多忘了馬上安裝修補程式,而導致系統出現了安全的空窗期...

除了作業系統可能會有安全性的漏洞之外,惡意的使用者也可能從網路發動阻絕攻擊(DDOS)來癱瘓你的網站。因此要讓一個Web 應用程式可以對外營運,除了開發之外,有很多的成本都必須花在IT 設備以及網路安全的監控上。重點是 -- 網路上的攻擊手法日新月異,這些投資還是無法保證你擁有一個真正安全的執行環境...

Windows Azure 雲端平台本身是屬於PaaS的一種,而且通過了ISO 27001的資訊安全認證,因此當你把Web 應用程式部署到Windows Azure 雲端平台之後,剛剛前面描述的這些傳統IT 安全性部分的需求,就由Windows Azure 雲端平台的維運團隊來幫你處理了!! 我們可以從最近的一次安全性更新,來看一下Windows Azure如何幫你維護Web應用程式執行環境的安全性:

首先,我們可以先從Scott的Blog,了解這次安全性重要更新 (MS11-110)的內容:http://weblogs.asp.net/scottgu/archive/2011/12/28/asp-net-security-update-shipping-thursday-dec-29th.aspx

而當重要安全性更新發布之際,Windows Azure 的營運團隊也會寄給每個Windows Azure用戶一封標題為:"

IMPORTANT NOTICE: Windows Azure updated to address Security Bulletin MS11-100

" 的信,內容如下:

image

這一封信就是告訴每一位Windows Azure 雲端平台的用戶,這一個作業系統的重要安全性更新,將會自動套用在用戶所租用的作業系統上。換句話說,只要你將Web 應用程式部署到Windows Azure 雲端平台之後,執行環境的作業系統就會自動地保持在最安全的執行狀態,即便是沒有IT 人員的軟體公司,也可以很低廉的成本就可以有高安全性的Web 應用程式執行環境!!

當然,若是你擔心自動套用作業系統安全性的更新可能會導致你的程式部分功能發生問題,你也可以透過下面的方式,測試之後再手動地將執行環境上到最新的版本:

1. 在Windows Azure管理工具當中,首先在託管服務中,建立一個新的預備部屬環境:

image

2. 設定這次部署的名稱,並且重新上載生產(production)環境所使用的封裝以及設定檔:

image

3. 完成之後,選取上方選單的"設定作業系統"按鈕:

image

4. 從作業系統清單中,根據Windows Azure營運團隊所發布的訊息,選取這次更新之後的作業系統版本(WA-GUEST-OS-2.8_201109-03):

image

Windows Azure雲端平台中,目前有兩種作業系統:Windows Azure Guest OS 1.x的是Windows Server 2008,而Windows Azure Guest OS 2.x的則是Windows Server 2008 R2. 你可以根據需要選擇需要的作業系統,而不需要另外再付授權的費用

5. 完成之後,你就可以利用剛剛建立的預備部署環境,測試安裝了安全性更新之後,你的應用程式是否還是可以正常地執行。

6. 接下來,只需要按下上方選單的"交換VIP"按鈕:

image

然後下面的視窗會告訴你,接下來生產部屬與預備部署的VIP將會交換。換句話說,測試完成的預備部署環境,就會變成生產環境了!!

image

7. 最後,別忘了將原本的生產環境刪除,否則是會繼續收費的喔!!

在傳統的IT 的生產環境當中,若是要上安全性的更新,除了可能需要重新建置預備部署環境測試之外,當正式要安裝安全性更新時,往往也需要將生產環境離線,安裝完更新之後再測試,才可以重新上線。這樣的作法不但需要很多IT 的成本,也可能會造成系統的down-time。而透過Windows Azure雲端平台自動化管理的機制,就算是你的生產環境中有100個Web Role的instance,我們也可以很輕鬆的測試系統在上了安全性更新之後的狀態,並且在沒有down-time的環境之下,輕鬆地將系統重新上線在最安全的環境之中!!

2011年11月26日 星期六

雲端應用程式開發(2) – 建立Web 角色

最簡單的雲端應用程式開發,就是從Web角色開始。

Web角色就是在Windows Azure 雲端平台當中的IIS 7執行環境,而你只需要會開發ASP.NET應用程式,就可以透過相同的開發經驗,將ASP.NET應用程式移植到雲端執行。當然,Window Azure也提供了PHP與JSP等等異質平台所需要的執行環境,因此除了ASP.NET之外,利用PHP或是Java所開發的雲端應用程式,也可以部署到Windows Azure雲端平台來執行:

Windows-Live-Writer_195c89a49e5e_7C02_5_3

(圖:Windows Azure提供了異質平台的雲端執行環境)

這裡我們先以ASP.NET應用程式為主,介紹一下Web角色的基本操作觀念;至於其他平台的部分,會在後面再陸續介紹。首先以系統管理員身分,開啟Visual Studio 2010 開發工具。若是你有安裝Windows Azure SDK的話,在新增專案的時候,就可以從"Cloud"的專案範本當中,找到"Windows Azure Project"的雲端專案範本。選取"Windows Azure Project"雲端專案範本之後,設定專案名稱為"CloudDropbox" 以及專案儲存的路徑之後,按下"確定"按鈕繼續:

SNAGHTML935e0bd

然後會出現如下圖的對話方塊。首先先選擇要新增 "ASP.NET Web Role",然後按下 image按鈕之後,就可以在Windows  Azure雲端解決方案當中加入一個Web Role角色。接著選取右邊新增的Web角色,按下 image按鈕之後就可以修改Web角色的名稱。在這裡我們暫時先把這一個Web角色取名為"CloudDropbox_WebRole",然後按下"OK"按鈕:

SNAGHTML9443aaf

此時Visual Studio 2010開發工具會開啟CloudDropbox解決方案,裡面會包含有CloudDropbox以及CloudDropbox_WebRole兩個專案:

image

CloudDropbox專案是用來管理所有需要封裝及部署到Windows Azure雲端平台所需要的角色以及設定的專案,是雲端應用程式封裝及部署的單元。而在CloudDropbox專案中,預設的建立Web角色則是會對應到名稱為CloudDropbox_WebRole的ASP.NET專案。目前我們就先用預設專案範本的內容,來練習一下如何在本機開發環境當中測試開發好的雲端應用程式專案。

因為Windows Azure SDK會在你的開發環境當中安裝本機的模擬環境,因此當Windows Azure專案開發完成之後,你可以直接在Visual Studio 2010開發環境中按下 F5鍵,先在本機的模擬環境當中測試。當按下 F5按鍵之後,首先Visual Studio 2010開發工具會先編譯解決方案,然後會開始準備本機的模擬環境:

SNAGHTML95d8804

模擬環境啟動之後,你可以在開發環境作業系統的通知列當中,看到 image圖示。用滑鼠移到圖示上就會出現提示視窗,顯示本機的計算與儲存單元都已經準備完成:

image

接著,就跟一般的ASP.NET專案一樣,Visual Studio 2010開發工具會開啟瀏覽器,並且連結到裝載在本機模擬環境當中的雲端應用程式:

SNAGHTML9638c48

很簡單吧!! 其實對於ASP.NET開發人員來說,開發雲端應用程式的過程是很類似的,比較不一樣的地方會是在於設計時的一些架構概念以及部署的過程,這些在稍後會再繼續為大家介紹。下一篇文章,我們就要先來申請一個試用的帳號,並且學習如何將開發好雲端應用程式直接部署到Windows Azure雲端平台當中,讓全世界的使用者都可以馬上使用!!

2011年11月23日 星期三

雲端應用程式開發(1) - 執行環境概論

PaaS (Platform as a Service) 平台最方便的地方在於,平台本身已經設定好了應用程式所需要的執行環境;因此對於開發人員來說,只需要了解 PaaS平台提供了那些支援,就可以在程式中直接使用這些服務,而且在部署的時候不需要另外再透過 IT人員的協助,透過設定的方式就可以調整所需要的執行環境。

以Windows Azure來說,雲端平台環境預設就提供了下面幾種基本的服務:

1. 託管服務 (Hosting Service):

Windows Azure 的託管服務分成幾種不同角色(role)。Web 角色就是在雲端的IIS 7,可以部署並且執行ASP.NET、PHP 等Web應用程式;而Windows 角色則是在雲端上面的Windows服務,你可以將需要常駐執行的程式,透過Windows 角色開發之後部署到Windows Azure當中執行。

如果執行環境當中,需要比較特別客製化的模組才可以執行的話,Windows Azure也支援VM 映像角色,讓你可以將客製化的執行環境封裝到虛擬機器映像在上再到雲端執行。

2. 儲存體服務 (Storage Service):

顧名思義,就是用來存放資料的服務。儲存體服務當中可以儲存Table、Blob和Queue等資料,如果有需要的話,也可以mount一個drive出來使用。而所謂的Table資料,並非資料庫當中的表格,而是用來存放程式中的一般非結構化實體(Entity)資料。儲存體服務可以隨時根據需要進行擴充,而且也可以根據程式的需要設定存取的權限。關於儲存體服務的操作方法,會在後面透過實例來介紹。

3. 資料庫服務:

雲端應用程式運算處理過的結構化資料,像是訂單或是產品資料,則是可以存放在SQL Azure的雲端資料庫當中。而透過Data Sync服務,SQL Azure當中的資料還可以更進一步與其他的SQL Azure實體,或是企業內部的SQL Server進行雙向的資料同步,也可以透過報表服務產生雲端的報表。

4. Windows Azure AppFabric:

雲端當中的應用程式執行平台,包含了分散式的快取服務(Caching)、雲端的服務匯流排(Service Bus)和存取控制服務(Access Control Service, ACS)。分散式的快取服務提供可靠而且速度快的暫存資料平台,而服務匯流排則是讓你可以將多個其他的服務,整合到你的服務當中使用。

存取控制服務提供簡單的方法來驗證及授權使用者存取你的 Web 應用程式和服務,同時可以從程式碼提取驗證和授權的功能。不需使用應用程式所特有的使用者帳戶來實作驗證系統,可以讓 ACS 協調使用者的驗證及大部分授權工作。ACS 整合標準型的身分識別提供者,包含企業目錄 (如 Active Directory) 和 Web 身分識別 (如 Windows Live ID、Google、Yahoo! 和 Facebook)。

5. 內容傳遞網路(CDN)服務:

在策略性放置位置快取 Windows Azure Blob 和計算執行個體的靜態內容輸出,以便提供最大頻寬來傳遞內容給使用者。

6. 虛擬網路服務:

透過 Windows Azure Connect,可以使用簡單的使用者介面,在組織網路中的電腦或虛擬機器 (VM) 與 Windows Azure 中執行的角色執行個體之間設定 IPsec 保護的連接。

下面這張堆疊圖,簡單的整理了Windows Azure雲端平台中的服務的架構:

Azure

而除了公有雲之外,Windows Azure也可以與企業內部的服務結合,建構混和雲(Hybrid Cloud)服務。如此一來,企業的應用程式就可以分散建立在雲端上立即可以使用的環境中,節省 IT 設備與管理的成本。而對於Windows Azure的架構有了基本的概念之後,下一步就可以來看一下如何開發雲端應用程式。

2011年11月19日 星期六

雲端應用程式開發(0) - 做個Dropbox有多難?

當網際網路從 .com時代邁入 .App時代,你準備好了嗎?

在 .com的年代,當你想要透過網路賺錢,必須要成立公司,設置機房,架設網站、招募人員... 等等,好像少了什麼? 沒錯,要做這些事情,你必須要有"錢",而且是"很多很多錢",才可以完成你的夢想。所以在 .com的年代,如果背後沒有金主或是創投資金挹注的網路公司,通常連創業都會有困難,更別說要營運了...

而現今的 .App時代,又是另一種局面。在 .App時代中,當你有了一個"可能"可以賺錢的想法之後,你並不需要花大錢去尋找金主,因為在網路上,已經有隨即可用的 PaaS平台,讓你可以透過租用的方式,部署你的服務;而網路上也存在者各種不同的軟體服務市場、市集,讓你的服務可以直接被推送到使用者面前,增加賺錢的機會。更棒的是,如果你的想法夠好,你還可以參加像是微軟的BizSpark計畫(http://www.microsoft.com/taiwan/bizspark/),取得更多的免費資源,大大降低了個人創業的門檻....

也就是因為在.App 時代中,開發人員不需要事先為了建立系統架構(機器、作業系統、防火牆…等等)而傷腦筋,因此你可以在隨時有創意的發想之後,透過Visual Studio 2010開發工具以及你既有的 .NET程式開發技術,就可以快速建立應用程式並且發佈到市集當中。

你覺得開發個Dropbox的解決方案很難嗎? 或許你會想說:

"我不懂Cloud Computing,也不懂MapReduce,應該是不行吧??"

其實,開發雲端應用程式,把你的創意變成可以賺錢的系統,距離並沒有這樣難。一開始,你需要先準備下面的一些傢私:

1. Visual Studio 2010 開發工具:無論是開發行動裝置端的程式,或是雲端的服務,都可以透過這一個工具搞定。

2. IIS 7:主要是程式開發完成之後,提供本機測試的環境。

3. Windows Azure SDK for .NET - November 2011(Get the SDK):最新的Windows Azure SDK,安裝好之後就有模擬器可以測試開發好的雲端程式。

環境建立好之後,下一步就可以開始開發你的Dropbox解決方案! 別擔心,只要你會開發ASP.NET應用程式,跟著接下來這一系列的教學,搭配Windows Azure雲端平台,不用建立自己的機房,不用懂Cloud Computing,你也可以開始在雲端大顯身手,用力擁抱 .App時代!!!

2011年11月18日 星期五

你是Software Engineer,還是System Engineer?

Web 應用程式發展到目前以來,儼然已經成為一門顯學,百花齊放,各式各樣的解決方案都有;而加入了行動裝置之後,開發架構與執行環境又更顯得複雜。然而大家捫心自問,這些Web 應用程式,測試過之後,每次都能順利上線嗎?

在傳統軟體的分工當中,開發人員負責開發應用程式、測試、打包,而IT人員協助建置環境、部署以及維運。然而隨著Web應用程式所需要的執行環境越來越複雜,IT 人員維運的成本也就越來越高;如果再加上各種不同新平台模組的設定,IT 人員幾乎是無法掌握Web應用程式上線之後的狀況,於是乎大大小小的問題,都要找開發人員回來處理,搞得開發人員既要開發新的功能,又要三不五時看看是不是因為什麼設定被改掉,導致系統服務發生問題。惡性循環的結果,最後就是每個開發人員都必須要校長兼撞鐘,變成 "Software + System Engineer"….

若是任由故事繼續這樣發展下去的話,我看以後真的是會找不到開發人員了。幸好在雲端的解決方案當中,可以把維運的工作,交給雲端平台(Platform)的提供者,而開發人員只需要著重在系統程式開發的方面就可以了。省卻了IT 環境的建置與維運的工作之後,開發人員的解決方案可以更快的部署上線;這對於提供SaaS服務或是開發行動裝置解決方案的雲端服務廠商來說,更是大大節省營運成本的一盞明燈!

Cloud

但是大家需要注意的是,有很多團隊對於雲端平台都有錯誤的觀念,以為只要把執行環境直接做成虛擬機器之後,找個代管商的機器丟上去就可以了。請參考上面的這張圖,若是將執行環境製作成虛擬機器,或是使用Amazon這一類 IaaS 所提供的服務, 表示還是必須要從安裝、升級作業系統,設定防火牆、防毒防駭、設定網路負載平衡...等等開始製作你的環境;而這些環境將來如果需要升級與調整,或是虛擬機器需要備份,也比需要透過或是IT 人員處理(通常會是)才可以完成。如此一來,節省不了多少系統營運的成本,卻又把環境搞得更複雜…

雲端時代的開發人員,請記得要捨棄掉IT 時代的思維,專注在建立創新服務跟收錢上就好! 因此在建立SaaS服務或是行動裝置解決方案的後端服務時,PaaS會是比較好的解決方案。PaaS 除了可以幫你完成前一段文章中所有用紅色標記的 -- "" -- 的工作,又可以在無需自己建置機房的狀況之下,將服務快速的部署到全世界的任何地方。如此一來,Software Engineer才有可能有更多時間,創造出更多賺錢的機會!!

2011年8月29日 星期一

你給我的雲不是雲?

前幾天,和日本來的同事聚餐。席間,日本IT 的主管知道我熟Web開發技術,問了我一個問題:

"我們只有一個人熟悉IIS,但是有很多Web Application需要部署跟維護,有沒有甚麼好的做法 ? "

他很擔心哪天這一個人離職之後,所有的系統就沒有人可以維護了。

目前大部分所謂的"雲端運算"的架構當中,大都強調透過虛擬化技術可以快速配置所需要的環境,並且善用伺服器的硬體資源。但隨著雲端運算需求的日益增加,Web相關技術以及IIS平台也都隨著加入了很多新的功能;換句話說,建構一個Web Application所需要的執行環境,已經不是單純的增加虛擬機器可以解決的問題,像是驗證、授權,URL重寫、甚至是快取及工作流程的設定,很多也都不是傳統的IT人員可以馬上掌握的。

這個問題很久之前微軟的吳典璋經理就已經跟我討論過,為了縮短IT與開發人員溝通的gap,因此特別在今年的MSDN講座與Techdays 2011中,加入了介紹ASP.NET 4以及IIS 7+Windows Server AppFabric的場次,希望讓大家可以對於如何使用微軟的新技術,在現有的企業環境中建立私有雲,讓開發人員所建立的雲端應用程式可以在上面執行有共同的概念。雖然是這樣,但建構私有雲少不了的還是建置私有雲實體環境以及維運所需要的成本。附圖是一般企業的IT投資與實際運用的參考曲線圖:

Windows Azure Platform Overview

回到一開始的問題,微軟的解決方案中,Windows Azure就是這個問題的好答案。透過Windows Azure所提供的平台,無論是Web Application或是Web Services (WCF Services),都可以在開發完成之後直接部署到上面執行;而IT人員也可以直接地透過管理工具隨時根據維運的需求,動態調整所需要的資源,節省成本支出。相較於一般的虛擬化技術來說,Windows Azure本身就是一個雲端的執行環境,因此IT人員並不需要花時間在為每一個應用程式管理設定 -- 因為程式需要的設定,都可以由開發人員直接包在package中;而開發人員更不用擔心應用程式會因為IT人員所提供的VM當中,忘了安裝某些服務或是設定,而導致應用程式無法上線執行...

當然,Windows Azure也提供了可以與現有企業私有雲的解決方案,透過Windows Azure Connect建立混合雲環境之後,可以很容易地將企業的系統直接延伸到雲端。有機會的話,再來分享手邊顧問案的使用經驗和其他心得。

2011年7月15日 星期五

無痛開發日 - 使用Visual Studio 2010

今天的無痛開發日,早上是由保哥分享Visual Studio 2010的開發經驗,下午由我介紹 IIS 7在目前SOA架構中所扮演的角色,以及Windows Server AppFabric的開發經驗。有興趣的朋友,可以到下面的網址下載我今天上課的講義:

另外,如果你聽完今天的課程,對於WCF與Windows Server AppFabric有興趣的話,在九月份的TechDays 2011大會中,會有專門的主題進行分享。

2011年7月2日 星期六

使用VS 2010開發工具建立Android應用程式 - 初體驗

如果你接觸.NET Framework有段期間,應該或多或少聽過 Mono -- 一個由Novell所主導的一個Open Source計畫,目標是建立可以讓.NET應用程式跨平台執行的環境(http://www.mono-project.com/Main_Page). 而其中的Moonlight計畫目標,則是針對微軟Silverlight技術目前無法支援Linux作業系統,建立一個可以供Silverlight應用程式執行的環境(http://www.mono-project.com/Moonlight)。而針對行動裝置應用程式的需求,Mono則是提供了MonoTouch的開發環境,讓.NET的程式開發人員可以透過C#程式語言以及相關的函式庫,建立Android、iPhone、iPad以及iPod Touch上的應用程式。而今天要介紹的就是Android平台的應用程式開發環境 – Mono for Android(http://mono-android.net/).

Mono for Android 支援Visual Studio 2010 開發工具,因此C#開發人員可以在既有熟悉的開發環境中,開發、測試與部署Android應用程式。Mono for Android也提供了許多不同的版本(http://mono-android.net/Store),針對企業用戶的需求,Mono for Android也可以將開發好的Android應用程式直接部署到員工的手機上執行。而使用試用版本開發好的Android應用程式,則是可以直接部署到Android SDK當中的模擬器執行;如果你花399美金購買專業版,就可以將使用VS 2010開發好的Android應用程式部署到最多100隻手機上執行。

要使用VS 2010開發工具撰寫Android應用程式之前,首先要先下載Mono for Android以及相關的開發環境,參考下面的步驟:(完整的安裝指南請參考:http://mono-android.net/Installation/Visual_Studio)

1. 安裝32位元版Java開發套件(JDK):

從這下載:http://www.oracle.com/technetwork/java/javase/downloads/index.html,即使你的作業系統是64位元版,也請安裝32位元版的JDK。請注意,只安裝Java執行環境(JRE)是不行的喔!!

2. 安裝Android SDK

從這下載:http://developer.android.com/sdk/index.html。下載安裝之後,以系統管理員身分執行SDK Manager,SDK Manager會自動下載並安裝開發Android應用程式的環境所需要的套件。

image

3. 設定模擬器環境:

接著要建立Android應用程式開發完成之後,測試應用成試所需要的模擬器環境。首先在SDK Manager當中選取 "Virtual devices",然後按下 "New"按鈕:

image

輸入模擬器的名稱、要模擬的目標版本等設定之後,按下"Create AVD" 按鈕:

 

image

接著會出現下面的對話方塊,按下"OK"就完成了!

image

建立好模擬器環境之後,可以不需要馬上啟動,但是我建議各位可以先啟動看看。在預設狀況下,當Android啟動模擬器時,預設是到使用者目錄路徑下的 ".Android" 子目錄(例如:C:\Users\john_chang\.android)下讀取設定檔;若是你的使用者目錄不在Windows預設的C槽目錄下,那就必須在C槽的使用者目錄下建立一個".Android" 的目錄捷徑,指向實際使用者目錄路徑下的 ".Android" 子目錄位置(例如:F:\Users\john_chang\.android)

4. 安裝 Mono for Android 的VS 2010 套件

從這裡下載試用版:http://mono-android.net/DownloadTrial。安裝之前請記得先關閉所有開啟的VS 2010開發工具。

安裝完成之後,重新啟動VS 2010,新增專案的時候,就會出現"Mono for Android"的新範本類別,並且預設有三個新的範本可以使用:

image

直接選取"Mono for Android Application",然後將專案的名稱改成"HelloWorld",按下OK,就可以建立你的第一個Android應用程式專案。在Android專案中,Main.axml是用來定義主表單上面的使用者操作介面,Strings.xml相當於.NET專案中的資源檔,而程式則是定義在Activity1.cs的程式擋中。

image

雖然專案中這些檔案的架構與.NET專案不同,但若是你有接觸過WPF或是Silverlight專案的話,相信對於這種 Applicetion = Markup + Code的寫法不陌生。開啟 Main.axml檔案,在HelloWorld應用程式中,預設已經加入一個 "MyButton":

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/MyButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Hello"
/>

</LinearLayout>

開啟Activity1.cs程式檔,當MyButton被按下去的時候,程式中計數器的值會加一,同時按鈕上會顯示總共被按過幾次:

Button button = FindViewById<Button>(Resource.Id.MyButton);

button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };

最後開啟Strings.xml檔案,根據Main.axml檔案中的設定,找到表示表單中按紐文字設定的標籤,可以直接將按鈕上的文字換成你想要的值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="Hello">請按我!</string>
    <string name="ApplicationName">HelloWorld</string>
</resources>

詳細的程式寫法就先不介紹了,完成之後按下 F5鍵,就可以執行HelloWorld應用程式。程式編譯完成之後,會彈出一個對話方塊,讓你選擇要將程式部署到哪裡測試。因為目前使用的是測試版,所以選取 "Start emulator image",啟動Android模擬器:

image

接著選取之前建立的模擬器名稱,按下OK鍵,Andorid模擬器就會啟動:

image

啟動完成之後,在之前的 "Select Device"對話方塊中,再按下 OK鍵,VS 2010就會開始將Android應用程式部署到模擬器上。按下應用程式主表單中的按鈕,就會顯示總共按過多少次。程式的執行結果如下:

image

2011年5月7日 星期六

Silverlight 4 企業級雲端應用程式實例

今天快下班前,有一位朋友問我,有沒有WPF的參考資料,他們想要用WPF來開發視窗應用程式。

對於企業來說,大部分的視窗應用程式的功能,都是連結到資料庫處理資料,或是呈現/列印商業用報表為主。如果是這樣的需求的話,通常我會建議不需要使用WPF技術,改為開發Silverlight應用程式會更好。

“Silverlight應用程式不是跟Flash一樣,是在網頁裡面執行的嗎 ?”

錯!! 其實兩年前我在Tech Days 2009大會上,就曾經介紹過Silverlight 3的於瀏覽器外執行(Out-Of-Browser, OOB) 的功能 -- 讓Silverlight應用程式除了可以嵌入網頁中執行之外,更可以直接安裝在使用者的桌面上,當成一般的視窗應用程式執行!!! 使用Silverlight技術開發在使用者電腦中執行的應用程式,有下面幾個好處:

1. 跨平台:

使用WPF技術所開發的視窗應用程式,只能執行在有安裝.NET Framework的機器上;而Silverlight應用程式,則可以透過瀏覽器,直接安裝在所有支援Silverlight的作業系統上。除了Windows作業系統之外,Mac與Linux上面目前也都可以安裝執行Silverlight應用程式到桌面上執行(Linux透過Moonlight 4,目前支援大部分Silverlight 3與Silverlight 4的功能)。

2. 自動更新:

大部分的企業會選擇開發Web應用程式的其中一個原因,就是更新程式容易。而對於Silverlight應用程式來說,當有新版程式部署到企業伺服器上時,程式中可以設定自動更新,讓使用者的桌上執行的Silverlight應用程式可以永遠保持最新的版本。以POS或是ERP系統來說,當程式上新版本時,就不需要再為每台機器部署更新程式。

3. 穩定、高效能的執行環境:

企業級的Web應用程式目前會在前端執行大量的JavaScript,雖然目前主流的瀏覽器都提供了高效能的Script引擎,但是程式越複雜,瀏覽器所消耗的資源也就越多。Silverlight應用程式在桌面上執行時,因為執行的是編譯過的程式,再加上CLR的加持,因此相較於Web應用程式來說,可以讓複雜的程式跑得更穩定,執行速度更快。

4. 縮短開發與除錯時間

這我就不贅述了,Silverlight應用程式相較於ASP.NET或是AJAX技術來說,是真正的MVC架構,無論是開發或是除錯都很方便。

為了讓大家了解使用Silverlight技術開發企業級應用程式、甚至是雲端應用程式的好處,我把去年微軟MIX 10大會其中的一個範例部署到Windows Azure上,讓大家實際體驗看看。下面是操作的步驟:

1. 首先,請使用瀏覽器開啟 http://contoso.cloudapp.net/,你會看到如下圖的網路書店,這個是一個嵌入到網頁中的Silverlight應用程式,你可以切換不同的書店檢視員工的資料:

image

2. 在瀏覽器中按下滑鼠右鍵,在快捷選單中會出現一個 "將John's Demo App安裝到此電腦..." 的項目(下圖紅框處)。選取 "將John's Demo App安裝到此電腦..." ,就可以準備將Silverlight應用程式安裝到桌面執行(很簡單吧!!):

image

3. 接下來的對話方塊會問你,要將Silverlight應用程式的捷徑安裝到何處,你可以選取 "開始功能表" 或是 "桌面",然後按下 "確定" 按鈕:

image

4. 完成之後Silverlight應用程式就會馬上安裝到你的電腦中,同時開啟執行。在這一個範例中,因為我有加入檢查版本的程式,所以當Silverlight應用程式啟動之後,就會顯示檢查的結果:

image

按下 "確定" 關閉對話方塊之後,Silverlight應用程式就會從桌面上執行:

image

5. 關閉網頁與Silverlight應用程式。在桌面上或是開始功能表中,你可以找到 "John’s Demo App" 的捷徑,下次要啟動Silverlight應用程式的話,直接開啟這一個捷徑就可以了!!

image

6. 你也可以隨時從控制台的 "解除安裝或變更程式" 當中,移除安裝好的Silverlight應用程式:

image

或是在Silverlight應用程式啟動時,按下滑鼠右鍵,選取 "移除此應用程式" 即可。

image

 

當然,使用Silverlight開發視窗應用程式,也不是全然沒有限制,若是需要經常存取本機作業系統元件,像是呼叫Win32 API的應用程式,目前就不適合用Silverlight技術開發。但是以目前企業級應用程式的情境來說,只要是Web應用程式可以做到的,Silverlight應用程式就可以做到 -- 而且使用者還可以直接安裝到桌面上執行,省去開啟瀏覽器載入網頁的動作。

目前的Silverlight應用程式已經可以存取視訊鏡頭、麥克風、印表機等本機資源,在下一版的Silverlight 5當中,Silverlight的執行環境會開放更多與作業系統互動的功能,讓你開發好的Silverlight應用程式除了可以是Web應用程式之外,更可以是使用者每天可以從雲端安裝到桌面上快速執行的視窗應用程式!!!

2011年4月28日 星期四

Office 365 Beta 初窺(1) -- 啟用

Windows Azure 是微軟所建立的雲端平台,而Office 365 (http://www.microsoft.com/zh-hk/office365/online-software.aspx),則是微軟所提供的雲端辦公室解決方案。就在最近,Office 365 Beta版正式可以申請帳號進行測試,雖然台灣目前不在提供Beta版測試的國家中,但是若是你有美國的公司地址的話,還是可以申請測試帳號試用Beta版。(香港也是有提供繁體中文Beta版測試的國家,但是為了避免有些專有名詞不同所造成的混淆,這篇文章還是先用英文版介紹)

這次我所申請的是Office 365 方案 P1,也就是針對25人以內的中小企業所提供的解決方案,裡面包含了電子郵件及行事曆(Exchange Online)、Office Web App、網站與協同作業、以及企業即時通訊(Lync)的功能。詳細的方案內容大家可以參考:

啟用Office 365的步驟相當的簡單,當你試用Beta版的申請通過之後,微軟會寄一封信給你,點選信件中的連結,就會進入到下面的啟用頁面:

image

因為目前Office 365還是試用版,所以"Country or region"欄位中雖然有台灣,但實際上目前並不可以選。填好了必要的註冊資訊以及你公司所要使用的網域名稱之後,下一步就進行帳號啟用的動作:

image

啟用完成之後的畫面如下:

image

這次先試試Outlook Web App的功能,先把操作介面跟時區設為台灣:

image

進去之後的操作介面,預設已經跟即時通訊軟體整合,所以在右上角會顯示連線狀態:

image

每個使用者都可以自己調整Outlook Web App所需要的設定,或是跟其他的帳號整合在一起:

image

同時,針對企業內的協同作業,Office 365也內建Sharepoint online,企業就不需要再自行建置Sharepoint Server,只需要啟用Office 365,就有馬上可以使用的Sharepoint Online環境可以進行協同作業!

image

image

不到10分鐘的時間,整個公司所需要的Email環境、協同作業環境以及即時通訊的雲端辦公室環境就設定好了,真是方便!! 如果說Windows Azure是"IT Ready"的開發環境的話,Office 365就是"Office Ready"的環境,只需要花些許的成本,就可以有隨時可用的辦公室環境!!

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)