2013年3月24日 星期日

恭喜CloudStack 正式畢業




恭喜CloudStack 正式從Apache incubator 畢業!!






2013年3月16日 星期六

cloudstack 與 openstack 目前的發展趨勢


圖片來源:Kiwi He (殊途同歸)

最近參加許多研討會,或是在網路上的論壇,最常聽到的就是在詢問OpenstackCloudStack的比較與差異,網路上也有許多文章從各種角度去比較各個Open Source IaaS平台之間得差異,有的從功能面,有的從參與的廠商數,有的從社群的活躍度(Mail list 討論量,Bug Report量,Release 的速度,甚至活動的參與人數),舉例圖片如下:

 圖片來源:婉兮清扬 [3]

就 我的觀察,目前Open Source IaaS 的兩大陣營 CloudStack 與 OpenStack,是分別從不同的設計理念出發,但是最終的目標就是希望能迎頭趕上Amazon ,成為像AWS一樣的Public Cloud。目前這兩個IaaS的所處位置就如圖下圖所示:

圖片來源:opennebula


OpenStack


從社群面來說:

OpenStack 去年呈現爆炸性的成長(參與人數),有許多大廠都跳進來搖旗吶喊,從正面的角度來看社群欣欣向榮,有這麼多大廠人力和財力的支持,發展起來一定很威,但是 從反面角度思考,畢竟各家廠商都還是有商業利益考量,所以針對規格和發展方向就會進行拉扯與角力,這一點讓人隱憂。

從架構面來說:

此外OpenStack 的設計理念從一開始就是為了超大型的IaaS 架構在設計,所以所有的元件(Service) 一開始就是以分散式的架構在開發,每個Service 都可以獨立運作,也是由個社群團隊獨立開發,優點是如果整合的好的話,對於將來Scale out 整個系統會非常方便,但是目前的狀況卻似乎不是這樣,每個Service 的開發與整合感覺沒有那麼同步,所以不管在安裝上與整合上都有一定的門檻。不過隨著時間的演進這個問題應該會慢慢的解決。

從語言面來說:

OpenStack 主要是以Python 來開發,這部份我就不多評論,因為我跟pythone不熟~:P


CloudStack 


從社群面來說:

CloudStack 最早其實是Cloud.com所以開發的軟體,後來被Cirtix 所併購,所以這個產品一開始就算是一個成熟的產品,直到2012年Citrix 把 CloudStack 以Apache 的License 的方式捐獻出去,整個社群就開始蓬勃發展,這次去參加ApacheCon 2013 就有超過11個Session 就是跟CloudStack有關。

從架構面來說:

就我的觀察CloudStack的設計理念反而是從Private Cloud走向Public Cloud 架構,也就是CloudStack 在一開始開發時,主要是以管理較小的機房架構(Private Cloud)為主,所以不管在安裝的容易度上,和產品的整合度上都非常成熟,在這邊分別把我覺得不錯的優點和特色一一舉出:

1. 出色直覺化的UI

 最 讓我覺得驚訝的就是建立Virtual Machine 的畫面,跟我之前開發MechCloud的想法一模一樣,利用圖像化直覺的設計,讓使用者很清楚他現在在做什麼,以及到哪個步驟了,下面第一張圖是當初 MechCloud一開始的設計,第二張圖示Cloudstack的設計,是不是很像。








再來談談Architecute,下圖是Cloudstack的Architecture階層圖,管理階層是從Zone,Pod,Cluster,Host,到VM。直接看到這張架構圖應該是很好理解,但是如果在安裝與設定時要怎麼對應成這張圖呢?




Cloudstack 直接把上面階層的概念做成UI,讓你由圖片可以很清楚的了解整個Deploy 架構和網路設定



 2.支援多種網路架構(主要由Basic Mode and Advanced Mode去組合變化)

IaaS裡面最複雜的一部分就是網路規劃,以及Vlan的設定,CloudStack 同樣也是透過圖形化的方式讓管理者很容易去設定和了解網路的架構,下圖分別是Basic mode 和 Advanced Mode的畫面。






 詳情請參考:


3.歡迎各家廠商加入的Plugin-in 架構

這部份算是CloudStack最受歡迎的部份,這次參加ApacheCon 2013 裡面就有人提到OpenStack和CloudStack在這方便最大的差別:

Open source Community Leadership Drives Enterprise Grade innovation.Cloudstack's plug-in model permit enterprise-grade adapters.
Cloustack 的理念是這樣,企業在尋找的是可以更客製化的Iaas環境,但是如果要客製化Iaas,必須先了解整個cloustack或是openstack實在是太 困難,所以cloudstack 允許企業可以從 plug-in or adapter的架構切入,讓企業可以直接針對自己的需求與所需要支援的硬體去開發plugin,不用受限於社群的審查和投票流程,因為傳統在社群上要開 發新Feature必須經過以下流程:
  • 在Maillist 宣布,讓大家都能知道,是否能接受
  • 公開Function Spec & Design
  • JIRA ticket for feature
  • Setup a Dev Environment
  • Branch on github use your own (publich) branch
  • Submit changes to Review board
  • Post-reviw for large package of changes
  • Decide on the wiki you want
