云計算導論:概念-架構與應用PPT第4章課件_第1頁
云計算導論:概念-架構與應用PPT第4章課件_第2頁
云計算導論:概念-架構與應用PPT第4章課件_第3頁
云計算導論:概念-架構與應用PPT第4章課件_第4頁
云計算導論:概念-架構與應用PPT第4章課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、云計算導論:概念 架構與應用第4章PaaS服務模式人民郵電出版社 21世紀高等院校云計算和大數據人才培養(yǎng)規(guī)劃教材核心系統概述Cloud FoundryHadoop4.14.2內容導航CONTENTS 概述平臺層的功能以服務的形式提供給用戶,可以作為應用開發(fā)測試和運行管理的環(huán)境,亦平臺即服務(Platform as a Service,PaaS)。平臺即服務是云計算平臺層的外在表現形式,是云計算平臺提供的一類重要的功能集合。在云計算的多層架構中,需要一個層次來屏蔽下層物理設備的多樣性,又要支持上層應用的多樣性。PaaS層即通過一系列的面向應用需求的基本服務和功能來提供應用運行管

2、理的基礎,而它本身也屏蔽了基礎設施層的多樣性,可運行在多樣的基礎設施層之上。4.1.1 驅動力平臺即服務作為云計算中的一類重要服務類型,它的出現有其深刻的商業(yè)和技術背景。進入21世紀以后,基于Web應用的電商平臺成為軟件開發(fā)的主流,企業(yè)必須尋求新的IT系統及應用運作方式,以降低大量成本投入。平臺即服務給企業(yè)在這方面的需求帶來了高效的解決方案。在云計算的架構中,基礎設施層通過基于共享和虛擬化的服務來提供計算能力、存儲能力和網絡能力。在云計算的大框架下,平臺即服務提供了進一步的抽象。通過對云應用進行分類,總結相關實踐中的共性問題,抽象出特定的模式和解決方案。PaaS包括一系列的平臺軟件和基本服務。

3、PaaS的提供商在平臺軟件和基礎服務的實現上具有多樣性,各自針對用戶對平臺的一類或幾類特定需求和使用方式。根據所針對的應用類型,PaaS在理念、客戶定位和實現方式上也會存在差異。通常的企業(yè)客戶維護著大量現存的應用。企業(yè)可以考慮把這些應用遷移到云計算平臺層上,或者保持維護現有應用,而把新的應用運行在云計算的平臺層上。PaaS技術的發(fā)展將會更加貼近客戶的多樣化需求。4.1.2 主流類型當前,PaaS上運行的應用主要分為兩類:一類是Web服務類PaaS平臺架構如圖所示。這一類應用主要是通過瀏覽器訪問、采用請求響應模式進行交互的應用,稱為事務處理類應用。事務處理類應用的要求主要包括快速響應、高可用性、

4、大并發(fā)量等。Web服務類PaaS平臺架構4.1.2 主流類型另一類是數據分析服務,其PaaS平臺架構如圖所示。這一類應用主要是對大量的數據進行分析處理,稱為數據分析類應用。數據分析類應用的主要要求包括強大的計算能力和存儲能力,對于實時性的要求不高,數據處理完畢后任務就結束運行了。 數據分析類PaaS平臺架構隨著市場規(guī)模的擴大和市場細分的深化,PaaS的種類及提供PaaS的廠商將會不斷增加。4.1.3 功能角色 1共享的中間件平臺從架構層次上來看,平臺層是為了有效支撐大量應用實例的運行管理,它是一類應用運行所需要的資源和服務集中起來并進行共享的中間件平臺。PaaS將傳統的靜態(tài)、獨享的中間件平臺轉

