04月24日的CSDN在線培訓中, 用友軟件PaaS混合云負責人白小勇(@quickbundle),帶來了課程“ PaaS平臺在企業IT中的應用”,就企業在對各種主流PaaS架構、PaaS與業務如何結合、如何實施PaaS等問題進行了探討。
為了幫助大家更好的復習和總結此次培訓中學到的技術點,讓各位學員更快的掌握相關技術要點,少走彎路,CSDN整理了本次培訓最后的QA如下:
Q:AWS提供的數據庫服務RDS,或是大數據服務EMR等,這些服務算是PaaS嗎?
這屬于一個概念問題,誰有IaaS和PaaS的概念定義權和解釋權,誰就是權威的。但是很可惜,在這個問題上,我沒發現這么一個能獲得大部分用戶支持的權威組織。
而在我國工信部電信研究院標準所發起的中國數據中心聯盟第一次全體大會上(2014年3月11日,三亞),對可信云的若干劃分中把云數據庫(RDS)歸到IaaS服務中,而不是PaaS服務。
但從我個人的理解上,我更傾向把RDS和EMR服務劃到PaaS,同時這也能代表一部分PaaS服務商的觀點。
Q:aPaaS 和 iPaaS區別大嗎?
這兩個概念是被Gartner于2011年提出來的。從Gartner摘選定義如下:
Application platform as a service (aPaaS) is a cloud service that offers development and deployment environments for application services.【我的理解:aPaaS側重于為應用提供開發和部署環境,例如Pivotal的Cloud Foundry產品 http://cloudfoundry.org/】
Integration Platform as a Service (iPaaS) is a suite of cloud services enabling development, execution and governance of integration flows connecting any combination of on premises and cloud-based processes, services, applications and data within individual or across multiple organizations.【我的理解:iPaaS側重于把流程、服務、應用、數據等各種資源整合起來,以更好地開發、運營、IT治理,例如Dell的Boomi產品 http://www.boomi.com/】
從Gartner的定義來看,這兩種PaaS的問題域是不同的,aPaaS側重技術棧的垂直整合,而iPaaS側重技術棧的水平整合。但從當前的發展趨勢來看,我個人認為二者有加速融合的趨勢。
Q:想構建高可用的大型網站是不是用PaaS架構更好呢?
高可用、高性能的大型網站應用,關鍵是應用本身的去中心化、scale up、scale out等設計,這三個特性并非PaaS提供給應用的。但如果應用有了這樣的設計,現在的主流PaaS產品能給應用提供一個更好的承載平臺(相對傳統中間件來說),例如PaaS的快速實例彈性擴展、應用健康監控及恢復等特性。因此也可以說構建一個高可用網站,選擇PaaS架構是更好的選擇。
Q:PaaS發展不如IaaS和SaaS,您怎么看?
SaaS從上世紀90年代末的ASP(Application Service Provider)演化而來,已經發展了十幾年,而且SaaS商業模式和市場發展最為成熟,針對不同行業的SaaS都有形成收入規模的服務商。
IaaS要解決的問題是計算資源能力標準化(計算、存儲、網絡,面向企業IT部門傳統采購硬件和基礎設施集成的優化),人們對IaaS領域的訴求也相對清晰,同時一套IaaS產品一般能滿足多數的行業的計算能力標準化需求。
而PaaS要解決的問題是應用生命周期的標準化(開發、運維、集成,面向企業IT部門更廣的問題域做優化),PaaS的發展特點如下:
- PaaS起步晚于SaaS和IaaS;
- PaaS要解決應用生命周期這一層問題,需要等待用戶自身已經發生質變,并且用戶已經試圖去優化DevOps和Integration了,那么PaaS能為此類用戶提供一個很好的平臺;而在國內,很多企業IT的的應用生命周期管理還停留在早期階段,其開發運維體系有待進化到一定程度,才有上PaaS的需要。
- 從IaaS=>PaaS=>SaaS,越往上行業性越強。而在PaaS這一層行業差異性需求已經暴露出來,因此一套標準PaaS產品難以像IaaS一樣各行業通用,也為PaaS推廣增加了難度。
- PaaS還有一種用法是作為資源切分更細、響應更敏捷、成本更低廉的PaaS公有云,但目前這個細分市場的用戶接受度如何,還有待于我們用時間驗證。
Q:IaaS、PaaS、企業SaaS三者之間界限正趨于模糊,將來會不會統一?
這三層之間的技術棧相互滲透一直在發生,尤其是IaaS和PaaS的邊界很難嚴格界定了。但絕對意義上的統一,我認為不會出現,因為技術發展的方向還是專業化分工、解耦,同時產業鏈格局一旦形成后也是一個壁壘。
Q:如果PaaS與IaaS有結合的必要,那與DaaS和FWaaS的結合呢?是相對分離呢?還是相互穿插呢?
DaaS是Database as a Service?FWaaS是FireWall as a Service?
DaaS為應用提供標準化的數據庫能力,而FWaaS給應用和數據看家護院,二者既相對分離,又相互關聯(或相互穿插)。
Q:PaaS最關鍵的作用是什么?現在有哪些企業在用?
這個問題仁者見仁,智者見智。我個人認為:PaaS最關鍵的作用是解決應用全生命周期的各種問題(開發、測試、集成、部署、運維),使用戶更快捷、更省錢、更好。【下圖是一張通用的、PaaS可能的作用領域】。國內外不乏各大互聯網公司、行業用戶的案例。
Q:您感覺國內企業對建立私有PaaS的接受程度如何?推廣上有什么阻力?
國內企業對建立私有云PaaS的接受程度,取決于國內企業在內部應用生命周期的發展階段,暴露出來的痛點(比如應用開發的各種臃腫、遲鈍、昂貴、不穩定)是否能被PaaS平臺解決或緩解。而PaaS推廣方面的阻力,來自于傳統中間件和傳統應用開發流程的思維慣性,需要我們深思如何用接地氣的、能解決實際痛點的打法去打破傳統思維慣性?
Q:很多企業的標準還是 webSphere/webLogic+Oracle/MSSQL,有支持這樣環境的PaaS嗎?
如果是以VM為顆粒度的PaaS(也有人叫Instance PaaS),一般都是支持各種商用中間件、數據庫的。而以container為顆粒度的PaaS(也有人叫Framework PaaS),需要具體產品具體分析,一些商業PaaS產品宣稱支持。
Q:我們在組織專家組決策技術方案選項時,推Cordys BOP4遇到了較大阻力,用戶、周圍開發人員還是停留在J2EE上,怎么面對這些人推進?
Business Operations Platform可以看作是Cordys的PaaS產品,在企業內部的推廣BOP,我覺得還是針對企業的差異化情況、針對企業內部特定人員的差異化需求,找到其真正的痛點(例如流程的不統一)給出可行解決方案,并找對關系人(有影響力+有利害關系),因此這問題屬于實施方法論領域,而非單純的技術問題。
Q:從私有PaaS到公有PaaS,有哪些需要考慮?技術?用戶?
私有PaaS,從技術上側重考慮圍繞應用的流程優化(或DevOps)、通過PaaS更好的整合各種服務、統籌調度以更高效的利用資源等,用戶群體是內部各部門/各分支機構。
公有PaaS,從技術側重考慮租戶隔離、安全性、資源配額、服務能力開放、自助服務等,目前用戶群側重于中小企業或初創團隊。
Q:PaaS是否集成了敏捷開發的產品開發流程管理?
PaaS是個殼,你可以往PaaS里集成各種敏捷開發的流程管理工具,并在此基礎上形成適合自己企業的Dev和Ops體系。
有一些PaaS(例如CloudBees公有云)的特色功能就是開發云,已經內置了這方面的功能。
Q:PaaS能解決I/O瓶頸嗎?
PaaS是一種管理軟件,和應用的I/O瓶頸無直接關系。
Q:PaaS能與Hadoop集成嗎?
Hadoop可以作為一種Service集成到PaaS中。
和傳統手工維護的Hadoop相比,PaaS上的Hadoop實現了自動化管理,降低了集成和運維工作量。同時,如果Hadoop計算節點及其資源利用率,能被PaaS上的scheduling模塊調度和優化,在特定的大規模計算集群場景下這種調度能節約資源。
Q:PaaS怎么集合多系統,更好地實現各系統這間的交互,實現單點登陸?
PaaS集成多系統,建議是面向服務的架構(可能用到json、restfull、消息隊列)、松耦合的、可擴展的,需要針對特定案例具體設計優化,并無統一標準。
身份認證(或單點登錄)可以從OAuth、OpenID、SMAL等選型。
Q:關于異構的問題,CF是如何解決的?
如果是Cloud Foundry上的異構應用組件之間的調用,CF在runtime期間讓他們直接調用。也可以把ESB產品(例如開源的MuleESB)作為一種Service集成到CF平臺中,通過ESB實現系統間調用。
CF對windows平臺的異構支持,有第三方開源項目IronFoundry。
Q:CloudFoundry能獨立安裝各個模塊嗎?或離線下載build pack?
Cloud Foundry的各個組件可以獨立安裝,如果你能找到適用場景,也可以單獨安裝某個模塊使用。
BuildPack是Heroku的開源項目,可以單獨下載。同時BuildPack涉及到的第三方LIB、SDK等資源可以單獨搭建內網私服,以避免被墻。
Q:高密度的Docker容器,針對運行容錯,特別是一個容器宕機,會影響整個物理機上的其它容器。這個PaaS有什么好的解決方法?
Docker是個進程,進程崩潰影響到宿主機上的其他進程,這問題可能屬于bug領域吧。PaaS是管理Docker這類容器的管理軟件,從PaaS角度可以加強對容器的監控、故障快速恢復,以降低此類問題帶來的故障損失。
Q:PaaS如何與Moonshot這類的高密度新型平臺的結合?甚至有沒有必要脫離X86平臺或者多平臺的結合?
Moonshot是指HP的新一代低功耗服務器,基于Atom/ARM?PaaS是個管理軟件,被管理的對象可能是資源、過程、業務等。因此PaaS對所謂“高密度新型資源”的管理支持也是一個趨勢。
Q:PaaS在什么行業領域應用比較廣泛呢?在電信行業情況如何呢?
PaaS在各種公有云、垂直行業平臺等領域,應用相對廣泛。在中國三大運營商也有分別都有應用案例,例如中國移動的PaaS公有云、中國聯通的大企業私有云項目等。
Q:PaaS是兼容多平臺(.NET, Java, PHP等)的軟件開發平臺嗎?
以vm作為顆粒度的PaaS完全兼容多平臺,以container作為顆粒度的PaaS可以兼容多平臺(要視具體產品而定),而以共享單進程的沙箱作為顆粒度的PaaS不一定兼容多平臺(往往鎖定語言)。下圖是一個PaaS參考劃分模型,縱軸就是技術棧粒度的劃分:
Q:如果選擇使用PaaS,用戶將最重要的程序和數據毫無保留地托付給PaaS服務商,這就涉及安全的問題,PaaS目前有什么解決方案嗎?
數據安全問題正是PaaS公有云市場推廣的一個痛點,全同態加密目前距離商用還有很大距離,因此對密文檢索目前業界尚無有效的完整解決方案。先從技術上探討,在PaaS上降低用戶數據泄露風險有三種方案:
- 應用流、云存儲流的做法。新增數據流程:用戶手握key+對數據在客戶端AES加密=>metedata+數據密文傳到服務端=>通過從metadata預提取重要關鍵詞建立索引(例如title、算法分析后的熱詞)=>存儲索引+二次加工后存儲數據密文。 用戶取數據流程是:key-value查詢(或按重要關鍵詞查詢)=>返回數據密文=>用戶手握master key+客戶端AES解密。
- 密碼流、安全理論流的做法。把AES這些重型的東西,扔到云上。通過類似三權分立機制解決可信:裝正確算法的內存CPU + 關機后的TPM + 平臺認證PKI。
- 傳統安全工程界、或硬件加密機流的做法。部署專用的可以存大量的key硬件計算設備到后臺(或所謂云端),通過加固安全邊界的CPU來解決可信。
以“ 云計算大數據 推動智慧中國 ”為主題的 第六屆中國云計算大會 將于5月20-23日在北京國家會議中心隆重舉辦。產業觀察、技術培訓、主題論壇、行業研討,內容豐富,干貨十足。 需要購買的朋友,請抓住這最后的機會,點擊報名!