java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2444|回复: 0

《大规模分布式存储系统》第12章 云存储【12.5】

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66105

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-3-16 16:09:57 | 显示全部楼层 |阅读模式
    12.5 云平台整体架构+ \: t" X& s' w! E9 d
    云存储是云计算的存储部分,理解云存储架构的前提是理解云平台整体架构。5 x% M' k; B: t7 W, U! R5 z
    云计算按照服务类型大致可以分为三类:基础设施即服务(IaaS)、平台即服务
    ' [4 d; m* A# t5 j% \: X(PaaS)以及软件即服务(SaaS),如图12-3所示。
    + f0 m' N0 ?5 g* s! M7 b. T7 F图 12-3 云计算服务类型+ \- K  ]& p* J6 k$ O2 f) Q
    IaaS将硬件设备等基础资源以虚拟机的形式封装成服务供用户使用,如Amazon
    6 k. k: |9 j" o云计算AWS(Amazon Web Service)的弹性计算云EC2,PaaS进一步抽象硬件资源,
      J; x9 J; H6 w; r6 V提供用户应用程序的运行环境,开发者只需要将应用程序提交给PaaS平台,PaaS平
    3 y1 Y8 u1 Y6 P5 t: E) ?台会自动完成程序部署,处理服务器故障,扩容等问题,典型的如(Google App% Q- t# s* V$ X4 l7 J. ]
    Engine)GAE。另外,微软的云计算平台Windows Azure Platform也可大致归入这一
    ; w1 h) r0 i  t4 Y  U3 p" {类。SaaS的针对性更强,它将某些特定应用软件封转成服务,如Salesforce公司提供
    / o8 d8 h8 P0 o& Y5 O1 Q的在线客户端管理CRM服务,Google的企业应用套件Google Apps等。
    0 }! B# _1 S$ w& G8 X) c) K本节首先分别介绍Amazon、Google以及Microsoft这三个云平台的整体架构,其
    ) W; [2 q& ]9 q  ~; z9 O) ~& j; h4 L中,Amazon提供IaaS服务,Google和Microsoft提供PaaS服务,接着介绍一般情况下云
    9 i! z5 J( C0 \平台的整体架构。' S7 W2 ~/ c6 m0 q$ |" F9 d) E
    12.5.1 Amazon云平台5 v+ ~7 ~: y$ F- h1 [* ]; P. n
    Amazon Web Services(AWS)是Amazon构建的一个云计算平台的总称,它提供4 r, r/ _0 v5 N% c! V
    了一系列云服务。通过这些服务,用户能否访问和使用Amazon的存储和计算基础设8 P8 Q" r& G& e) k- g  h! O
    施。如图12-4所示,AWS平台分为如下几个部分:8 c1 J2 @* p% d+ v& m& u
    图 12-4 AWS平台整体架构4 w3 I- ]; D& v" c% l0 }' D
    ●计算类:核心产品为弹性计算云EC2(Elastic Computing)。EC2几乎可以认为. p5 F, _& i( c
    是迄今为止云计算领域最为成功的产品,通俗地讲,就是提供虚拟机,用户的应用8 _7 s' z; u' Y+ J, l% ^* ~  ^
    程序部署在EC2实例中。EC2架构的核心是弹性伸缩,当托管的应用程序访问量变化8 S4 _6 g1 j/ e7 b( k0 t
    时能够自动增加或者减少EC2实例,并通过弹性负载均衡技术将访问请求分发到新增
    ! t9 y) X! G0 {的EC2实例上。在计费模式上,EC2按照使用量计费,而不是采用传统的预付费方  `; |; \. d0 L) y' z9 G
    式。EBS(Elastic Block Store)是一个分布式块设备,可以像本地的磁盘一样直接挂7 y, F5 b- ^0 }+ D
    载在EC2实例上,与本地磁盘不同的是,保存到EBS的数据会由EBS的管理节点自动0 z  }3 H2 e7 e( q/ R
    复制到多个存储节点上。EC2实例的本地存储是不可靠的,如果EC2实例出现故障," Z8 h+ I) n1 b
    本地存储上保存的数据将会丢失,而保存到EBS上的数据不会丢失。EBS用于替代
    ' S8 o# E- u; A- d9 c6 t0 pEC2实例的本地存储,从而增强EC2可靠性。. }: n  r) D" G
    ●存储类:存储类产品较多,包括简单对象存储S3,表格存储系统SimpleDB、& p% q0 X% Q" \5 a9 a! Q' o
    DynamoDB、分布式关系数据库服务(Relational Datastore Service,RDS)以及简单消
    $ T7 _0 z# m6 r  t9 Z7 L# o7 Q息存储(Simple Queue Service,SQS)。S3用于存储图片、照片、视频等大对象,为
    ) M! i* O: Z: c. E4 o了提高访问性能,S3中的对象还能够通过CloudFront缓存到不同地理位置的内容分发
    : ?1 }( W6 @. d+ p9 w网络(Content Delivery Network,CDN)节点。SimpleDB和DynamoDB是分布式表格系$ i" ^' Y8 q) r6 l' t' |! F8 ^
    统,支持对一张表格进行读写操作;RDS是分布式数据库,目前支持MySQL以及- y/ u" l, y9 f+ B: m8 B
    Oracle两种数据库。SQS主要用于支持多个任务之间的消息传递,解除任务之间的耦0 C9 [( a7 N! m' _& r3 i+ P: U
    合,相当于传统的消息中间件(Message Queue)。为了提高访问性能,可以使用
    & w- ^* U. [- ]1 U0 rElasticCache缓存存储系统中的热点数据。
    ; [! m$ Q, a9 `* A' g4 n* X, X% }●工具支持:AWS支持多种开发语言,提供Java、Ruby、Python、PHP、Windows
    9 [5 k# u5 b  p) M" _&.NET以及Android和iOS的工具集。工具集中包含各种语言的SDK、程序自动部署
    - |0 K. ^2 @  o以及各种管理工具。另外,AWS通过CloudWatch系统提供丰富的监控功能。' F+ l1 z, h+ \3 F
    AWS平台引入了区域(Zone)的概念。区域分为两种:地理区域(Region
    5 X5 B; _! _5 z1 o- u3 _  Z% vZone)和可用区域(Availability Zone),其中地理区域是按照实际的地理位置划分$ r& B. K% Z: D9 L  g+ U: I
    的,而可用区域一般是按照数据中心划分的。1 P8 F  q! I# D* P, f1 q: ^
    假设网站MyWebSite.com托管在AWS平台的某个可用区域中。AWS开发者将Web
    ' I; C  A3 ]$ R+ L5 Y6 _应用上传到AWS平台并部署到指定的EC2实例上。EC2实例一般分成多个自动扩展组2 t/ A' {* Z$ ^; N( }
    (Auto Scaling Group),并通过弹性负载均衡(Elastic Load Balancing)技术将访问
    / Z, A  k$ f: S3 E& M5 w请求自动分发到自动扩展组内的EC2实例。开发者的Web应用可以使用AWS平台上的- ^* |: ?! ?$ }
    存储类服务,包括S3、SimpleDB、DynamoDB、RDS以及SQS。! X% K9 W" |% X- [* n0 d
    网站上往往有一些大对象,比如图片、视频,这些大对象存储在S3系统中,并) ^; F& `5 ]4 Q( p: T9 V
    通过内容分发技术缓存到多个CloudFront节点。当Internet用户浏览MyWebSite.com
    ! U" b/ ^* T8 r7 s  C5 I, a时,可能会请求S3中的大对象,这样的请求将通过DNS按照一定的策略定位到
    7 P& a+ T/ z5 r: ^: Q  Z& D0 X8 uCloudFront节点。CloudFront首先在本地缓存节点查找对象,如果不存在,将请求源9 g6 y: z6 b9 |* U  m
    站获取S3中存储的对象数据,这一步操作称为回源。2 \% U% i1 N0 z6 k* m3 T' R0 i5 T2 S
    12.5.2 Google云平台
    ' _- L3 ^$ @9 j+ ^# LGoogle云平台(Google App Engine,GAE)是一种PaaS服务,使得外部开发者可
    - |% j4 a- ~3 Z" _* a以通过Google期望的方式使用它的基础设施服务,目前支持Python和Java两种语言。
    # c: ]3 B7 G2 i: Q+ x  q3 x( q; hGAE虽然在产品上相比Amazon云平台还有较大的差距,但在技术上是成功的,尤其  ]! X7 l0 _! ]0 c3 L
    适用于企业构建自己的企业私有云。GAE的整体架构如图12-5所示。+ P6 T* X) I1 N# b
    图 12-5 Google App Engine整体架构2 }& [1 F9 V+ j, L4 I
    GAE云平台主要包含如下几个部分:
    0 L' x1 ^8 Z  a7 V  v0 t2 s●前端服务器。前端的功能包括负载均衡以及路由。前端服务器将静态内容请求7 e% W3 y9 b0 l6 a) ^0 ?, l. U
    转发到静态文件服务器,将动态内容请求转发到应用服务器。
    & s5 L; ?8 }+ F; A●应用服务器。应用服务器装载应用的代码并处理接收到的动态内容请求。
    5 }' c' a% q: m5 ]* p! p# |6 b●应用管理节点(App Master)。调度应用服务器,将应用服务器的变化通知前+ R" O& {! R7 X- w
    端,从而前端可以将访问流量切换到正确的应用服务器。- i1 o. O+ v! C  o
    ●存储区。包括DataStore、MemCache以及BlobStore三个部分。应用的持久化数
    ! P) h! e+ k: E% X9 g* U0 z. J据主要存储在DataStore中,MemCache用于缓存,BlobStore是DataStore的一种补充,
    ) k) @3 t; X5 d/ U4 _用于存储大对象。
    # m) s! J( V+ s7 P" t0 M7 H●服务区。除了必备的应用服务器以及存储区之外,GAE还包含很多服务,比如& |" \% o! C2 s/ K  E1 V6 y$ A
    图像处理服务(Images)、邮件服务、抓取服务(URL fetch)、任务队列(Task
    / o1 D3 x; U: VQueue)以及用户服务(Users)等。
    6 p9 V( @$ \8 ^- g另外,作为PaaS服务,GAE还提供了如下两种工具:, t* V0 [; k+ K+ d
    ●本地开发环境。GAE中大量采用私有API,因此专门提供了本地开发和调试的, t. X! O2 `2 F# H
    Sandbox环境以及SDK工具。! o& C; l- z2 c  T% _9 G: A; W8 P" v
    ●管理工具。GAE提供Web管理工具用于管理应用并监控应用的运行状态,比如. s" D- l/ R: o/ o+ w
    资源消耗、应用日志等。1 e. C3 _% z; s
    GAE的核心组件为应用服务器以及存储区,其中,应用服务器用于托管GAE平: ^- E2 O8 ^* v0 [
    台用户的应用程序,存储区提供云存储服务。下面分别介绍这两个部分。
    4 f+ T/ k! X3 c& {- a+ h7 Z1.应用服务器; ?) x$ B# r' l, m6 t
    GAE对外不提供虚拟机服务,因此,对于不同的开发语言,需要提供不同的应
    ! Q2 P. i# P! m$ V- Z$ Z用服务器实现,目前支持Python和Java两种语言。每一台应用服务器可能运行多个9 f, Z+ i9 v7 g' b+ o
    GAE平台用户的应用,为了防止应用程序之间互相干扰,应用程序将在受限制的“沙' R* `9 F) O) s9 q
    盒”环境中运行。“沙盒”环境中的GAE应用程序无法执行以下操作:6 m( V: @7 R( e! M" x1 V: G
    ●写入到本地文件系统。应用程序必须使用数据存储区来存储持久化数据。3 m8 f$ s4 ?) A: I( B, q9 {
    ●打开套接字或者直接访问其他主机。应用程序必须使用网址提取服务(URL
    ) @  X6 m, {1 ]: mFetch)分别从端口80和443上的其他主机发出HTTP和HTTPS请求。
    6 z- c. g$ U+ {6 J- [; Y●生成子进程或者线程。应用程序的网络请求必须在单个线程中处理,并且必须
      F3 G- p# S$ v3 K在几秒内完成,GAE会自动终止响应时间很长的进程以免应用服务器过载。  c% \; X' ]4 E* ~" @/ U. a$ ^
    ●进行其他类型的系统调用。
    ' Y+ S( [. ~+ l% E2.存储区6 b! E4 F; X; G7 ?: K! @
    Datastore是App Engine存储区的核心,底层为6.2节中介绍的Google Metastore系# {+ {; R( A3 r, Q# I2 C
    统。与关系数据库最大的不同点在于,Datastore支持自动增加或者减少存储节点,提
    + O& ~* K8 G' r. o6 M( @5 g供线性扩展能力。App Engine直接将开源的Memcache用作缓存服务,缓存Datastore中
    6 |7 k5 ^; Q1 X( e; p; ^2 T3 ^的热点数据。Datastore不适合存储大对象(Blob对象),因此,App Engine设计了专% R" M8 q3 R0 W' s% F
    门的Blobstore用于支持大对象存储。
    * j& r9 c* M+ Z" a  ]: c除了GAE平台,Google还单独提供了两种云存储服务,Google Cloud Storage以及
    1 v; V- f, O; TGoogle Cloud SQL。其中,Google Cloud Storage与Amazon S3类似,用于存储图片、" N  \) d+ p3 O( K2 N5 @
    视频等大对象数据,Google Cloud SQL与Amazon RDS类似,用于提供分布式关系数) u$ Q% r8 h& j* K5 o
    据库服务。
    0 {; n7 S: ]  \# J8 d12.5.3 Microsoft云平台
    1 X/ u0 r! r, e/ A* T) {2 y& S; HWindows Azure Platform是一个服务平台,用户利用该平台,通过互联网访问微
    0 X& v4 H+ a6 D& B5 H软数据中心的计算和存储服务,它不但支持传统的微软编程语言和开发平台,如C#
    * v8 m' {! [# E4 a  T3 `2 z0 i和.NET平台,还支持PHP、Python、Java等多种非微软编程语言和架构。
    2 a$ x, E5 D* ZWindowsAzure平台包含如下几个部分。
    : F* o& @6 h5 n1 T1 D! o●计算服务) O- s. m2 O4 i! t9 X; B
    Windows Azure平台中每个计算实例是一个运行着64bit的Windows Server 2008的# i7 H5 ~2 q* v0 H# I
    虚拟机,分为三种类型:Web Role实例,Worker Role实例和VM Role实例。其中,2 Y. T3 C/ |, [' S0 v0 C+ F* _8 [
    Web Role实例提前在内部安装了IIS7,用于托管Azure平台用户的Web应用程序;$ G4 }5 x: Z: Q- @2 \5 X
    Worker Role实例设计用来运行各种各样的基于Windows的代码,例如,Worker Role7 q" @  J" W- T; M* b
    实例可以运行一个模拟程序、进行视频处理等,Worker Role与Web Role的不同点在2 u: G5 O- y$ S) H0 n2 f
    于,Worker Role内部并没有安装IIS。一般来说,用户只会用到Web Role和Worker7 o" u/ u# C1 o5 Z
    Role。应用通过Web Role与用户相互作用,然后利用Worker Role进行任务处理。当
    4 `9 r- ?5 r6 x用户需要将本地的Windows Server应用移动到Windows Azure平台时,VM Role将会起
    * h" ?( G# ~; v: }' @' x作用。VM Role除了允许对环境拥有更多的控制权之外,它和Web Role以及Worker
    . r5 h( c1 b/ GRole是没有区别的。与Amazon云平台需要用户提供虚拟机的虚拟映像文件不同的
    # D  _8 r1 ]: u% B* b/ T# W# z' ]是,Azure平台会自动虚拟出虚拟机,处理虚拟机升级,Role实例故障,Azure平台用
    * p; Z4 b3 i' l8 o8 I5 ?" e/ a户只需要专注于如何创建应用程序即可。
    4 G8 I+ d, \" R9 Q# I2 c) N# _●存储服务
    ! n2 u$ q( Y3 C+ d+ f2 XWindows Azure存储服务包括Azure Blob,Table,Queue以及SQL Azure。其中,Azure5 C4 h+ z: X1 K
    Blob存储二进制数据,如图片,照片,视频等个人文件。Azure Table存储更加结构化
    ' c, D+ G/ ]8 M9 O, M! X的数据,支持单张表格上的操作,但是它不同于关系数据库系统中的二维关系表,
    9 J& M4 r" X4 J: Y查询语言也不是大家熟悉的关系查询语言SQL。Azure Queue的作用和微软消息队列
    : ?: O! l. j; v, c(MSMQ)相近,用来支持在Windows Azure应用程序组件之间进行通信。SQL Azure& Z: O8 M4 j, g9 o6 h" v3 k
    则是将微软的关系数据库SQL Server搬到云环境中,提供二维关系表和SQL查询语
    7 A4 ^6 v7 W9 R' a. h, v- b4 D+ U) n" j言。为了提高访问性能,Windows Azure还提供了两种缓存机制:Azure Caching以及/ S* b7 W2 [; ]+ G: {7 K$ k% A
    Azure内容分发网络(CDN)。Azure Caching在数据中心内部缓存热点数据,Azure/ P8 k0 ~; A9 j, y
    CDN在离用户较近的“边缘节点”缓存Azure Blob中的Blob对象。
    6 k! l" a2 w5 w2 C. f●连接服务2 u3 I3 f( z, c1 R+ c) C
    Windows Azure连接服务包括Azure Service Bus以及Azure Connect。Azure Service
    $ T; i, a" E1 f$ A* H$ Y/ v; vBus包含三个部分:Service Bus Queue,Service Bus Topic和Service Bus Relay。其中,
    + g+ [( i8 s8 HService Bus Queue和Service Bus Topic与消息中间件的Queue和Topic模式类似,用于解( Y. K- P4 N) K/ i; O) I! }/ p
    除应用程序之间的耦合。Service Bus Queue提供点对点的通信,保证每个发送者产生
    ( L% l: S0 D: C, ^/ R+ u的消息只被一个接收者获取;Service Bus Topic提供一对多的发布订阅通信,每个发) d" x9 Q+ ]; l9 e  k7 i
    布者发布的消息能被所有的订阅者获取。Service Bus Relay使得Azure平台服务器端可
    & @, w) w. }$ x, D' H  f8 p: R7 A以访问运行在企业内部的本地WCF服务,这些WCF服务通常没有一个固定的IP地6 Q, J" P/ Z0 T. I9 x0 Q/ V, l  n* R
    址,而且被企业防火墙所保护。Azure Connect在Windows Azure应用和本地运行的机$ R+ Z  p# {6 {
    器之间建立一个基于IPsec协议的连接,使得两者更容易结合起来使用。例如,某个8 A8 B( U0 w; v' ]0 m& b
    企业需要将现有的由ASP.NET创建的Windows Server应用移动到Windows Azure Web
    0 S( i! D& e; ?! |3 y' ^/ k4 ORole中区,如果这个应用使用的数据库需要保留在本地机器上,那么Azure Connect技9 ]+ M, U$ O, a% w/ V, K: M% g) k
    术能够使运行在Windows Azure上的应用正常访问本地数据库,甚至连使用的连接字
    . R" Y* i0 x4 N; w9 i" g  o2 e符串都不需要改变。
    : w0 S7 t3 a7 \●工具支持" T( M- y) K- P" V0 p; N% ]5 x$ }& x
    Windows Azure平台不但支持传统的微软编程语言和开发平台如C#和.NET平台,8 R: x- n+ e( c9 d
    还支持PHP、Python、Java、node.js等多种非微软编程语言和架构。Azure平台提供各
    5 a* t' N; l7 @+ d7 Y; ]种语言的SDK以及平台管理工具。
    * }3 x  @0 p$ s# V. @, }+ C图12-6显示了Windows Azure Platform用于托管用户Web程序的整体架构。假设网. p  P2 M; y" v4 A* H: b2 s  \+ }+ t
    站MyWebSite.com托管在Windows Azure平台的某个数据中心内。Azure平台开发者将- D4 X4 x3 Y6 h5 G. _! Q
    Web应用上传到Azure平台,由平台将应用自动部署到Role实例上。在Azure内部,一1 ]# f; b) w, p0 V7 C
    个应用可能运行在一个或者多个Role实例上,将运行同一个应用的Role实例成为一个+ g1 m4 M! Z. n2 m. V- l6 m
    Role实例组,并通过负载均衡器将访问请求按照一定的策略自动分发到其中的Role实
    ! Y1 q: s+ ]! K* a7 Y1 u. H8 m9 I: V例。开发者的Web应用可以使用Azure平台上的存储类服务,包括Azure Blob、
    4 T& B* @8 L. ]% {) tTable、Queue以及SQL Azure。为了提高性能,应用也可以使用Azure Caching缓存热) [6 @7 D1 a: U2 c! w0 L
    点数据,就像使用Memcache一样。3 t/ B( h3 j5 b% ~9 `
    图 12-6 Windows Azure Platform整体架构
    * a* }7 O" n+ X) G. ?, X网站上往往有一些Blob对象,比如图片、视频,这些对象存储在Azure Blob系统* ?  |/ d" R" b, N, n% b
    中,并通过内容分发技术缓存到多个Azure CDN节点。Internet用户访问! K' }( Y/ d1 u  ]
    MyWebSite.com中的Blob时,访问请求将通过DNS定位到CDN节点上,如果CDN缓存( d- n" z  o; k$ Y! D% c& t
    了Blob的副本,直接将副本返回给用户,否则,CDN节点将请求Azure源站中的Azure
    $ h+ X3 n0 b: t5 CBlob存储系统获取Blob对象,这一步操作称为回源。
    ) @. ~" V; B4 a2 j' P  g12.5.4 云平台架构
    4 p) c. I$ C6 ^# Q6 N从托管Web应用程序的角度看,云平台主要包括云存储以及应用运行平台,如图
    4 B3 D9 d4 N8 g) U12-7所示。" P8 n0 J! ~& V/ d( i
    图 12-7 云平台整体架构3 {% |. e  ]6 b) r& [* h' _
    云平台的核心组件包括:云存储组件和应用运行平台组件。下面简单介绍一
    ! V% P) B4 R1 Z下。
    . s8 S/ B% h7 a9 E8 t' g( ?(1)云存储组件
    $ V; u4 ?, F( s. O" Q云存储组件包括两层:分布式存储层以及存储访问层。分布式存储层管理存储
    $ s' U( Y- F) z服务器集群,实现各个存储设备之间的协同工作,保证数据可靠性,对外屏蔽数据
    1 ?  P  m) `9 |, h0 e所在位置,数据迁移,数据复制,机器增减等变化,使得整个分布式系统看起来像! r1 U+ ^* Y3 T7 e* m- g+ ^, v
    是一台服务器。分布式存储层是云存储系统的核心,也是整个云存储平台最难实现
    1 z# ~$ V# Z% r/ P7 S的部分。CDN节点将云存储系统中的热点数据缓存到离用户最近的位置,从而减少
    3 ?# I; H) @) @) A  B' Q用户的访问延时并节约带宽。1 u; {* I9 w. S) l
    存储访问层位于分布式存储层的上一层,该层的主要作用是将分布式存储层的  w+ v7 |3 l5 \0 Y5 K6 p
    客户端接口封装为WebService(基于RESTful,SOAP等协议)服务,另外,该层通过0 x  e; {$ o4 b9 S! ?0 @( u, _. Y
    调用公共服务实现用户认证,权限管理以及计费等功能。存储访问层不是必须的,
    ; F/ U" o2 \- u! Z2 [云存储平台中的计算实例也可以直接通过客户端应用编程接口(API)访问分布式存
    6 q3 `. ?8 t& C* @储层中的存储系统。9 t1 L, A0 g3 n$ S# \% {
    (2)应用运行平台组件0 ~- j3 E3 x; m. [
    应用运行平台的主体为计算实例,计算实例最主要的功能有两个:开发者的应
    ; \' j) s0 b% ^/ \/ X* _用程序运行环境以及离线任务处理。不同的云计算平台厂商的计算实例形式往往不
    * `! p/ T/ j1 V同:AWS(Amazon Web Service)平台中的计算实例为Amazon的弹性计算(Elastic# f+ ?6 m( ~5 _$ z$ P
    Computing,EC2)虚拟机,它们既用于托管开发者的Web程序,又可用来执行Hadoop
    : \0 u0 d' j1 O$ J9 C: dMapReduce计算或者图像以及视频转换等离线任务;GAE(Google App Engine)平台; u; c% V, L9 W. p+ w9 z
    中的计算实例分为前端实例(Frontend Instance)以及后端实例(Backend Instance),
    ! Z1 V4 n) x+ S  S5 K* t其中,前端实例为GAE特有的Python、Java以及Go语言运行容器,用于托管开发者使% s! y% B0 S. `8 q
    用Python、Java或者Go语言开发的Web程序,后端实例执行运行时间较长的离线任
    & q4 W  A7 _8 ~! B* z  y务;微软的Azure平台(Windows Azure Platform)的计算实例为运行着一个64位的: R0 I4 s" J4 ^$ c
    Windows Server 2008的虚拟机,分为Web Role、Worker Role以及VM Role三种角色,
    9 [- U( x+ w8 E4 I$ U其中,Web Role用于托管Web程序,Worker Role用于执行视频处理等离线计算任务。5 K! l) X: h- s1 z3 I! @& p7 B1 R
    多个计算实例构成一个计算实例组,当实例组中的某个实例出现故障时,能够
    / T2 @: X( F8 T  x& a0 M/ [自动将负载迁移到其他的实例,并且支持动态增加或者减少实例从而使得实例组的5 H6 {, ?/ ?) a! C
    处理能力具有动态可伸缩性。运行平台的最前端是路由及负载均衡组件,它将用户
    4 |7 F, A4 R0 e9 f" z的请求按照一定的策略发送到合适的计算实例。
    - f5 u1 m7 K. B$ {) O( m, i云存储平台还包含一些公共服务,这些基础服务由云存储组件及运行平台组件
    + V" I7 x% E' K% L' R' e; R5 i2 L所共用,如下所示:8 P! w: K! k& \' C6 M3 `
    ●消息服务。消息服务将执行流程异步化,用于应用程序解耦。计算实例一般分8 F6 Y( b7 z  l
    为处理Web请求的前台实例以及处理离线任务的后台实例,在很多情况下,前台实例3 o$ _' F4 E/ X+ m% I# d% t$ |
    处理Web请求的过程中需要启动运行在后台的任务,这种需求可以通过消息服务实5 `  J: r- \8 }# p7 S. d
    现。
    # `7 R& [, m1 r; T●缓存服务。缓存服务用于存储云存储系统中的读多写少的热点数据,从而加速  G0 N: u  a; A$ g$ h  f
    查询,减少对后端存储系统压力。大多数云存储平台提供Memcache服务。4 M7 ?& F) D/ B
    ●用户管理。用户管理主要功能是用户身份认证,确保用户的身份合法,并存储4 R! G* s0 V. A$ ^+ Z
    用户相关的个人信息。云计算平台一般支持单点登录,在多个应用系统中,用户只
    8 L) i9 B' {# a  f需要登录一次就可以访问所有相互信任的系统。+ B9 V) e. E: j
    ●权限管理。为多个服务提供集中的权限控制,以确保应用和数据只能被有授权: r4 d$ O0 r* g7 v
    的用户访问。云存储系统一般会维护一系列的访问策略,每一条策略表示某个用户2 a' c5 X, L2 o" I7 |! ]  Z
    是否对某个资源具有某种操作权限。
    3 H& q/ ]+ Z9 u. m●安全服务。安全服务包括Web漏洞检测,网页挂马检测,端口安全检测,入侵% J% c9 k8 T8 t& Q. R3 ?! E9 [  t9 r
    检测,分布式拒绝服务攻击(Distributed Denial of Service,DDoS)缓解等。Web漏洞' C" G' q% V9 J0 \4 S% \+ Y) `8 P
    检测提供对应用的SQL注入漏洞、XSS跨站脚本漏洞、文件包含等高危安全漏洞进行
    . o& b/ ~, h! T) G4 @9 P! h检测;网页挂马检测通过静态分析技术和虚拟机沙箱行为检测技术相结合,对网站
    - M$ ?% z4 t. f: I9 w8 B进行挂马检测;端口安全检测通过定期扫描服务器开放的高危端口,降低系统被入
    5 v8 S6 R* m8 {/ \$ ?/ {) K侵的风险;主机入侵检测通过主机日志安全分析,实时侦测系统密码破解,异常IP( {0 n( ~' ^: e( `9 E3 u  g
    登录等攻击行为并实时报警;DDos缓解技术能够抵御SYN flood以及其他拒绝服务攻- h: E7 `8 X7 M; b3 z* k
    击。: e$ }7 e2 c, B% M2 r0 T
    ●计费管理。利用底层的监控系统所采集的数据对每个用户使用的资源和服务进* p- c- c9 u& A4 y
    行统计,计算出用户的使用费用,并提供完善和详细的报表。云存储系统计费涉及
    7 s9 |  L+ x& E6 U的参数一般包括:CPU时间,网络出口带宽,存储量以及服务调用次数(包括读写
    5 `; Z% d; H# Z+ B& b8 M7 L$ zAPI调用次数)。3 t/ ]& }/ d0 w
    ●资源管理。管理云存储平台中的所有服务器资源,将应用程序或者虚拟机映射
    1 J! L; j- z( g8 v& C8 s) p自动部署到合适的计算实例,另外,自动调整计算实例的数量来帮助运行于其上的
    5 {' b8 N* \) Q1 d9 w; Y/ ^应用更好地应对突发流量。当计算实例发生故障时,资源管理系统还需要通知前端
    ( h" ~0 [# P- T/ |; j的负载均衡层,将流量切换到其他计算实例。
      b/ f0 s0 }% y* M1 i& m●运维管理。云存储平台的运维需要做到自动化,从而降低运维成本,一般来3 Y( s  `$ k4 `5 ^% m% r
    说,有一套专门的Web运维系统用于系统上下线,批量升级系统程序版本等。
    4 @% w; q* Q0 H# H' O/ y' r●监控系统。监控系统有两个层面,其一是资源层面,即资源的运行情况,比如
    , O, o" ^/ }9 [' @. CCPU使用率、内存使用率和网络带宽利用率、Load值等,需要注意的是,云计算平1 T# C3 q: F: I1 A! y3 d/ R
    台除了监控物理机资源,还需要监控虚拟机资源的运行情况;其二是应用层面,主
    ; G( l) t; g9 d7 l4 G  O要记录应用每次请求的响应时间、读写请求数等。+ }2 P3 A: {$ ^1 G/ a- g6 `
    8 X1 w( I1 m3 A0 u! N- w7 b

    - p; o. B2 o9 \: ^- t5 K
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-5-6 18:08 , Processed in 0.086206 second(s), 35 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表