5、變?yōu)橐环N動態(tài)、共享的中間件平臺。每個應用將在云平臺上統一進行管理和運行。平臺層既提高了資源的利用率,又通過對應用和平臺進行概念和功能的分離進一步簡化了應用和平臺的運營和管理,見右圖。PaaS將“共享”擴展到更大的范圍。與基礎設施層所共享的對象不同,PaaS所共享的對象是應用運行所需的資源和基礎功能。PaaS作為擴展的中間件4.1.3 功能角色2集成的軟件和服務平臺從功能特征的角度來看,平臺層整合各種不同的軟硬件資源向應用提供一致而統一的資源和功能。如圖所示,平臺即服務可能建立在多個基礎設施服務之上,需要對應用提供一個一致的、單一的基礎設施視圖。平臺層除了提供Web服務器、應用服務器、消息服務器

6、等傳統的中間件以外,還需要提供其他相關的管理支撐服務,如應用部署、應用性能管理、使用計量和計費等。另外,云應用本身可能會集成來自不同云服務提供商所提供的功能或服務,這些需要平臺層提供相應的支持。PaaS作為集成的軟件和服務平臺4.1.3 功能角色3虛擬的應用平臺從使用模式上來看,作為應用運行管理的環(huán)境,PaaS模糊了物理資源的限制,在應用看來是一個按需索取、無限可擴的虛擬平臺,如下圖所示。PaaS作為云應用的運行環(huán)境,云應用通過PaaS所提供的編程接口(API)按需獲取運行所需要的各種(虛擬的)資源和能力??傊琍aaS針對的是有效并自動管理大量應用的需求。PaaS的功能和結構設計要滿足這樣的

7、需求。PaaS作為虛擬的應用平臺概述Cloud FoundryHadoop4.1內容導航CONTENTS4.34.4核心系統4.24.2 核心系統一個平臺一般來講只能對某類應用進行高效、方便的支持。在當前的IT實踐中,存在大量不同類型的應用,因此,從用戶的觀點來看,PaaS與PaaS之間也存在著巨大的不同。然而,在實現PaaS的過程中,我們也會發(fā)現,PaaS作為一個系統,其中的功能和模塊大致分為兩類,首先是PaaS的核心系統,包含了PaaS的一系列本質特征,即使是在不同的PaaS中,也會有這些特征的實現;其次是PaaS的擴展系統,主要包含了針對其支持的應用類型的支持,比如GAE作為支持事務型W

8、eb應用的PaaS,就包含了數據訪問和緩存的相應模塊。本節(jié)討論通用的核心系統。4.2.1 簡化的應用開發(fā)和部署模型PaaS層的基本目的是為了進一步簡化大量應用的開發(fā)、部署和運行管理。假設用戶A和用戶B都需要CRM的應用,用戶A需要很高的數據可用性,而用戶B則不太關心這個問題。開發(fā)人員只需要進行一次開發(fā)就能滿足這兩個企業(yè)的功能性需求,而應用管理人員則只需要在部署的時候根據業(yè)務的需求選擇配置策略,云平臺會自動為它們產生不同的部署和配置。PaaS層在傳統的功能性和非功能性分離的基礎上,把非功能性的需求實現以服務的方式提交給應用開發(fā)者使用,并且通過利用IaaS層的功能可以實現應用資源自動按需供給。所以

9、,PaaS層使得應用的開發(fā)更加簡單,應用的運行更為自動化。PaaS平臺實現的非功能性需求4.2.2 自動資源獲取和應用激活PaaS層的一個基本特點是資源分配和應用激活的自動化操作。PaaS層可以建立在IaaS層之上,通過調用IaaS層的功能和接口獲得相應的資源并分配給相應的應用,也可以直接實現基礎設施管理的功能,而無須抽象出單獨的IaaS層。提交給PaaS層的應用分為功能性模塊和非功能性策略。PaaS層首先根據應用的這兩方面的需求計算出支持該應用所需要的資源類型、配置模式和相應的數量。當為應用配置好運行所需要的各類資源之后,PaaS層需要激活應用,讓應用確實運行起來并為其提供正常運行應有的功能

