對于網際網路公司而言,遷移到雲是一個明智的決定。它減少了總的成本支出,同時最大限度地提高了工作效率和生産率,本文将指出遷移到雲或者建設私有雲優缺點以及邊界在哪裡?
1、什麼是雲計算
雲計算(cloud computing)是分布式計算的一種,指的是通過網絡“雲”将巨大的資料計算處理程式分解成無數個小程式,然後,通過多部伺服器組成的系統進行處理和分析這些小程式得到結果并傳回給使用者。
本地通常是提前把軟體基礎架構部署在使用者計算機上,所有資源使用者自己通路和管理; 相對于本地服務,雲有以下特征:
按需服務-需要時使用;
網絡通路-通過網絡作為傳輸媒介,雲提供商負責維護其基礎架構;
資源共享-多個資源集中在一起,供多個用戶端使用;
可伸縮性-資源具有彈性能力,最大程度節省和提高資源使用率,具有平台無關性、存儲無限擴充等優勢。
2、公有雲的缺點在哪裡?
雲是公共資源,每秒都有數以百萬的使用者通路,雲服務提供商可能遭受攻擊,進而竊取使用者資訊,進而雲在一定程度上存在安全問題。
資料存儲在第三方機器,可能會出現第三方檢視和修改使用者隐私資料問題。
更多的控制權不在于自己,而在于雲提供商,雲出現問題,隻能等待第三方回應。
雲本身又分為公有雲、私有雲、混合雲等,以上說的幾點都是公有雲的特點,很多企業不信任公有雲平台,特别是國内很多企業要求對技術做到自主可控,結合本身的業務增長速度,需要搭建自己的私有雲平台。那麼要完成私有雲平台搭建,需要完成什麼工作呢?如圖(a)
(a)
3、搭建企業級雲平台需要完成哪些工作?
3.1、IaaS 基礎架構即服務
IaaS 基礎架構即服務,該服務提供了計算機體系架構和基礎服務,提供了所有雲計算資源供我們直接通路使用,比如資料存儲、虛拟化服務、伺服器和網絡等。
使用對象:企業管理者。
優點:雲提供了基礎架構和服務、增強了可擴充性、動态按需擴充。
缺點:叢集規模增大後會出現安全問題和網絡服務延遲。
3.2、PaaS 平台即服務
PaaS 主要是提供開發環境/平台,程式設計語言、作業系統、web 伺服器和資料庫構成,使用者可在其中建構、編譯、運作程式無需擔心其基礎架構。當今面對網際網路業務量和使用者量劇增,PaaS 是企業需要着重建設的部分。很多企業都以 Kubernetes 為基礎建設容器雲平台。常見的公有雲有有阿裡雲,騰訊雲、亞馬遜雲等。
使用對象:開發人員。
優點:快速開發部署、彈性擴容、持續傳遞。
缺點:開發人員僅限于使用PaaS提供的語言和工具,如果前期使用裸金屬伺服器部署,後期遷移到雲,可能會有一定難度和适應期。
3.3、SaaS 軟體即服務
按需使用軟體、按需付費。跟購買程式無關,該服務運作在雲端,是平台無關的,無需在 PC 上安裝軟體。雲端運作該服務一個或多個執行個體供多個最終使用者使用,雲計算大大降低企業軟體運作成本。比如網盤、網上沖浪服務等。
使用對象:使用者。
優點:可以通過任何平台通路、無需關心在什麼網絡環境。非常适合協同辦公。
缺點:雲服務是面對所有使用者,比如:浏覽器相容性可能導緻不能使用某些服務。
3.4、PaaS VS IaaS
在雲平台建設過程中 PaaS 和 IaaS 邊界在哪裡呢?很多企業在建設過程中,可能會把這兩個混為一談,其實有一定的界限。
IaaS 主要是對裸金屬機器進行資源配置設定、作業系統安裝、伺服器啟動、網絡配置等。
PaaS 主要是對計算資源進行邏輯管理,與應用有關資源配置設定和排程,主要是最大程度上服務于上層應用,如圖(b)。
(b)
4、雲平台真的适合你嗎?
建設之前,需要大量的時間去整理、評估元件的各種可行性分析。說到這裡,很多人可能會知難而退;是的,坦率的說,雲平台其實不适合大多數的團隊,如果你在一個 15 - 20 人的小團隊裡,它會帶給你大量痛苦,而好處卻微乎其微。
4.1、以建設容器雲平台舉個例子
目前 A 公司的系統全部運作在裸金屬 3 台伺服器或者 5 個虛拟機上,考慮到硬體資源無法靈活排程,目前考慮遷移到Kubernetes上。
首先需要申請更多的機器,遷移總要有一個過渡階段,前期裸金屬伺服器上要運作一份服務,Kubernetes容器化平台還要有一份服務,此外還需要考慮依賴的底層服務;
其次需要開發人員的學習适應和一定的人力投入,開發人員需要在了解大量概念之後才能使用,Node、Pod、Container、Service、Deployment......各種資源對象,如圖(c)可以看出 Kubernetes 是一個龐大的系統,操作和使用都是非常的複雜,它包含 58w 行 go 代碼,如果我們想要服務更好的工作,研究其運作機制,一定是必不可少的。 ( c )
最後落地,需要考慮資料的遷移、遺留系統的遷移,因為 Kubernetes 本身是一個叢集,不得不考慮分布式存儲管理、配置管理...... 如果自己系統本身不适應叢集部署,那麼不能發揮雲的作用,不得不考慮把服務拆分成分布式微服務程式,這種程式很難編寫,編寫過程需要考慮分布式事務等很多問題,其次調試和日志排查問題也會增加複雜度,于是你在雲平台的漩渦裡不能自拔..........
上面說了這麼多 Kubernetes 使用問題,是不是說它就一無是處了,當然不是。比如說目前服務客戶是金融業務,7*24 小時不能當機,且有上萬使用者使用,這就需要考慮到服務的擴充性和更新可靠性了,這正是Kubernetes 最擅長的事情了。
4.2、容器雲平台真的有必要嗎?
對于任何技術,在使用之前都要持保留态度,别人說好,那是适合,換做是你,可能就是另外一種場景了,要學會洞察技術的本質,就像搭建企業級雲平台一樣,在搭建之前要考慮為什麼要建設企業級雲平台?可以從三個方面去考量建設的意義是什麼?
業務系統越來越多,各個系統之間存在大量的資料互動和接口調用,規劃的還有大量的系統需要建設,出現問題時總是修修補補,無法從全局、系統的角度去規劃分析問題。 資源管理層面上,有多個機房和資料中心,裡面可能存在部分僵屍服務,無法做到有效監控、動态排程底層計算資源共享,更無法做到峰谷互補伸縮自如。 需求上要求快速傳遞、持續運作并且已經存在或者未來可預知的大量使用者和海量資料。(企業架構源碼可以加求球:三五三六二四七二五九)
5、總結
随着網際網路的發展和網絡帶寬的增加,企業應利用雲計算的優勢,減少了總的成本支出,同時最大限度地提高了效率和生産率,從長遠來看,對于大型網際網路公司而言,遷移到雲是一個明智的決定。