Salesforce稱:Ruby是下一代云計算語言
著名企業云計算平臺廠商Salesforce宣布以近2.12億美元現金收購Heroku。這是一個有些驚人的消息,顯示了Salesforce CEO Marc Benioff對云計算的遠見和決心。
Heroku由三位資深程序員James Lindenbaum, Adam Wiggins和Orion Henry創辦于2007年,是較早的云計算公司之一,以專門為Ruby應用軟件提供支持著稱(最近也開始支持Node.js)。他們的理念是讓開發人員專注于11月剛與Facebook達成合作協議。目前有10萬以上的移動和社會化應用使用他們的平臺,包括大公司和創業公司,而且每月都有數千新用戶。Heroku位于舊金山,員工只有約30人。
3年,30人,價值2億多美金,憑什么呢?聽聽Marc Benioff的解釋吧:“云計算的下一個時代,我稱之為Cloud 2,將屬于移動、社會化和實時。而Ruby是Cloud 2的語言,Heroku是領先的Cloud 2 Ruby PaaS平臺。這一并購將使Salesforce成為下一代應用程序員的基石。”
而Heroku創始人James Lindenbaum則在名為“The Next Level”(更上一層樓)的博客中顯示了更大的雄心:“如果企業級軟件的開發能像敏捷的Ruby應用一樣,世界將會怎樣?如果大公司也能接受Heroku和Ruby社區的理念,世界將會怎樣?” 顯然,他希望將互聯網的敏捷通過Salesforce帶入企業級開發。此外,他在文中也確認Heroku被收購后運作仍然獨立,而且與Amazon Web Services的合作關系不會受到影響。
該公司網站今年4月曾給出流量的增長圖,的確驚人。看來在美國云計算的采用非常迅速。
Heroku的平臺架構和用戶體驗都做得比較出色。用戶體驗方面,在工作流程、界面的很多細節都考慮得非常周到,實踐了他們自己宣稱的“讓用戶的開發人員100%精力都放在自己的應用代碼上”的理念。而架構方面各種組件都經過了精心選擇或者設計,從下圖(推薦看該公司網站原圖,設計非常精致)中可以看到:
1. HTTP反向代理使用Nginx
2. HTTP緩存使用Varnish
3. 路由網(Routing Mesh)用Erlang編寫
4. Dyno網格提供了很好的擴展性(dyno是運行Ruby代碼的單一進程,運行在網格中的某個服務器上,每個dyno都是獨立的,包含所有層次的資源)
5. SQL數據庫選用PostgreSQL,也可以通過add-on方式選擇其他方案,包括用Amazon RDS支持MySQL, 也支持MongoDB、Redis、CouchDB等
6. 當然,也少不了memcached
下面這幅Dyno架構圖給出了系統的更多細節:
1. 操作系統用的是Debian
2. Ruby虛擬機用MRI
3. 應用服務器是基于Mongrel改寫的Thin
4. Web服務器接口用Rack
5. 中間件是可選的,可以用Rack中間件,也可以用Rails Metal
6. 框架方面,應用推薦選擇Rails,輕量服務用Sinatra
***,代碼的部署與Git完全相同。用戶push代碼時,平臺會將代碼編譯成獨立的包含所有依賴關系的只讀版本(成為slug),可以隨時發布。編譯過程還會檢查程序是否可以啟動,如果不行將拒絕通過。對應用的管理選項非常完整,提供REST接口。
【編輯推薦】