10、。在應用的部署過程中,可能涉及應用模型沒有指定但實例化的時候必須存在的功能模塊。除了解析并實現資源之間的依賴關系外,在應用能夠正式運行之前,還需要對資源進行一系列的配置和初始化工作。4.2.3 自動的應用運行管理(1)PaaS則提供了應用運行環(huán)境和應用自身的分離;應用運行所需的資源、基礎服務和管理操作都可以交由PaaS平臺來負責,甚至通過一系列技術實現自動化操作。在PaaS平臺上,企業(yè)僅需關心應用的功能,監(jiān)控應用的運行是否達到要求,而無須關心如何準備好各種資源和條件來使其正常運行,后者由PaaS平臺來負責。(2)為了實現以應用為中心的管理模式,PaaS展現給用戶的是以應用為中心的邏輯視圖,即展

11、示應用邏輯層次上的功能模塊,以及通過屬性和策略所表達的非功能性約束。(3)除了向應用管理人員提供應用的邏輯視圖,PaaS還通過在邏輯視圖上加載適當的管理操作接口從而形成一致的集成管理視圖。集成的管理視圖既展示了應用的運行信息,又展示了管理人員可以使用的管理操作,使得以應用為中心的管理更為直觀而簡化。(4)根據應用的運行動態(tài),PaaS可以實時調整提供給應用的各類資源。4.2.4 平臺級優(yōu)化(1)在PaaS層,優(yōu)化在兩個層次上進行:在應用層次,針對應用的性能和配置策略,PaaS動態(tài)調整應用所使用的資源,在保證達到應用要求的前提下盡量提高資源的使用率,降低應用的運行費用;在PaaS平臺層次上,在保證

12、各個應用的運行要求下,PaaS通過資源的共享和復用從而降低平臺的運行開銷,提高運行效率。(2)將應用運行在PaaS平臺上,應用的所有者不再擁有單獨的軟硬件平臺,針對軟硬件平臺的優(yōu)化工作也需要由PaaS來進行。同時,PaaS平臺執(zhí)行優(yōu)化工作時,也需要調用所依賴的層次,如IaaS層的功能和服務來完成。PaaS平臺可以根據應用的策略及運行情況來自動進行跨層次(PaaS層與IaaS層)的優(yōu)化和調整。(3) PaaS平臺上運行著大量的應用,由于規(guī)模和自動化的要求,其上的優(yōu)化也將面臨著巨大的挑戰(zhàn)。這是未來大規(guī)模分布式系統研究和實踐的重要方面。概述Hadoop4.1內容導航CONTENTS4.4核心系統4.

13、2Cloud Foundry 簡介Cloud Foundry是VMware推出的業(yè)界第一個開源PaaS云平臺,它支持多種框架、語言、運行時環(huán)境、云平臺及應用服務,使開發(fā)人員能夠在幾秒鐘內進行應用程序的部署和擴展,無需擔心任何基礎架構的問題。同時,它本身是一個基于Ruby on Rails的由多個相對獨立的子系統通過消息機制組成的分布式系統,使平臺在各層級都可水平擴展,既能在大型數據中心里運行,也能在一臺計算機中運行,二者使用相同的代碼庫。作為新一代云應用平臺,Cloud Foundry專為私有云計算環(huán)境、企業(yè)級數據中心和公有云服務提供商所打造。4.3.2 特點Cloud Fou

14、ndry云平臺支持各種框架的靈活選擇,這些框架包括Spring for Java、.NET、Ruby on Rails、Node.js、Grails、Scala on Lift以及更多合作伙伴提供的框架(如Python,PHP等),大大提高了平臺的靈活性。1. 開發(fā)框架的選擇性Cloud Foundry可以靈活地部署在公有云、私有云或者混合云之上,如vSphere/vCloud、OpenStack、AWS、Rackspace等多種云環(huán)境中。3部署云環(huán)境的選擇性Cloud Foundry平臺將應用和應用依賴的服務相分開,通過在部署時將應用和應用依賴的服務相綁定的機制使應用和應用服務相對獨立,增加