所以Plugin 的架構可以讓企業在開發上增加彈性,不論是要直接捐獻給社群,或是沒有捐獻給社群直接拿來獲利都是可以。


4. 使用Java 開發

好啦,這其實是我的私心,因為Java比較熟,所以從Cloudstack切入會比較容易,不管是要改寫,patch 或是寫plugin都非常方便。


最 後,就如同我說的cloudstack一開始就是從Private cloud的角度去開發,所以之前的架構是把所有servie 都綁在一起 ,如果要比較大規模的佈署時(類似AWS)可能就會遇到Scale 的問題,因此cloudstack社群也有注意到這個問題,在 4.1 已經開始在把系統架構重構(代號Javelin),目的是要把架構變成Loosely-coupled component oriented distributed architecture

結論:

青菜蘿蔔個有所愛,所以也不能因為我比較喜歡cloudstack就說openstack不好,一切還是要回歸企業的應用與需求為主,上面所寫的只是希望可以給各位在選擇解決方案時能有所參考。



延伸閱讀:
[1] CloudStack 與 OpenStack 誰將稱王
[2] OpenStack vs CloudStack: The Latest Score
[3] CY12-Q4 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack

[此文同步轉載自阿貝好威的實驗室]

2013年3月7日 星期四

為CloudStack設定更好的Eclipse開發環境


1.       Close eclipse

2.       Make sure your workspace is not stored in the cloudstack directory.  (This may be only my problem because I used to like to do that.)  If your workspace is stored in the directory, you want to delete all eclipse metadata and create the workspace somewhere else. 

3.       Remove the eclipse generated bin directory from all of the directories.  The reason is because CloudStack projects used to use bin as the directory for all the eclipse generated .class files but now with maven based projects, eclipse uses target/classes to store them.  So now eclipse sees the .class files in the bin directories as resources that you own.  That's why there's .class files in the Open Resource directory.

確認你的Eclipse工作環境並不和你Checkout下來的CloudStack目錄重疊(Eclipse對於project所產生的metadata會對git的運作產生問題)

4.       Remove all of the .project files.  This is again because we used to checkin .project files and some of your .project files were not created from maven pom.xml.  If you did this before, then you can skip steps 5-8.

移除所有的.project 檔案

5.       Start Eclipse.

6.       If you deleted your workspace in step 2, then you should create a new workspace.

7.       Remove all of the projects.

8.       Import all maven projects again.

9.       Hit Shift-Ctrl-R to open resource dialogue

10.   Click on the down arrow in the upper right of the dialogue box

11.   Click on the Edit Active Working Set from the drop down menu

12.   Create a working set called cloudstack

13.   Add all of the projects to it and then remove the parent projects.  The reason you want to remove them is because they're parent projects and when you open resource, the open resource dialogue gets the .java file from both the actual project and the parent projects so the same .java file appears more than once.
加入所有的project並移除parent project,這麼做的原因是在於parent project會造成你打開resource時,展開的resource視窗會load java檔兩次

  • Cloudstack-framework
  • Cloud-engine
  • Cloudstack
  • Cloudstack-plugins
  • Cloud-services


14.   Click on finish

15.   Click on the top right drop down button again

16.   Make sure "Show derived resources" is not checked

Another easier way to do this may be to push all your commits and changes and then delete the source directory and reclone the repo.  Then follow just steps 6-16.

After doing that, when you hit Ctrl-Shift-R, make sure the CloudStack working set is selected.  Now only the java file you want will show up.  There's no .class files and no multiple copies of the same java files.

本文轉載自 : Setting up a better eclipse environment....  作者為 : Alex Huang

2013年3月6日 星期三

Apache CloudStack Weekly News - 4 March 2013



本週主要討論內容與議題 (Major Discussions and Issues)


即將發生的事件 (Upcoming Events)

  • Doc Sprint (IRC): The doc team is running another sprint on Friday, March 8th from 16:00 to 23:00 UTC (that's 08:00 to 15:00 Pacific time, 11:00 to 18:00 Eastern in the USA) in #cloudstack-dev. All CloudStack contributors who have an interest in making the docs awesome are encouraged to attend and help out. See the wiki for more info.

Jira 狀態與統計


社群於這禮拜解決了5個Blocker等級的bug、3個Critical、9個Major以及3個Minor等級的bug

新的Committers 和 PPMC 成員 

(New Committers and PPMC Members)