云計算成為當前的熱點(diǎn),成為高科技和先進(jìn)性的一個(gè)標簽,所以所有的廠(chǎng)商或客戶(hù)都想方設法把這個(gè)標簽貼在自己身上,于是做了服務(wù)器虛擬化的號稱(chēng)自己上了云計算,做了一個(gè)數據中心也號稱(chēng)自己上了云計算,甚至只要應用是B/S界面的、用瀏覽器訪(fǎng)問(wèn)的都標榜自己上了云計算,美其名曰把應用放在云端。一時(shí)間人人皆云,廠(chǎng)商介紹得云遮霧繞,客戶(hù)理解的云里霧里。
那到底什么是云計算呢?研究IBM、Gartner、IDC等的定義幫助不明顯,作為用戶(hù),我們只要抓牢其本源(有什么價(jià)值?要獲得這些價(jià)值我要做到什么?有哪些環(huán)節可以權衡?),就可以掌握什么是云計算,實(shí)現云計算要做到什么?云計算最早其實(shí)是人們希望像消費水、電一樣消費IT資源,那我們平常是怎么用水和電的呢?
想用就馬上能用上,無(wú)需等待。龍頭一開(kāi),水就來(lái)了;開(kāi)關(guān)一開(kāi),燈就亮了。而傳統的IT資源如果要消費,必要經(jīng)歷立項、采購、安裝、配置、測試調試,最后才能上線(xiàn)對外提供服務(wù)。再考慮到安裝會(huì )涉及到網(wǎng)絡(luò )、服務(wù)器、存儲、操作系統、數據庫、中間件、應用等,配置會(huì )涉及到上述所有模塊,還有安全等,整個(gè)過(guò)程都不是一蹴而就的。
想用多少就用多少,能多也能少,同樣也無(wú)需等待。想用多點(diǎn)水,龍頭開(kāi)大點(diǎn);想用少點(diǎn)水,龍頭開(kāi)小點(diǎn)。消費一滴水還是放滿(mǎn)一個(gè)泳池,都可以。傳統IT如果負荷大了,SLA差了,想要擴容就不是這么簡(jiǎn)單了。首先要搞清楚真正的瓶頸root cause在哪里,網(wǎng)絡(luò )、服務(wù)器(內存RAM、計算能力CPU、I/O能力)、存儲(容量、IOPS)、數據庫、中間件、應用設計,到底哪個(gè)環(huán)節出了問(wèn)題;其次如何擴容,是Scale-Up還是Scale-Out,在不同環(huán)節分別有哪些技術(shù)可以選擇,擴容對前端用戶(hù)有無(wú)影響,能否不中斷使用,擴容多快能夠完成,能否自動(dòng)完成,能否被自動(dòng)感知并加入原有系統;擴容可以,那要縮減能力,是否可以呢,縮減后多余的處理能力是否還會(huì )產(chǎn)生Opex呢?
按需付費,按使用量付費。消費一滴水,就只要為一滴水付錢(qián),沒(méi)有最低門(mén)檻的限制;水廠(chǎng)或供水環(huán)節多余的能力完全可以提供給其他客戶(hù),問(wèn)其他客戶(hù)收錢(qián);前期的建設費用、后期的運營(yíng)費用全部都折算到每立方米的單價(jià),盈虧由運營(yíng)商負責,而運營(yíng)商在提供客戶(hù)滿(mǎn)意服務(wù)的基礎上,當然要盡可能節省成本。傳統的IT系統哪怕你只使用了20%的計算機資源,你依然要買(mǎi)整臺服務(wù)器,該服務(wù)器一開(kāi),你就要為其用的所有電力和制冷能力付錢(qián),你無(wú)法采購1/5臺服務(wù)器,也無(wú)法只使用1/5電力。
現在反過(guò)來(lái)看一下上述我們用水和電的模式如果同樣要求于IT資源的消費,那我們的IT系統需要有什么樣的能力,亦即我們要實(shí)現云計算,需要做到什么。當然對于任何特定的客戶(hù),不是所有階段都要實(shí)現的,每個(gè)階段也不是都要做到極致。翻譯成云計算的術(shù)語(yǔ),就是私有云客戶(hù)可以根據需求和性?xún)r(jià)比自己裁剪,而公有云提供商為了有競爭力,讓客戶(hù)滿(mǎn)意,通常是所有階段都要實(shí)現,每個(gè)階段做到盡可能好。為了更清晰地描述云計算的各個(gè)階段,這里借用IBM對云計算各階段的定義(雖然不完全同意IBM定義的順序,但起點(diǎn)和終點(diǎn)是一致的,而且各階段也不完全是串行的,必須完成前一階段才能進(jìn)入后一階段,而是根據需要,幾個(gè)階段可以并行地做,只是根據需要和投入大小,每個(gè)階段的進(jìn)入深度不一樣罷了)。IBM定義的云計算各階段是:虛擬化管理->服務(wù)交付自動(dòng)化->業(yè)務(wù)服務(wù)目錄、自服務(wù)->端到端實(shí)時(shí)監控和優(yōu)化->基于計量消費和動(dòng)態(tài)容量?jì)?yōu)化。
按需付費,按使用量付費。如果我們只需要0.5CPU的計算能力,當然我們不可能采購到0.5個(gè)CPU,我們利用虛擬化技術(shù)來(lái)切分出0.5CPU的計算能力,所以做云計算的第一步就是虛擬化,通過(guò)服務(wù)器虛擬化、存儲虛擬化、網(wǎng)絡(luò )虛擬化將各種資源虛擬化后,可以以更小的顆粒度按需提供給用戶(hù)。
想用就馬上能用上。如果采用手工的流程,哪怕所有可能的服務(wù)器配置(如RedHat+WebLogic+Oracle)都預先做好了VM,直接加載就好,但還是要配置一些性能參數啊、集群配置啊、網(wǎng)絡(luò )配置啊、安全參數啊、監控配置啊,即使所有這些預先都準備好了Guide Book,傻瓜化地輸入命令也是要一段時(shí)間的,如果要配置幾十臺機器呢?所以云計算要實(shí)現服務(wù)交付自動(dòng)化,即從底層硬件到最高層的應用,都能自動(dòng)安裝和配置。這里就會(huì )涉及到各種技術(shù),各種腳本語(yǔ)言、流程系統、CMDB等,再考慮到應用一定不是一層不變的,有Bug要修正,有New Feature要開(kāi)發(fā),這又會(huì )涉及到版本管理、自動(dòng)編譯和裝配、測試甚至自動(dòng)測試,自動(dòng)按模板部署。為了不影響前端客戶(hù)的使用,部署新應用時(shí)不能讓前端客戶(hù)感知到,又會(huì )涉及各種技術(shù),如高可靠性技術(shù)、輪流升級技術(shù)、僅組件更新升級技術(shù)等。
想用就馬上能用上。前端用戶(hù)如果有什么需要,他是否需要和云計算的提供商專(zhuān)門(mén)的接口人員聯(lián)系溝通需求,然后等待后者提供服務(wù)呢?當然不是,客戶(hù)希望無(wú)論是服務(wù)的瀏覽、開(kāi)通、擴容、縮小、終止都能夠自助完成。所以云計算的提供商都需要提供服務(wù)的目錄,有一個(gè)Portal讓客戶(hù)自助操作。
想用多少就用多少,客戶(hù)的應用突然訪(fǎng)問(wèn)量大增,要保證一致的SLA,需要有能力立刻發(fā)現瓶頸在哪里或哪些趨勢一定會(huì )產(chǎn)生未來(lái)的瓶頸,所以云計算需要端到端實(shí)時(shí)監控和優(yōu)化。這涉及到集中的監控臺監控網(wǎng)絡(luò )、服務(wù)器、存儲、數據庫、中間件、應用等所有環(huán)節;按照業(yè)務(wù)視角組織涉及到的所有響應環(huán)節的層次依賴(lài)關(guān)系,查找Root Cause;集中的Event事件匯總、智能溯源;自動(dòng)按照預案模板優(yōu)化等。
按需付費,按使用量付費。所以云計算必須提供基于計量的消費,從網(wǎng)絡(luò )流量、計算能力、I/O大小、存儲容量和性能、應用模塊到用戶(hù)數等,這些都是運營(yíng)商的成本,收入是否能打平或利潤如何,如何優(yōu)化成本,如何定價(jià)更有競爭力。想用多少就用多少,容量可能會(huì )大增,也可能業(yè)務(wù)不好需要縮減、甚至終止。云計算提供商為了自身利益最大化和降低成本,必然要做動(dòng)態(tài)容量?jì)?yōu)化,將資源利用率提高,削峰填谷,合理調配組合不同客戶(hù)需求。