15、了在PaaS平臺上部署應用的靈活性。2應用服務的選擇性Cloud Foundry PaaS平臺4.3.3 邏輯結構Cloud Foundry是由相對獨立的多個模塊構成的分布式系統,每個模塊單獨存在和運行,各模塊之間通過消息機制進行通信。Cloud Foundry各模塊本身是基于Ruby語言開發(fā)的,每個部分可以認為拿來即可運行,不存在編譯等過程。Cloud Foundry云平臺是完全模塊化的分布式系統,各個模塊之間是相互獨立的,通過消息總線進行相互連接和通信,這種結構不僅使系統各模塊之間的耦合度降低,而且使系統功能容易擴充。 Cloud Foundry邏輯結構4.3.3 邏輯結構Router (

16、路由器)Authentication (認證組件)Cloud Controller(云控制器)Health Manager (健康管理器)Application Execution(應用執(zhí)行)Service Brokers(服務代理)Message Bus(消息總線)01020304050607Page1234567Cloud Foundry云平臺的各種應用服務由Services模塊提供,可以靈活擴展。Metering & Logging (計量和日志)8084.3.4 整體架構從圖中可以看到,Cloud Foundry平臺主要由Router、Cloud Controller、Health M

17、anager、DEA、NFS、NATS、Cloud Controller Database以及Service等模塊組成。這些模塊協同合作,通過特定的消息傳輸機制和API接口進行通信,就可以使整個云平臺正常運行。由于在集群環(huán)境下每個模塊都有多個部署節(jié)點,從而保證了云平臺的可靠性和彈性動態(tài)擴展的需求,使得應用程序可以穩(wěn)定可靠地運行在Cloud Foundry云平臺上。Cloud Foundry包括UAA(用戶賬戶及授權)和登錄服務器。UAA就是Cloud Foundry的身份管理服務。登錄服務器為UAA執(zhí)行驗證任務,并充當后端服務。 Cloud Foundry云平臺整體架構4.3.5 部署模式Cl

18、oud Foundry是完全模塊化的設計,模塊之間不共享狀態(tài)信息,每個模塊可以單獨存在、運轉。所以,Cloud Foundry安裝方式可以靈活多樣,既可以單節(jié)點安裝,也可以多節(jié)點安裝。在單節(jié)點安裝模式下,Cloud Foundry所有的模塊都安裝運行在同一個節(jié)點上。這種模式安裝簡單,所需資源少,但是處理能力有限,所以,主要用于學習和測試平臺的功能和工作原理。單節(jié)點安裝模式Cloud Foundry整個平臺組件節(jié)點眾多,有些組件節(jié)點適宜做橫向擴展,有些組件節(jié)點適宜做縱向擴展,這需要根據節(jié)點的具體職責進行分析。同一個組件都是以集群的方式進行部署。多節(jié)點安裝模式4.3.5 部署模式路由集群(Rout

19、er Cluster):路由節(jié)點是Cloud Foundry平臺對外提供訪問的唯一接口??刂乒?jié)點集群(Cloud Countroller Cluster):控制節(jié)點是整個Cloud Foundry平臺的核心節(jié)點。健康管理集群(Health Manager Cluster):負責應用狀態(tài)監(jiān)控及管理。數據中心:數據中心由三部分內容組成:NFS Server、CCDB、UAADB。身份認證服務集群(User Authentication Authorization Cluster):為平臺提供身份認證及授權服務。DEA集群(Droplet Execution Agency Cluster):DEA節(jié)

