java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2679|回复: 0

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

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

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66375

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

    发表于 2017-3-16 16:09:57 | 显示全部楼层 |阅读模式
    12.5 云平台整体架构2 ~! _/ ~- @+ u
    云存储是云计算的存储部分,理解云存储架构的前提是理解云平台整体架构。
    / K. l) R( c' Y1 W, z6 y云计算按照服务类型大致可以分为三类:基础设施即服务(IaaS)、平台即服务/ l- R4 [' h9 |+ j4 B& {3 O9 x6 w2 l8 q
    (PaaS)以及软件即服务(SaaS),如图12-3所示。9 O, D) h' |: q( n$ v. b! r
    图 12-3 云计算服务类型
    / J' G' ^- w' [% P% XIaaS将硬件设备等基础资源以虚拟机的形式封装成服务供用户使用,如Amazon/ Y- F0 ]. X7 f% o0 j2 r( I
    云计算AWS(Amazon Web Service)的弹性计算云EC2,PaaS进一步抽象硬件资源,3 i! ?4 H  ~$ @. c  r7 M
    提供用户应用程序的运行环境,开发者只需要将应用程序提交给PaaS平台,PaaS平
    ( _: V/ V) R/ Z台会自动完成程序部署,处理服务器故障,扩容等问题,典型的如(Google App
    . o- G+ J4 H; ^& J0 `; MEngine)GAE。另外,微软的云计算平台Windows Azure Platform也可大致归入这一
    $ @! v( k2 [" X! u& D类。SaaS的针对性更强,它将某些特定应用软件封转成服务,如Salesforce公司提供
    5 f; k6 Z5 N' s; G0 I$ C$ a' d的在线客户端管理CRM服务,Google的企业应用套件Google Apps等。, `* e9 l2 G4 d" _1 n
    本节首先分别介绍Amazon、Google以及Microsoft这三个云平台的整体架构,其7 z' s  e- W8 r3 d: U0 a/ l
    中,Amazon提供IaaS服务,Google和Microsoft提供PaaS服务,接着介绍一般情况下云* j( M1 X( N, ^- o5 D1 ?/ p
    平台的整体架构。8 ~3 ]: w# B. Z  G. D$ ^
    12.5.1 Amazon云平台6 d6 y' v8 j$ Q5 @% Q- F
    Amazon Web Services(AWS)是Amazon构建的一个云计算平台的总称,它提供
    : U) ~! w. A% r9 S7 j4 `* S& W了一系列云服务。通过这些服务,用户能否访问和使用Amazon的存储和计算基础设
    2 O9 s7 o# ?  Q- f施。如图12-4所示,AWS平台分为如下几个部分:: {, r" k! o/ Y4 M& r1 p; V
    图 12-4 AWS平台整体架构
    5 h8 A2 S  j3 p+ q. b●计算类:核心产品为弹性计算云EC2(Elastic Computing)。EC2几乎可以认为
    " [. Y5 n+ M2 |- [. a) A1 A是迄今为止云计算领域最为成功的产品,通俗地讲,就是提供虚拟机,用户的应用; i9 V8 g$ S. f" ]( o7 R& I) v) ]
    程序部署在EC2实例中。EC2架构的核心是弹性伸缩,当托管的应用程序访问量变化! p: c: b' @# {! S
    时能够自动增加或者减少EC2实例,并通过弹性负载均衡技术将访问请求分发到新增
    4 K' F: F- F5 I% @/ s- o" Q的EC2实例上。在计费模式上,EC2按照使用量计费,而不是采用传统的预付费方# P2 B: f# t. ^! b. ~
    式。EBS(Elastic Block Store)是一个分布式块设备,可以像本地的磁盘一样直接挂
    9 z) s# z/ X+ M载在EC2实例上,与本地磁盘不同的是,保存到EBS的数据会由EBS的管理节点自动
    1 Z5 V! Y1 T: `- [7 W0 ?$ P复制到多个存储节点上。EC2实例的本地存储是不可靠的,如果EC2实例出现故障,
    : x2 K! P1 `6 {; s. p本地存储上保存的数据将会丢失,而保存到EBS上的数据不会丢失。EBS用于替代' U2 x8 j/ o: ^3 Q- }. w
    EC2实例的本地存储,从而增强EC2可靠性。, R/ s. O' q. l1 r, R6 u
    ●存储类:存储类产品较多,包括简单对象存储S3,表格存储系统SimpleDB、
    1 a+ q8 o" g* q$ R6 O, C' xDynamoDB、分布式关系数据库服务(Relational Datastore Service,RDS)以及简单消
    . M2 C! i4 o. B5 R  l* |- ]  f7 S; d* `息存储(Simple Queue Service,SQS)。S3用于存储图片、照片、视频等大对象,为. F1 r. D0 P6 f. H, b0 p
    了提高访问性能,S3中的对象还能够通过CloudFront缓存到不同地理位置的内容分发
    # v% ]& z8 ~. U3 `' o网络(Content Delivery Network,CDN)节点。SimpleDB和DynamoDB是分布式表格系
    0 u; C% F7 ~5 c( {* {0 m9 S# v统,支持对一张表格进行读写操作;RDS是分布式数据库,目前支持MySQL以及# v6 l  o- |. v8 h$ i/ U) p5 z
    Oracle两种数据库。SQS主要用于支持多个任务之间的消息传递,解除任务之间的耦' R# U$ d3 U$ ?& J( l1 D
    合,相当于传统的消息中间件(Message Queue)。为了提高访问性能,可以使用
    . R: f) Q, d) f& x# X: XElasticCache缓存存储系统中的热点数据。, \" L/ m" P" }
    ●工具支持:AWS支持多种开发语言,提供Java、Ruby、Python、PHP、Windows' v4 R, z; V3 B& n0 ?' T0 E# q8 a
    &.NET以及Android和iOS的工具集。工具集中包含各种语言的SDK、程序自动部署
    0 V1 Z' B7 k0 n$ d以及各种管理工具。另外,AWS通过CloudWatch系统提供丰富的监控功能。
    , C! \& }4 B( n, R. i. V, N- b$ cAWS平台引入了区域(Zone)的概念。区域分为两种:地理区域(Region  }8 _! x7 J0 l9 j# \! \0 p) |
    Zone)和可用区域(Availability Zone),其中地理区域是按照实际的地理位置划分% |7 X- m- \* W2 Q; c2 H( _4 h
    的,而可用区域一般是按照数据中心划分的。
    , J$ R8 U% M! u4 F+ x& b9 B假设网站MyWebSite.com托管在AWS平台的某个可用区域中。AWS开发者将Web, F. @; b# U# e" K% C; i
    应用上传到AWS平台并部署到指定的EC2实例上。EC2实例一般分成多个自动扩展组( K# P9 r* s/ V" R$ k8 `& y( B& `2 o
    (Auto Scaling Group),并通过弹性负载均衡(Elastic Load Balancing)技术将访问; Z8 e& I* U6 [& d! Q
    请求自动分发到自动扩展组内的EC2实例。开发者的Web应用可以使用AWS平台上的( d# q! [  N- k" h& }& {/ A3 S
    存储类服务,包括S3、SimpleDB、DynamoDB、RDS以及SQS。' _( a# J% M% L4 \2 C2 c* j8 B6 G, S
    网站上往往有一些大对象,比如图片、视频,这些大对象存储在S3系统中,并
    1 y7 A  Y+ x1 C5 O3 {/ K通过内容分发技术缓存到多个CloudFront节点。当Internet用户浏览MyWebSite.com
    & A0 Y- e" b. f2 N7 ]9 s9 t6 @时,可能会请求S3中的大对象,这样的请求将通过DNS按照一定的策略定位到
      B, M+ T* l2 l, {8 k" I5 ^$ vCloudFront节点。CloudFront首先在本地缓存节点查找对象,如果不存在,将请求源/ |0 m% V% i" T# U  B
    站获取S3中存储的对象数据,这一步操作称为回源。5 h# E* j* a' j8 _6 m$ V
    12.5.2 Google云平台
      G5 {: o; r/ tGoogle云平台(Google App Engine,GAE)是一种PaaS服务,使得外部开发者可
    ( U  T" V( I: T* j8 I: U* G3 P以通过Google期望的方式使用它的基础设施服务,目前支持Python和Java两种语言。7 l8 u9 g6 o0 Y  j
    GAE虽然在产品上相比Amazon云平台还有较大的差距,但在技术上是成功的,尤其( N! H4 D# Q- B' T
    适用于企业构建自己的企业私有云。GAE的整体架构如图12-5所示。
    5 M$ M/ e. J: t( S2 w' ]) s" \+ y图 12-5 Google App Engine整体架构& _! o' n; E# G: q
    GAE云平台主要包含如下几个部分:
    ! n7 G/ L" F3 j●前端服务器。前端的功能包括负载均衡以及路由。前端服务器将静态内容请求
    * P3 y  ^% h+ t6 v  `转发到静态文件服务器,将动态内容请求转发到应用服务器。$ y: Q/ R# C" D3 X* z
    ●应用服务器。应用服务器装载应用的代码并处理接收到的动态内容请求。5 P" L0 [9 y% \1 F
    ●应用管理节点(App Master)。调度应用服务器,将应用服务器的变化通知前
    ; D* }: I1 i/ l$ e* d8 V8 \端,从而前端可以将访问流量切换到正确的应用服务器。
    . E3 F4 G4 Q  ]) N# m●存储区。包括DataStore、MemCache以及BlobStore三个部分。应用的持久化数7 w3 b" d7 y( ~: e/ F
    据主要存储在DataStore中,MemCache用于缓存,BlobStore是DataStore的一种补充,# u& L. w* v1 H3 B, X
    用于存储大对象。3 W( {8 Q5 Q, b# j$ r% K/ z
    ●服务区。除了必备的应用服务器以及存储区之外,GAE还包含很多服务,比如
    5 \7 @0 ~5 K; h- y  q, _图像处理服务(Images)、邮件服务、抓取服务(URL fetch)、任务队列(Task
    8 Y! c3 [5 K9 Y* {+ XQueue)以及用户服务(Users)等。" c# M( D+ V) q3 C' o
    另外,作为PaaS服务,GAE还提供了如下两种工具:
    0 J! k! |/ \. q6 i2 @●本地开发环境。GAE中大量采用私有API,因此专门提供了本地开发和调试的
    1 V) i% ~! q% SSandbox环境以及SDK工具。7 L% P4 w8 A! g# }. E  i! W
    ●管理工具。GAE提供Web管理工具用于管理应用并监控应用的运行状态,比如
      Y3 h7 P2 c* q) ?. a资源消耗、应用日志等。
    . p7 U* q8 H* P: XGAE的核心组件为应用服务器以及存储区,其中,应用服务器用于托管GAE平, s' m) A+ G* r+ [; p! \
    台用户的应用程序,存储区提供云存储服务。下面分别介绍这两个部分。- j& e, C& s! ~& ^5 w) X
    1.应用服务器
    # a- `, L( N6 wGAE对外不提供虚拟机服务,因此,对于不同的开发语言,需要提供不同的应; v' q/ Q1 m# @& C4 v5 J- Y1 t% X
    用服务器实现,目前支持Python和Java两种语言。每一台应用服务器可能运行多个- Z) R# c) {% J' L- M
    GAE平台用户的应用,为了防止应用程序之间互相干扰,应用程序将在受限制的“沙$ `6 \2 `) V. @0 I
    盒”环境中运行。“沙盒”环境中的GAE应用程序无法执行以下操作:
    6 a* w% w) a6 p* A" ^& d8 Q●写入到本地文件系统。应用程序必须使用数据存储区来存储持久化数据。
    - ]9 i+ ]" L# S0 L& ]: H●打开套接字或者直接访问其他主机。应用程序必须使用网址提取服务(URL& N. y. S2 j8 y$ ?! q
    Fetch)分别从端口80和443上的其他主机发出HTTP和HTTPS请求。
      {" a6 H7 U2 u●生成子进程或者线程。应用程序的网络请求必须在单个线程中处理,并且必须
    5 M* U1 {0 l; M9 r3 C- ?( G, L$ M在几秒内完成,GAE会自动终止响应时间很长的进程以免应用服务器过载。
    6 O/ h  ~! h+ h9 f8 C●进行其他类型的系统调用。
    " T( o" I8 h  j! v  q$ j$ \2.存储区
    , X& o' |5 }. w" T$ D- C9 HDatastore是App Engine存储区的核心,底层为6.2节中介绍的Google Metastore系
    9 y; n' p! M6 C% W( s4 M  T统。与关系数据库最大的不同点在于,Datastore支持自动增加或者减少存储节点,提5 t+ J% M1 {% t; K
    供线性扩展能力。App Engine直接将开源的Memcache用作缓存服务,缓存Datastore中3 a" T& y$ M6 J& _3 o/ ?9 D  K
    的热点数据。Datastore不适合存储大对象(Blob对象),因此,App Engine设计了专
    5 m8 `% G& F% D4 L* F, P6 w8 X6 W门的Blobstore用于支持大对象存储。5 ?9 e8 G- g! j1 `
    除了GAE平台,Google还单独提供了两种云存储服务,Google Cloud Storage以及
    " m2 \6 ^; c, q$ b2 G" m0 _Google Cloud SQL。其中,Google Cloud Storage与Amazon S3类似,用于存储图片、: g" S) l! @6 R# P% ^5 w
    视频等大对象数据,Google Cloud SQL与Amazon RDS类似,用于提供分布式关系数
    - f2 P9 h% d/ v9 m8 |0 G% p据库服务。
    ! u0 ?+ U% Y/ _/ Q0 t12.5.3 Microsoft云平台
    - V0 L0 L! @; H, J" j5 M! }' D4 _Windows Azure Platform是一个服务平台,用户利用该平台,通过互联网访问微
    & E0 M5 F+ x: l# m( v4 b9 }4 T% a软数据中心的计算和存储服务,它不但支持传统的微软编程语言和开发平台,如C#: X( X* \+ q$ W7 k  ]# K4 ~
    和.NET平台,还支持PHP、Python、Java等多种非微软编程语言和架构。
    . n2 g5 G" T( |- H. D  _4 |9 XWindowsAzure平台包含如下几个部分。
    7 m' N+ Y9 V: V●计算服务4 T! o3 |# E& m4 }
    Windows Azure平台中每个计算实例是一个运行着64bit的Windows Server 2008的; u+ g. Z' C$ V7 M1 a
    虚拟机,分为三种类型:Web Role实例,Worker Role实例和VM Role实例。其中,6 Y( B6 u4 Q/ v# ]. V: p
    Web Role实例提前在内部安装了IIS7,用于托管Azure平台用户的Web应用程序;
    3 m2 Y2 v8 L7 A, y  H8 r' Q6 }Worker Role实例设计用来运行各种各样的基于Windows的代码,例如,Worker Role
    : p5 I; b1 ]* J' i实例可以运行一个模拟程序、进行视频处理等,Worker Role与Web Role的不同点在
    9 |( M5 }7 [; \7 m; x于,Worker Role内部并没有安装IIS。一般来说,用户只会用到Web Role和Worker# Y8 t% @3 n) f! B3 A; {: R
    Role。应用通过Web Role与用户相互作用,然后利用Worker Role进行任务处理。当& t1 t6 x# ~# J% H! }9 G1 K
    用户需要将本地的Windows Server应用移动到Windows Azure平台时,VM Role将会起9 o0 f' L! a6 n' s
    作用。VM Role除了允许对环境拥有更多的控制权之外,它和Web Role以及Worker" _3 Q/ K) z5 l9 k
    Role是没有区别的。与Amazon云平台需要用户提供虚拟机的虚拟映像文件不同的1 g9 a5 C% Y. Q/ U# W% e! a4 I& T
    是,Azure平台会自动虚拟出虚拟机,处理虚拟机升级,Role实例故障,Azure平台用
    7 Z7 m4 L9 b; \) \2 \户只需要专注于如何创建应用程序即可。
    - v2 R. z5 x5 m0 ^/ O●存储服务3 r2 h$ \* f5 }% C5 g3 U
    Windows Azure存储服务包括Azure Blob,Table,Queue以及SQL Azure。其中,Azure6 F" [+ a9 p% j* w* \! s
    Blob存储二进制数据,如图片,照片,视频等个人文件。Azure Table存储更加结构化# |5 ~3 ~" \( ?& B5 o9 x
    的数据,支持单张表格上的操作,但是它不同于关系数据库系统中的二维关系表,
    : H- t2 ^6 b8 \0 h查询语言也不是大家熟悉的关系查询语言SQL。Azure Queue的作用和微软消息队列
    0 Z, w' V8 g0 S. X(MSMQ)相近,用来支持在Windows Azure应用程序组件之间进行通信。SQL Azure4 C; R( e9 M8 w6 e( z
    则是将微软的关系数据库SQL Server搬到云环境中,提供二维关系表和SQL查询语
    3 I$ w# \7 E* k/ }5 L: g6 V8 ?言。为了提高访问性能,Windows Azure还提供了两种缓存机制:Azure Caching以及
    ) i5 V4 }& a; I# T: W8 G% ]4 VAzure内容分发网络(CDN)。Azure Caching在数据中心内部缓存热点数据,Azure
    " y" H9 Y2 |( p; A5 j* WCDN在离用户较近的“边缘节点”缓存Azure Blob中的Blob对象。5 a' K) b6 d/ w! ]5 \% K
    ●连接服务
    5 k6 F  K8 C3 x& ~7 }Windows Azure连接服务包括Azure Service Bus以及Azure Connect。Azure Service
    3 S+ L  }; E3 b& s5 G; GBus包含三个部分:Service Bus Queue,Service Bus Topic和Service Bus Relay。其中,
    * }2 K$ K& Z1 I7 `1 c! uService Bus Queue和Service Bus Topic与消息中间件的Queue和Topic模式类似,用于解( g. r$ \' L" I3 m
    除应用程序之间的耦合。Service Bus Queue提供点对点的通信,保证每个发送者产生
    ( o2 S" x& m! u的消息只被一个接收者获取;Service Bus Topic提供一对多的发布订阅通信,每个发
    / {  H" g; S- {$ \8 d9 @, `布者发布的消息能被所有的订阅者获取。Service Bus Relay使得Azure平台服务器端可
    & J/ d5 m- e4 y. M3 k3 @. E- G以访问运行在企业内部的本地WCF服务,这些WCF服务通常没有一个固定的IP地
    1 F  S+ ?6 A7 X- `3 C. D3 a+ c% d址,而且被企业防火墙所保护。Azure Connect在Windows Azure应用和本地运行的机3 }: C( v% ?1 C% r' Z4 Z8 c6 p
    器之间建立一个基于IPsec协议的连接,使得两者更容易结合起来使用。例如,某个
      r) ?  L, f5 j, z0 \1 W企业需要将现有的由ASP.NET创建的Windows Server应用移动到Windows Azure Web, @/ p- E/ k9 V
    Role中区,如果这个应用使用的数据库需要保留在本地机器上,那么Azure Connect技3 H0 k' N0 g9 C+ r6 h
    术能够使运行在Windows Azure上的应用正常访问本地数据库,甚至连使用的连接字
    - ?; o0 z3 b4 _6 L* G; z& g: N- @符串都不需要改变。
      s; z/ {$ b' {9 W+ d# a4 Z4 ?* H# \●工具支持1 p7 p- l0 D1 a
    Windows Azure平台不但支持传统的微软编程语言和开发平台如C#和.NET平台,, v, ~4 b% e) q( m
    还支持PHP、Python、Java、node.js等多种非微软编程语言和架构。Azure平台提供各" H- ^6 i) W( a4 K& Q+ ~% t
    种语言的SDK以及平台管理工具。
    , b+ w+ H% c3 }2 }- T) a5 R6 Q5 V图12-6显示了Windows Azure Platform用于托管用户Web程序的整体架构。假设网
    0 i: g( f' M+ Q# N: B站MyWebSite.com托管在Windows Azure平台的某个数据中心内。Azure平台开发者将
    * s6 e& p) _$ h# j8 dWeb应用上传到Azure平台,由平台将应用自动部署到Role实例上。在Azure内部,一: s' m8 V! P! z  X3 A
    个应用可能运行在一个或者多个Role实例上,将运行同一个应用的Role实例成为一个4 q7 R7 B8 C% C6 M7 v8 e, Y
    Role实例组,并通过负载均衡器将访问请求按照一定的策略自动分发到其中的Role实$ X6 i6 @9 h& x8 Z
    例。开发者的Web应用可以使用Azure平台上的存储类服务,包括Azure Blob、
    & k' b5 t' L. c0 [- Z6 L8 ^4 L7 cTable、Queue以及SQL Azure。为了提高性能,应用也可以使用Azure Caching缓存热0 J  P' r5 r, t& ^7 p
    点数据,就像使用Memcache一样。
    : Z  ]: W6 v0 b- l6 w% `9 |图 12-6 Windows Azure Platform整体架构/ z4 }# r+ Z9 P3 s# j  k9 M3 j
    网站上往往有一些Blob对象,比如图片、视频,这些对象存储在Azure Blob系统& L/ ^7 r/ k+ X7 V
    中,并通过内容分发技术缓存到多个Azure CDN节点。Internet用户访问" |8 y8 o+ h) b, |& Q
    MyWebSite.com中的Blob时,访问请求将通过DNS定位到CDN节点上,如果CDN缓存
    - `, e* d1 D2 k了Blob的副本,直接将副本返回给用户,否则,CDN节点将请求Azure源站中的Azure
    . E3 _- }/ l  _- zBlob存储系统获取Blob对象,这一步操作称为回源。
    " a  R2 {$ ^% i( \! ]12.5.4 云平台架构5 \6 f4 N) I, k0 f
    从托管Web应用程序的角度看,云平台主要包括云存储以及应用运行平台,如图4 q4 {) K  W- f7 ?2 J
    12-7所示。2 ]2 `4 ]6 B5 g0 _) f' D* B$ Z" c
    图 12-7 云平台整体架构
    . I8 n0 e  k: Q1 i$ `云平台的核心组件包括:云存储组件和应用运行平台组件。下面简单介绍一
    + v* q: k3 ^# Z1 }; v下。
    . K: r8 F* E7 e' S. C(1)云存储组件
      r- x  A) H5 c0 f云存储组件包括两层:分布式存储层以及存储访问层。分布式存储层管理存储0 h( {* U) p, E5 M/ h! d
    服务器集群,实现各个存储设备之间的协同工作,保证数据可靠性,对外屏蔽数据% t* e; c/ b2 f6 V
    所在位置,数据迁移,数据复制,机器增减等变化,使得整个分布式系统看起来像
    4 H1 g" X2 M! p* v; \  s是一台服务器。分布式存储层是云存储系统的核心,也是整个云存储平台最难实现
    & ~2 D4 O/ L8 Q的部分。CDN节点将云存储系统中的热点数据缓存到离用户最近的位置,从而减少: [9 e% A3 l; J0 ?6 z- [$ A
    用户的访问延时并节约带宽。
    . w, e& a/ {5 |/ ~  f* j( p存储访问层位于分布式存储层的上一层,该层的主要作用是将分布式存储层的
    9 s8 U  i9 G. s- c) L4 s8 \% U客户端接口封装为WebService(基于RESTful,SOAP等协议)服务,另外,该层通过# m; }" \2 |) g# M! ^, @
    调用公共服务实现用户认证,权限管理以及计费等功能。存储访问层不是必须的,
    # X- S9 r. ^0 P) x. {2 M" ^* q/ ^# ]云存储平台中的计算实例也可以直接通过客户端应用编程接口(API)访问分布式存: q3 W$ z  Z! A! B5 p& x
    储层中的存储系统。- C/ y7 F" T3 L
    (2)应用运行平台组件
    : s, F& T9 @+ }! {9 R+ \应用运行平台的主体为计算实例,计算实例最主要的功能有两个:开发者的应
    + e2 s/ l6 R# q' l9 \/ b用程序运行环境以及离线任务处理。不同的云计算平台厂商的计算实例形式往往不8 R( t7 s) f" t3 q7 j
    同:AWS(Amazon Web Service)平台中的计算实例为Amazon的弹性计算(Elastic
    ' e' e4 S- j+ X% E0 nComputing,EC2)虚拟机,它们既用于托管开发者的Web程序,又可用来执行Hadoop; ]# A% f4 l& n: v' M3 c- N. @6 L, r
    MapReduce计算或者图像以及视频转换等离线任务;GAE(Google App Engine)平台0 b7 ?& y$ r+ z% j; V) V5 [  H7 d8 a, t
    中的计算实例分为前端实例(Frontend Instance)以及后端实例(Backend Instance),' I2 ~- h- q- ]
    其中,前端实例为GAE特有的Python、Java以及Go语言运行容器,用于托管开发者使0 q: B" w0 Q# k3 k
    用Python、Java或者Go语言开发的Web程序,后端实例执行运行时间较长的离线任
    * \7 X4 F9 k3 E+ W) d务;微软的Azure平台(Windows Azure Platform)的计算实例为运行着一个64位的* `9 G  T" O9 C/ A$ N
    Windows Server 2008的虚拟机,分为Web Role、Worker Role以及VM Role三种角色,
    . q8 G( j8 X; f2 N其中,Web Role用于托管Web程序,Worker Role用于执行视频处理等离线计算任务。) s- o. h1 j; H% K2 }, A' p/ G6 h
    多个计算实例构成一个计算实例组,当实例组中的某个实例出现故障时,能够
    % }1 z( r# t6 T/ O  M自动将负载迁移到其他的实例,并且支持动态增加或者减少实例从而使得实例组的
    " ^* U3 O$ d3 U0 l8 a; D处理能力具有动态可伸缩性。运行平台的最前端是路由及负载均衡组件,它将用户
    . u  P  b. Q. b1 ^4 C- f的请求按照一定的策略发送到合适的计算实例。
    6 M; b! b6 L/ n云存储平台还包含一些公共服务,这些基础服务由云存储组件及运行平台组件6 j, g) j) ^6 C$ k5 u
    所共用,如下所示:1 e7 t# m$ l/ F+ t8 h! `0 ?& }* b
    ●消息服务。消息服务将执行流程异步化,用于应用程序解耦。计算实例一般分
    8 U+ t* v; _: P! r4 s% A为处理Web请求的前台实例以及处理离线任务的后台实例,在很多情况下,前台实例6 U% J6 h# c$ o2 w% F0 v/ K) g
    处理Web请求的过程中需要启动运行在后台的任务,这种需求可以通过消息服务实! N: x, i9 [% W# R
    现。2 i$ F  A& ]# e7 o8 V. ]7 @
    ●缓存服务。缓存服务用于存储云存储系统中的读多写少的热点数据,从而加速0 x% T0 B5 J7 [  q" U% R; I
    查询,减少对后端存储系统压力。大多数云存储平台提供Memcache服务。/ Z+ J6 H+ b0 k6 ^" F  l
    ●用户管理。用户管理主要功能是用户身份认证,确保用户的身份合法,并存储
    % w8 g; e& s2 ], H# C用户相关的个人信息。云计算平台一般支持单点登录,在多个应用系统中,用户只3 k4 B' V! i  E" m
    需要登录一次就可以访问所有相互信任的系统。2 O+ m; V( w" T1 u
    ●权限管理。为多个服务提供集中的权限控制,以确保应用和数据只能被有授权) {" z& k+ c/ `
    的用户访问。云存储系统一般会维护一系列的访问策略,每一条策略表示某个用户' ]/ v. ^* |; o( ?! @  B0 a
    是否对某个资源具有某种操作权限。( |5 Z1 I% x8 r6 G$ x! ^
    ●安全服务。安全服务包括Web漏洞检测,网页挂马检测,端口安全检测,入侵* X+ r; S! c/ H$ k6 R1 I7 W
    检测,分布式拒绝服务攻击(Distributed Denial of Service,DDoS)缓解等。Web漏洞
    3 M' y" S# K* F6 q, E检测提供对应用的SQL注入漏洞、XSS跨站脚本漏洞、文件包含等高危安全漏洞进行
    9 n  l3 ~% a3 |检测;网页挂马检测通过静态分析技术和虚拟机沙箱行为检测技术相结合,对网站) H+ g5 P( P; s1 ]
    进行挂马检测;端口安全检测通过定期扫描服务器开放的高危端口,降低系统被入2 W$ i$ m2 p: t9 x2 K. e% Q- O& h) Q
    侵的风险;主机入侵检测通过主机日志安全分析,实时侦测系统密码破解,异常IP
    7 j  V1 T' [, c8 g0 a& J登录等攻击行为并实时报警;DDos缓解技术能够抵御SYN flood以及其他拒绝服务攻
      s7 o7 e; A4 e& B) q击。8 h+ ^& |$ R, S1 ~
    ●计费管理。利用底层的监控系统所采集的数据对每个用户使用的资源和服务进+ T& T. t  d0 A0 V
    行统计,计算出用户的使用费用,并提供完善和详细的报表。云存储系统计费涉及
    * P# t9 J! E) M/ f  ]% m4 c的参数一般包括:CPU时间,网络出口带宽,存储量以及服务调用次数(包括读写7 z8 \2 [; F: X4 }0 J' W. b- C9 {4 c
    API调用次数)。8 S% T9 n0 R6 C; t( M. j
    ●资源管理。管理云存储平台中的所有服务器资源,将应用程序或者虚拟机映射
    : G, V2 Y% I! M( q, j) ~& E) p+ r自动部署到合适的计算实例,另外,自动调整计算实例的数量来帮助运行于其上的
    + Z- r  Y( f) [; e7 d应用更好地应对突发流量。当计算实例发生故障时,资源管理系统还需要通知前端7 Y* ^. Y) K5 r: ^- S
    的负载均衡层,将流量切换到其他计算实例。
    8 }! w/ ?5 {! e5 J. D) j1 Y●运维管理。云存储平台的运维需要做到自动化,从而降低运维成本,一般来
    ) W: o6 b) F9 n说,有一套专门的Web运维系统用于系统上下线,批量升级系统程序版本等。  V8 K2 C: L' t- D& x7 M# |: g
    ●监控系统。监控系统有两个层面,其一是资源层面,即资源的运行情况,比如
    / z+ s  q6 K( c. b- \# {+ O6 jCPU使用率、内存使用率和网络带宽利用率、Load值等,需要注意的是,云计算平
    3 v, g. v* }9 D/ {台除了监控物理机资源,还需要监控虚拟机资源的运行情况;其二是应用层面,主- h+ `) t% p. Z
    要记录应用每次请求的响应时间、读写请求数等。
    % U; v2 j% L  E9 o3 A
    5 B$ g, R6 Y' E. k- y& ]( c; b& L# X
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-12-22 14:44 , Processed in 0.178682 second(s), 30 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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