java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2757|回复: 0

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

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

    [LV.Master]出神入化

    2096

    主题

    3754

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66788

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

    发表于 2017-3-16 16:09:57 | 显示全部楼层 |阅读模式
    12.5 云平台整体架构/ T6 Q5 s$ ~0 n: T( x
    云存储是云计算的存储部分,理解云存储架构的前提是理解云平台整体架构。
    7 h- M( e0 W7 [  k云计算按照服务类型大致可以分为三类:基础设施即服务(IaaS)、平台即服务
    $ ^# W2 h% T% h' E(PaaS)以及软件即服务(SaaS),如图12-3所示。% f" P- R. q* G" ~' P  \3 J7 J+ y
    图 12-3 云计算服务类型& V: y1 g# \3 i4 m* y) d
    IaaS将硬件设备等基础资源以虚拟机的形式封装成服务供用户使用,如Amazon
    4 A# x+ O" `  M  K* R% N云计算AWS(Amazon Web Service)的弹性计算云EC2,PaaS进一步抽象硬件资源,
    / b3 e" c5 M% }) X0 t! K提供用户应用程序的运行环境,开发者只需要将应用程序提交给PaaS平台,PaaS平  u  i0 G) m+ t) s/ w, h
    台会自动完成程序部署,处理服务器故障,扩容等问题,典型的如(Google App; [" x4 B; B7 [$ L2 i
    Engine)GAE。另外,微软的云计算平台Windows Azure Platform也可大致归入这一7 F2 P/ W% u2 i- y7 D! C) D
    类。SaaS的针对性更强,它将某些特定应用软件封转成服务,如Salesforce公司提供
    / x* }' Y1 I- l/ u的在线客户端管理CRM服务,Google的企业应用套件Google Apps等。" [$ `) o4 |5 \, B: B
    本节首先分别介绍Amazon、Google以及Microsoft这三个云平台的整体架构,其7 f5 ]' X% ~6 i3 d9 a) s- S
    中,Amazon提供IaaS服务,Google和Microsoft提供PaaS服务,接着介绍一般情况下云) m) ~# d, p6 H. p1 q6 o
    平台的整体架构。
    1 B2 p% f# ?0 I& c12.5.1 Amazon云平台8 I! j' J* d& h; f* i% Y
    Amazon Web Services(AWS)是Amazon构建的一个云计算平台的总称,它提供
    9 j9 W& j  f" U/ q7 A了一系列云服务。通过这些服务,用户能否访问和使用Amazon的存储和计算基础设  p8 p" M* S, G- Q
    施。如图12-4所示,AWS平台分为如下几个部分:& |5 ]! i+ F* i; B# h7 C6 N5 h9 x
    图 12-4 AWS平台整体架构% u' K3 s. J4 h6 T
    ●计算类:核心产品为弹性计算云EC2(Elastic Computing)。EC2几乎可以认为# u" v( c9 [7 `, W3 Y" N& z( y+ E
    是迄今为止云计算领域最为成功的产品,通俗地讲,就是提供虚拟机,用户的应用
    # N4 T: f. ]- {5 A  u/ V1 E程序部署在EC2实例中。EC2架构的核心是弹性伸缩,当托管的应用程序访问量变化
    , V, }% d8 m+ O: g+ p时能够自动增加或者减少EC2实例,并通过弹性负载均衡技术将访问请求分发到新增" _: E( w0 j* J
    的EC2实例上。在计费模式上,EC2按照使用量计费,而不是采用传统的预付费方
    ' P, Z, x" a% ]" F4 d3 ]/ [式。EBS(Elastic Block Store)是一个分布式块设备,可以像本地的磁盘一样直接挂
    * ^: c* M; \: g0 C) D载在EC2实例上,与本地磁盘不同的是,保存到EBS的数据会由EBS的管理节点自动- ~3 E: q8 F* a# }
    复制到多个存储节点上。EC2实例的本地存储是不可靠的,如果EC2实例出现故障,
    & U% r7 r) b( R本地存储上保存的数据将会丢失,而保存到EBS上的数据不会丢失。EBS用于替代0 W1 W& |. e$ r6 b; D6 Y
    EC2实例的本地存储,从而增强EC2可靠性。
    3 ]+ a) V3 r' X4 Y9 d( U: Q' |●存储类:存储类产品较多,包括简单对象存储S3,表格存储系统SimpleDB、
    " z. o) |: [& LDynamoDB、分布式关系数据库服务(Relational Datastore Service,RDS)以及简单消
    ( M1 R3 d/ X  e( C0 }/ Y' E- A! ^息存储(Simple Queue Service,SQS)。S3用于存储图片、照片、视频等大对象,为% ]( q: ?7 Y* K
    了提高访问性能,S3中的对象还能够通过CloudFront缓存到不同地理位置的内容分发
    3 @' D  v' u& Q3 I网络(Content Delivery Network,CDN)节点。SimpleDB和DynamoDB是分布式表格系
    9 T- A, B4 \0 w: U统,支持对一张表格进行读写操作;RDS是分布式数据库,目前支持MySQL以及9 X1 H5 t$ Y! J5 G8 n- {' A
    Oracle两种数据库。SQS主要用于支持多个任务之间的消息传递,解除任务之间的耦
    * z  X  E- y7 T% ^# v4 v7 j- t' k0 K合,相当于传统的消息中间件(Message Queue)。为了提高访问性能,可以使用
    3 W+ m8 k  k' j- [- n- gElasticCache缓存存储系统中的热点数据。
    7 u/ R) d0 R% X( k: y. |●工具支持:AWS支持多种开发语言,提供Java、Ruby、Python、PHP、Windows$ v; f8 k1 e9 L# y, w
    &.NET以及Android和iOS的工具集。工具集中包含各种语言的SDK、程序自动部署
    ' ~0 v/ Z: S+ g3 p以及各种管理工具。另外,AWS通过CloudWatch系统提供丰富的监控功能。
    " E+ W5 U& T# |5 x" `" Q' xAWS平台引入了区域(Zone)的概念。区域分为两种:地理区域(Region
    ' X2 \/ z5 `' g( x- m. G* KZone)和可用区域(Availability Zone),其中地理区域是按照实际的地理位置划分* {' C' q4 e" c! m$ d4 s+ E8 X5 E
    的,而可用区域一般是按照数据中心划分的。
    5 p! r. Q8 [0 n. \3 h* C假设网站MyWebSite.com托管在AWS平台的某个可用区域中。AWS开发者将Web
    , X! p9 i9 r- u1 T  _, D应用上传到AWS平台并部署到指定的EC2实例上。EC2实例一般分成多个自动扩展组
    # N; t4 |5 x+ m2 i; }(Auto Scaling Group),并通过弹性负载均衡(Elastic Load Balancing)技术将访问4 `9 W! m" W0 y; F, f$ z
    请求自动分发到自动扩展组内的EC2实例。开发者的Web应用可以使用AWS平台上的; ~$ F/ Q. @, g, V' E
    存储类服务,包括S3、SimpleDB、DynamoDB、RDS以及SQS。
    ' z# r3 `; {3 z6 q+ P# X7 k网站上往往有一些大对象,比如图片、视频,这些大对象存储在S3系统中,并
    $ w1 V- Y+ _7 s7 P* P通过内容分发技术缓存到多个CloudFront节点。当Internet用户浏览MyWebSite.com
    4 W/ ^# M1 {9 k时,可能会请求S3中的大对象,这样的请求将通过DNS按照一定的策略定位到7 G1 G1 u3 i- I3 i
    CloudFront节点。CloudFront首先在本地缓存节点查找对象,如果不存在,将请求源& a  M1 T) G% m+ T  E
    站获取S3中存储的对象数据,这一步操作称为回源。
    - \- D% {( m1 W' Y% ^12.5.2 Google云平台2 ~: N5 r6 f% y
    Google云平台(Google App Engine,GAE)是一种PaaS服务,使得外部开发者可
    + ]* G6 h7 a6 D1 l; C3 l以通过Google期望的方式使用它的基础设施服务,目前支持Python和Java两种语言。! _4 A! O: x9 O
    GAE虽然在产品上相比Amazon云平台还有较大的差距,但在技术上是成功的,尤其$ W4 U" a- _9 a" n
    适用于企业构建自己的企业私有云。GAE的整体架构如图12-5所示。2 F/ v, o3 Q/ i0 N5 s
    图 12-5 Google App Engine整体架构& m) L- i3 ~6 s& v( d& G" m/ X
    GAE云平台主要包含如下几个部分:4 r- f! P8 U1 w- Y+ e! ?0 ?
    ●前端服务器。前端的功能包括负载均衡以及路由。前端服务器将静态内容请求
    " I8 `+ U1 p$ ?6 o8 t5 b6 a0 j转发到静态文件服务器,将动态内容请求转发到应用服务器。/ A4 g* ?, i( N; N% r) S" i
    ●应用服务器。应用服务器装载应用的代码并处理接收到的动态内容请求。
    , [5 e/ ~6 g/ V1 [* E4 X, E●应用管理节点(App Master)。调度应用服务器,将应用服务器的变化通知前
    0 `1 ]5 d, ?& m7 v3 U' \端,从而前端可以将访问流量切换到正确的应用服务器。
    7 A' O8 T9 ^0 J! z5 W" S9 [●存储区。包括DataStore、MemCache以及BlobStore三个部分。应用的持久化数
    0 q$ f1 G4 p5 H3 q据主要存储在DataStore中,MemCache用于缓存,BlobStore是DataStore的一种补充,8 B( b. c# @( }
    用于存储大对象。
    & N1 Y3 b1 f  B& v●服务区。除了必备的应用服务器以及存储区之外,GAE还包含很多服务,比如
    & h8 V: j' \4 D/ ^3 O图像处理服务(Images)、邮件服务、抓取服务(URL fetch)、任务队列(Task. Z5 D' R, t# J( s9 O/ m. u
    Queue)以及用户服务(Users)等。. v% L. t* q1 F# ]5 S3 [1 k
    另外,作为PaaS服务,GAE还提供了如下两种工具:
    ) O; k$ g" m. B5 t! D; ^. }! r●本地开发环境。GAE中大量采用私有API,因此专门提供了本地开发和调试的! \/ ?1 J) C: \* ~: U: V' Q
    Sandbox环境以及SDK工具。
    $ Q  l! F5 W' b7 G●管理工具。GAE提供Web管理工具用于管理应用并监控应用的运行状态,比如
    8 s+ u) [+ y* m& G, |; m; ]资源消耗、应用日志等。) c  [: y0 t3 P& i$ p5 V8 X4 c. G; d
    GAE的核心组件为应用服务器以及存储区,其中,应用服务器用于托管GAE平
    8 f* _: r2 Z, I- h% h台用户的应用程序,存储区提供云存储服务。下面分别介绍这两个部分。: g, U/ p0 D! X, k$ b
    1.应用服务器
    ) {9 S  Y$ j9 eGAE对外不提供虚拟机服务,因此,对于不同的开发语言,需要提供不同的应
    3 h) \0 A9 S  d* ?用服务器实现,目前支持Python和Java两种语言。每一台应用服务器可能运行多个" u6 @3 `* u) Y9 N! T1 b
    GAE平台用户的应用,为了防止应用程序之间互相干扰,应用程序将在受限制的“沙
    ) g# y, Z% ]( f& x6 r盒”环境中运行。“沙盒”环境中的GAE应用程序无法执行以下操作:
    8 e3 Z) A2 T1 P$ }- f2 i●写入到本地文件系统。应用程序必须使用数据存储区来存储持久化数据。
    % N( ?$ q/ v* S3 D( D●打开套接字或者直接访问其他主机。应用程序必须使用网址提取服务(URL
    * z) Z* T1 K5 I2 {( iFetch)分别从端口80和443上的其他主机发出HTTP和HTTPS请求。' W4 F. ]; p' l
    ●生成子进程或者线程。应用程序的网络请求必须在单个线程中处理,并且必须" O! Y; x: _/ e
    在几秒内完成,GAE会自动终止响应时间很长的进程以免应用服务器过载。/ B. D. U, _% ]+ H% s# C" q$ ]
    ●进行其他类型的系统调用。
    4 ^2 I: Y" x1 k: o2.存储区
    5 P. ?% B0 [4 J% M6 dDatastore是App Engine存储区的核心,底层为6.2节中介绍的Google Metastore系: `' t& \& u& D, U) s
    统。与关系数据库最大的不同点在于,Datastore支持自动增加或者减少存储节点,提, T: ^" Y8 q) R, \. `8 V& y
    供线性扩展能力。App Engine直接将开源的Memcache用作缓存服务,缓存Datastore中
    6 p, Q  v; ?+ L的热点数据。Datastore不适合存储大对象(Blob对象),因此,App Engine设计了专
    " D7 p; R: m; n门的Blobstore用于支持大对象存储。; a* u+ h! [, O0 C
    除了GAE平台,Google还单独提供了两种云存储服务,Google Cloud Storage以及
    $ l  K' _2 Y1 }Google Cloud SQL。其中,Google Cloud Storage与Amazon S3类似,用于存储图片、& V. d4 ]1 K5 a8 [% z
    视频等大对象数据,Google Cloud SQL与Amazon RDS类似,用于提供分布式关系数
    8 A8 k) |& D: b* |9 r% ]/ i$ ^$ ?据库服务。2 M+ @( e8 ~# h' ~9 j5 P( p6 L
    12.5.3 Microsoft云平台
    ! \' D  ]. a0 b; E1 JWindows Azure Platform是一个服务平台,用户利用该平台,通过互联网访问微$ ]( y9 B- `3 ?; ~. N# Q6 `) m; w
    软数据中心的计算和存储服务,它不但支持传统的微软编程语言和开发平台,如C#
    1 L; ^$ N2 c3 U: L# D和.NET平台,还支持PHP、Python、Java等多种非微软编程语言和架构。7 U) \% N/ u& b1 V- \$ R
    WindowsAzure平台包含如下几个部分。
    $ z+ P+ c6 `: B+ l8 f7 n1 b●计算服务( J! K+ ^3 Q6 n  ]* |& F; m
    Windows Azure平台中每个计算实例是一个运行着64bit的Windows Server 2008的" e3 x0 u0 B# ^+ B$ I
    虚拟机,分为三种类型:Web Role实例,Worker Role实例和VM Role实例。其中,0 U, O( T( |+ S4 f/ K) q
    Web Role实例提前在内部安装了IIS7,用于托管Azure平台用户的Web应用程序;% }+ z. O$ z$ J( \& q1 q( }8 S+ x
    Worker Role实例设计用来运行各种各样的基于Windows的代码,例如,Worker Role
    # T$ L' t, \, J实例可以运行一个模拟程序、进行视频处理等,Worker Role与Web Role的不同点在
    7 L( d; Q* I; ]; H. k于,Worker Role内部并没有安装IIS。一般来说,用户只会用到Web Role和Worker
    1 T# k: l6 C2 pRole。应用通过Web Role与用户相互作用,然后利用Worker Role进行任务处理。当
    & ?1 @1 d' t# c! R- W! ?5 I. E. |用户需要将本地的Windows Server应用移动到Windows Azure平台时,VM Role将会起
    2 I' U: o* `$ S* L: r% g$ C9 o5 O作用。VM Role除了允许对环境拥有更多的控制权之外,它和Web Role以及Worker6 f5 h5 ^0 t( M+ |. O
    Role是没有区别的。与Amazon云平台需要用户提供虚拟机的虚拟映像文件不同的
    . k  o( Q& P3 B2 `' c是,Azure平台会自动虚拟出虚拟机,处理虚拟机升级,Role实例故障,Azure平台用, n8 o+ o& J0 o6 P* t% r, v# W/ t
    户只需要专注于如何创建应用程序即可。
    / D, q& i( [0 o, V9 h●存储服务
      T" o0 ]# G/ C5 G; m  j2 FWindows Azure存储服务包括Azure Blob,Table,Queue以及SQL Azure。其中,Azure$ ^/ H: ^6 u$ N1 D
    Blob存储二进制数据,如图片,照片,视频等个人文件。Azure Table存储更加结构化
    & S2 ?8 g( g+ o' {0 L/ ~$ Z* |的数据,支持单张表格上的操作,但是它不同于关系数据库系统中的二维关系表,
    8 O4 }% K- @7 O$ d查询语言也不是大家熟悉的关系查询语言SQL。Azure Queue的作用和微软消息队列: I& @  [/ [' D6 j& J
    (MSMQ)相近,用来支持在Windows Azure应用程序组件之间进行通信。SQL Azure
    . Q% g! ], {7 V, C, X则是将微软的关系数据库SQL Server搬到云环境中,提供二维关系表和SQL查询语
    , [4 h; e' n6 ?言。为了提高访问性能,Windows Azure还提供了两种缓存机制:Azure Caching以及
    7 k( l4 A7 ^2 @6 N* p# t! E& mAzure内容分发网络(CDN)。Azure Caching在数据中心内部缓存热点数据,Azure
    0 m- Z, q/ {9 p8 B2 GCDN在离用户较近的“边缘节点”缓存Azure Blob中的Blob对象。
    % G! z# @" R  T●连接服务' D  S4 s! _  m
    Windows Azure连接服务包括Azure Service Bus以及Azure Connect。Azure Service/ I: q, q- j7 s" `0 G0 x: ^
    Bus包含三个部分:Service Bus Queue,Service Bus Topic和Service Bus Relay。其中,% z4 X2 \7 n' e; A1 V# Q9 @9 R8 _" F2 @
    Service Bus Queue和Service Bus Topic与消息中间件的Queue和Topic模式类似,用于解9 I% x; w0 K8 d7 M6 y
    除应用程序之间的耦合。Service Bus Queue提供点对点的通信,保证每个发送者产生
    ( g4 g- A+ t, |% f3 ?5 G的消息只被一个接收者获取;Service Bus Topic提供一对多的发布订阅通信,每个发4 K# p( t6 P) K) f
    布者发布的消息能被所有的订阅者获取。Service Bus Relay使得Azure平台服务器端可
    8 h3 `: b2 u& y以访问运行在企业内部的本地WCF服务,这些WCF服务通常没有一个固定的IP地" n" l. i2 N5 _
    址,而且被企业防火墙所保护。Azure Connect在Windows Azure应用和本地运行的机) p1 D) p3 s! c- z. M& I0 n# z
    器之间建立一个基于IPsec协议的连接,使得两者更容易结合起来使用。例如,某个  {8 @( g8 i5 r4 m$ g2 m& w
    企业需要将现有的由ASP.NET创建的Windows Server应用移动到Windows Azure Web
    - q3 j$ @) s, f5 ]+ n5 n1 ZRole中区,如果这个应用使用的数据库需要保留在本地机器上,那么Azure Connect技
    , f  E% U5 F5 w# ~! G1 G; T  n术能够使运行在Windows Azure上的应用正常访问本地数据库,甚至连使用的连接字& K% d1 p8 v5 N
    符串都不需要改变。9 X1 C5 P$ ?2 P
    ●工具支持
    : I( g4 O. k$ fWindows Azure平台不但支持传统的微软编程语言和开发平台如C#和.NET平台,; C) f( c* }: q% U7 K0 \
    还支持PHP、Python、Java、node.js等多种非微软编程语言和架构。Azure平台提供各( L( O9 |0 t- \- d7 \1 q
    种语言的SDK以及平台管理工具。
    5 x% R7 ~: ^- B# a4 u" m图12-6显示了Windows Azure Platform用于托管用户Web程序的整体架构。假设网
    1 w8 ^& T% ~9 c: R( h站MyWebSite.com托管在Windows Azure平台的某个数据中心内。Azure平台开发者将0 E) |& y+ Y8 {
    Web应用上传到Azure平台,由平台将应用自动部署到Role实例上。在Azure内部,一
    ( a, J/ B9 j# Q1 W, C个应用可能运行在一个或者多个Role实例上,将运行同一个应用的Role实例成为一个
    2 N. S" m8 Q7 N- e+ K+ P& XRole实例组,并通过负载均衡器将访问请求按照一定的策略自动分发到其中的Role实3 e- {+ r; R& S
    例。开发者的Web应用可以使用Azure平台上的存储类服务,包括Azure Blob、
    + ^% x! E8 ]) F8 r. V' oTable、Queue以及SQL Azure。为了提高性能,应用也可以使用Azure Caching缓存热
    ; I6 k% Z7 z; u# Y5 E点数据,就像使用Memcache一样。
    3 y. `& O' S, k3 \5 j* q3 Z4 \; m图 12-6 Windows Azure Platform整体架构) F8 Y% O3 S+ ~+ B, D
    网站上往往有一些Blob对象,比如图片、视频,这些对象存储在Azure Blob系统
    7 z" b. Q: i: `+ R& r- w中,并通过内容分发技术缓存到多个Azure CDN节点。Internet用户访问3 K- ?. [% D+ e$ L7 R1 c
    MyWebSite.com中的Blob时,访问请求将通过DNS定位到CDN节点上,如果CDN缓存
    ! L, W9 W/ U& `1 F: v; ]2 d2 T+ o了Blob的副本,直接将副本返回给用户,否则,CDN节点将请求Azure源站中的Azure
    # f, D' q+ t/ s& p8 {0 }- y: J6 lBlob存储系统获取Blob对象,这一步操作称为回源。: d. C& W" L9 o: u) v  \
    12.5.4 云平台架构
    3 w# g& @( n) X从托管Web应用程序的角度看,云平台主要包括云存储以及应用运行平台,如图
    2 T* h- M: u. z) @! h/ d4 Y2 N12-7所示。
    1 e3 H9 @5 _6 l1 t( G1 F图 12-7 云平台整体架构
    0 W- d, p5 a; U+ R: s8 H云平台的核心组件包括:云存储组件和应用运行平台组件。下面简单介绍一$ G4 N7 m2 n. E, p% n* B) _* n: z
    下。1 R' k! u0 P) |$ o
    (1)云存储组件
    % B/ R+ Y, X. }( {" C3 r云存储组件包括两层:分布式存储层以及存储访问层。分布式存储层管理存储# v( m* i3 [* h' E- R3 x  T+ \
    服务器集群,实现各个存储设备之间的协同工作,保证数据可靠性,对外屏蔽数据
    & [& c3 @. W7 p! Q+ [% K所在位置,数据迁移,数据复制,机器增减等变化,使得整个分布式系统看起来像
    $ M: I9 h3 q! x5 o# e是一台服务器。分布式存储层是云存储系统的核心,也是整个云存储平台最难实现
    + O5 _" X0 ~7 L! s的部分。CDN节点将云存储系统中的热点数据缓存到离用户最近的位置,从而减少* d/ y; @  N# |/ N
    用户的访问延时并节约带宽。8 q# J  U: ]3 V
    存储访问层位于分布式存储层的上一层,该层的主要作用是将分布式存储层的
    1 S: q5 T$ W8 U2 t" c客户端接口封装为WebService(基于RESTful,SOAP等协议)服务,另外,该层通过
    1 W% i- l% t; I, b1 `调用公共服务实现用户认证,权限管理以及计费等功能。存储访问层不是必须的,5 U4 R8 x1 n" V$ v9 f/ L
    云存储平台中的计算实例也可以直接通过客户端应用编程接口(API)访问分布式存  t% h0 L5 a7 H' ~9 y3 U, U! T
    储层中的存储系统。
    6 ?% w  u8 d3 f7 y) L(2)应用运行平台组件+ K. E, B, |0 ?1 j9 Z' `
    应用运行平台的主体为计算实例,计算实例最主要的功能有两个:开发者的应" S% r) [0 v9 _7 Y) ]1 ^3 {
    用程序运行环境以及离线任务处理。不同的云计算平台厂商的计算实例形式往往不
    3 o- ]- {4 f8 \, m2 G' e3 P同:AWS(Amazon Web Service)平台中的计算实例为Amazon的弹性计算(Elastic7 L$ H+ |: g' U( s7 v4 p# U  j( C
    Computing,EC2)虚拟机,它们既用于托管开发者的Web程序,又可用来执行Hadoop; L8 ?1 N+ F/ S+ M( Q% l
    MapReduce计算或者图像以及视频转换等离线任务;GAE(Google App Engine)平台" I" e* ]4 F& g: ^
    中的计算实例分为前端实例(Frontend Instance)以及后端实例(Backend Instance),
    9 U$ w/ [+ m" W- W* q9 R4 R其中,前端实例为GAE特有的Python、Java以及Go语言运行容器,用于托管开发者使
    ! @9 N6 i; L7 `" R0 q' T用Python、Java或者Go语言开发的Web程序,后端实例执行运行时间较长的离线任
    % z6 V  e- e( k: o3 t务;微软的Azure平台(Windows Azure Platform)的计算实例为运行着一个64位的' s/ |/ u% \9 J3 g7 F6 T
    Windows Server 2008的虚拟机,分为Web Role、Worker Role以及VM Role三种角色,
    & w  N4 @5 T- t# j其中,Web Role用于托管Web程序,Worker Role用于执行视频处理等离线计算任务。( P" u& `! V$ A' i7 F% l3 j
    多个计算实例构成一个计算实例组,当实例组中的某个实例出现故障时,能够
    ( d: V" I# R) x: E' p自动将负载迁移到其他的实例,并且支持动态增加或者减少实例从而使得实例组的
    ' e7 {7 }9 E4 ^" e4 e处理能力具有动态可伸缩性。运行平台的最前端是路由及负载均衡组件,它将用户
    ; u% z. i- E' C( X4 I: t的请求按照一定的策略发送到合适的计算实例。% q* O( n$ K8 e' K
    云存储平台还包含一些公共服务,这些基础服务由云存储组件及运行平台组件% ~6 @8 P$ M( @/ }3 P; Q; y
    所共用,如下所示:2 C# B. c9 U6 @6 G6 Q1 A
    ●消息服务。消息服务将执行流程异步化,用于应用程序解耦。计算实例一般分
    & Z* ~! R- {, T$ B6 T5 h为处理Web请求的前台实例以及处理离线任务的后台实例,在很多情况下,前台实例6 O$ y' i' Y$ h- Y2 h
    处理Web请求的过程中需要启动运行在后台的任务,这种需求可以通过消息服务实) T/ P. f9 {0 p5 M- E, ~1 B' @
    现。& Q: @+ H6 ]# e1 G- y7 f4 b- N
    ●缓存服务。缓存服务用于存储云存储系统中的读多写少的热点数据,从而加速
    * c9 K* b0 }) s* z! P5 I; o1 J查询,减少对后端存储系统压力。大多数云存储平台提供Memcache服务。; v" m: W2 f, z* e6 z& v) M1 o. R
    ●用户管理。用户管理主要功能是用户身份认证,确保用户的身份合法,并存储
    ; i* {# d3 Z$ x用户相关的个人信息。云计算平台一般支持单点登录,在多个应用系统中,用户只  U5 a( D* ~0 v7 w+ v( k2 p( [
    需要登录一次就可以访问所有相互信任的系统。
    ( t/ k' [7 }& q●权限管理。为多个服务提供集中的权限控制,以确保应用和数据只能被有授权( o! w; G1 _# W' }4 d
    的用户访问。云存储系统一般会维护一系列的访问策略,每一条策略表示某个用户$ U; F8 ~0 _, @0 W2 s
    是否对某个资源具有某种操作权限。4 v6 O! f6 ~* B& O
    ●安全服务。安全服务包括Web漏洞检测,网页挂马检测,端口安全检测,入侵8 N5 }: G4 v/ @: c! b5 k! i, F
    检测,分布式拒绝服务攻击(Distributed Denial of Service,DDoS)缓解等。Web漏洞* O- ~, Z: b2 q4 s- J' a9 ?% M
    检测提供对应用的SQL注入漏洞、XSS跨站脚本漏洞、文件包含等高危安全漏洞进行+ t8 O  j; Q+ i4 s' b
    检测;网页挂马检测通过静态分析技术和虚拟机沙箱行为检测技术相结合,对网站' }0 D( b8 J0 C+ K3 p, H
    进行挂马检测;端口安全检测通过定期扫描服务器开放的高危端口,降低系统被入
    : v' z4 K0 {* H' }5 ?侵的风险;主机入侵检测通过主机日志安全分析,实时侦测系统密码破解,异常IP
    9 O8 l! S: m% y: I" G0 K9 r登录等攻击行为并实时报警;DDos缓解技术能够抵御SYN flood以及其他拒绝服务攻
    . I+ J( o1 U) X8 L击。( M& H& s: `" x  Q. y5 C
    ●计费管理。利用底层的监控系统所采集的数据对每个用户使用的资源和服务进
    5 g5 J& f+ o0 i+ j行统计,计算出用户的使用费用,并提供完善和详细的报表。云存储系统计费涉及
    + e3 ^- p  k4 }" b: ?7 e' ]' z; X的参数一般包括:CPU时间,网络出口带宽,存储量以及服务调用次数(包括读写
    6 ^5 Z& u8 g  U2 M1 p' y4 _; k# NAPI调用次数)。
    - L% E; K( X3 V9 S6 U●资源管理。管理云存储平台中的所有服务器资源,将应用程序或者虚拟机映射3 j$ s, V* G& T( ~+ i9 A
    自动部署到合适的计算实例,另外,自动调整计算实例的数量来帮助运行于其上的: E0 T, m: A0 M0 M8 j
    应用更好地应对突发流量。当计算实例发生故障时,资源管理系统还需要通知前端5 B" F) e0 V9 B8 ]
    的负载均衡层,将流量切换到其他计算实例。
    + e3 s& m4 d" R$ y" ~8 |; |; }! C6 q: V●运维管理。云存储平台的运维需要做到自动化,从而降低运维成本,一般来
    7 u+ Q5 @0 Q- [说,有一套专门的Web运维系统用于系统上下线,批量升级系统程序版本等。
    1 r8 N) l0 R0 ]* u, n- m0 R●监控系统。监控系统有两个层面,其一是资源层面,即资源的运行情况,比如2 ?3 Q' l' R3 m1 _$ b9 Q
    CPU使用率、内存使用率和网络带宽利用率、Load值等,需要注意的是,云计算平, E% j/ V8 }1 N, z, ]
    台除了监控物理机资源,还需要监控虚拟机资源的运行情况;其二是应用层面,主
    0 {; V! i* v( x9 ~( E& E! l. w要记录应用每次请求的响应时间、读写请求数等。
    7 b% t; C8 `; t+ N  z3 e, L8 @( `- H% a/ h* |  {0 n) N

    , H$ P$ J7 v3 E/ p3 J
    回复

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-4-1 14:27 , Processed in 0.115500 second(s), 29 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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