20、點是應用的最終運行環(huán)境。7服務中心(Service Cluster):服務中心是對所有第三方服務的一個總稱,包括Redis、MySql、Memcached、MongoDB等。NATS:NATS是消息組件,該節(jié)點發(fā)生故障的情況下,會影響其他組件中通過NATS消息總線傳輸數據,但是不影響應用的所有運行環(huán)境。打包集群(Stager Cluster):用戶上傳代碼到Cloud Foundry平臺后,Cloud Controller需要將這部分代碼結合平臺環(huán)境打包成DEA可以運行的格式??蛇x部署:Loggregator是Cloud Foundry中用于對應用日志收集的組件,并可以對接其他的日志組件。概述

21、4.1內容導航CONTENTS核心系統4.2Cloud Foundry4.3Hadoop 概述對數據的存儲、處理存在困難,并不是個新問題。近年來,數據的容量、處理的速度、數據的種類正在變化,促進了不少算法的發(fā)展。無論是什么樣的解決方案,背后的推薦算法都必須處理大量數據,對問題空間越了解就越容易得出更好的結論。Hadoop可以為大數據應用提供一個可編程的、經濟的、可伸縮的平臺。這個分布式系統由分布式文件存儲系統(HDFS)以及計算框架(MapReduce)組成。Hadoop是一個開源項目,能為大量數據集提供批量數據處理能力。Hadoop的設計可以容忍軟硬件的不可靠,并且為應用開發(fā)

22、者提供一個便于開發(fā)分布式應用的平臺。Hadoop使用沒有特殊硬件或特殊網絡基礎設施的普通的服務器群來形成一個邏輯上可存儲大量數據、進行并發(fā)計算的集群,這個集群可以被很多團體和個人共享。4.4.2 Hadoop簡史 Hadoop基于Google的兩篇論文發(fā)展而來。一篇發(fā)表于2003年的論文描述了一個用來存儲海量數據、可編程、可伸縮的分布式文件系統,該文件系統被稱為Google文件系統,或簡稱GFS。2004年,另外一篇名為“MapReduce:大集群中一種簡單的數據處理框架”的論文發(fā)表了,該論文定義了一種編程模型及其相關的框架,GFS和MapReduce相互協同,可在相對便宜的商用機器上構建大數

23、據處理集群。與此同時,Doug Cutting正在研究開源的網頁搜索引擎Nutch。當Google的GFS和MapReduce論文發(fā)表后,引起了他的強烈共鳴。Doug開始著手實現這些Google系統。2006年,Yahoo雇用了Doug Cutting并迅速成為Hadoop項目最重要的支持者之一。Yahoo允許Doug和其他工程師們在受雇于Yahoo期間,致力于Hadoop的工作Hadoop誕生了4.4.3 Hadoop組成部分HDFS是一個可以存儲極大數據集的文件系統,它是通過向外擴展方式構建的主機集群。它有著獨特的設計和性能特點,特別是,HDFS以時延為代價對吞吐量進行了優(yōu)化,并且通過副本

24、代替物理冗余達到了高可靠性。HDFSMapReduce是一個數據處理模式,它規(guī)范了數據在兩個處理階段(Map和Reduce)的輸入和輸出,并將其應用于任意規(guī)模的大數據集。MapReduce與HDFS緊密結合,確保在任何情況下,MapReduce任務都能直接在存儲所需數據的HDFS節(jié)點上運行。MapReduce作為一個頂級項目,Hadoop項目包含許多組件子項目,其中最主要的兩個子項目分別為Hadoop分布式文件系統(HDFS)和分布式并行計算框架MapReduce。這兩個子項目是對Google特有的GFS和MapReduce的直接實現,它們是一對相互獨立而又互補的技術。4.4.4 HDFSHD

25、FS(Hadoop Distributed File System)是一個分布式文件系統,HDFS提出了“移動計算能力比移動數據更廉價”的設計理念。HDFS是一種主/從模式的系統結構,主服務器,即圖中的命名節(jié)點(NameNode),管理文件系統命名空間和客戶端訪問,具體文件系統命名空間操作包括“打開”“關閉”“重命名”等,并負責數據塊到數據節(jié)點之間的映射。HDFS同時給應用程序提供接口以保證處理過程盡量靠近數據的位置,減少中間數據傳輸的開銷。HDFS的命名空間存放在命名節(jié)點上,為了保證訪問效率,命名節(jié)點在內存中保存整個文件系統的命名空間和文件的塊映射圖。 HDFS提出了數據均衡方案,如果某個數

26、據節(jié)點上的空閑空間低于特定的臨界點,那么就會啟動一個計劃自動地將數據從一個數據節(jié)點遷移到空閑的數據節(jié)點上。HDFS架構4.4.5 MapReduceMapReduce是一個基于上述原理的處理模式,它實現了從源數據集到結果數據集的一系列轉換。在最簡單的情況下,作業(yè)的輸入數據作為map函數的輸入,所得到的臨時數據作為reduce函數的輸入。開發(fā)人員只需定義數據轉換形式,Hadoop的MapReduce作業(yè)負責并行地對集群中的數據實施所需轉換。盡管整體思想并不是新創(chuàng)建的,但Hadoop的一個主要貢獻在于它如何將這些想法變成一個精心設計的可用平臺。Hadoop平臺負責執(zhí)行數據處理的各個方面。在用戶定義

27、了任務的關鍵指標后,其余事情都變成了系統的責任。更重要的是,從數據規(guī)模的角度來看,同一個MapReduce作業(yè)適用于存儲在任意規(guī)模集群上的任意大小的數據集。MapReduce計算框架4.4.6 MapReduce計算舉例一般來講,編寫MapReduce程序的步驟如下。(1)把問題轉化為MapReduce模型。(2)設置運行的參數。(3)寫map類。(4)寫reduce類。假定有多個文件,我們需要統計每個單詞在這些文件中出現的次數。要完成這個計算的主要思想就是,把這些文件分成多個數據片,然后把每個數據片交給一個Map函數來統計該數據片上每個單詞出現的次數,最后,再把每個Map函數統計的結果交給R

28、educe函數進行合并,從而得到每個單詞在所有文件中出現的次數。如果有足夠多的Map函數并行進行處理,那么就可以大大提高統計的速度。應用開發(fā)者所需要完成的主要任務就是編寫Map和Reduce函數。例子:使用MapReduce統計單詞個數4.4.6 MapReduce計算舉例(1)編寫線性的Map和Reduce函數。1./map函數2./ key:字符串偏移量;value:一行字符串內容 3.map(String key, String value) : 4. / 將字符串分割成單詞 5. words = SplitIntoTokens(value); 6. for each word w in

29、 words: 7. EmitIntermediate(w, 1); 8. 9./Reduce函數 10./ key:一個單詞;values:該單詞出現的次數列表 11.reduce(String key, Iterator values): 12. int result = 0; 13. for each v in values: 14. result += StringToInt(v); 15. Emit(key, IntToString(result); (2)按照一定的規(guī)則指定程序的輸入和輸出目錄,并提交到Hadoop集群中。首先,將要進行統計單詞個數的文件拆分成多個數據片(split

30、s),將文件按行分割形成對,這個工作由MapReduce框架自動完成。然后將分割好的對交給用戶定義的map方法進行處理,生成新的。4.4.6 MapReduce計算舉例(3)得到Map函數輸出的對后,Map框架會將它們按照key值進行排序,并執(zhí)行Combine過程,將key值相同value值累加,得到Map的最終輸出結果。(4)然后,Map框架把各個Map函數的處理結果傳輸給Reduce函數。Reduce框架先對從Map框架接收到的數據進行排序,再交給用戶自定義的reduce方法進行處理,得到新的對,并作為WordCount的輸出結果。4.4.7 HDFS與MapReduce組合作為一個大規(guī)模數據存儲平臺,HDFS并非必須與MapReduce配套使用。將HDFS和MapReduce組合使用是最為常見的情

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論