Amazon AWS云管理平台技术内幕
云架构 是满足按需分配的服务而设计的软件架构。 云架构上构建服务流程是这样,基本的计算及基础设施只是在有需要时(例如处理一个用户请求)才分配出去,分配必要的资源上的需求(如计算服务器或存储),执行特定的工作,然后放弃不必要的资源。 在整个业务过程,云平台负责根据客户的需求(并发数,吞吐量,数据存储空间等)来弹性的分配资源,然后将不用的资源收回 。老蒋认为这个过程中提供整个计算及存储等基础设施管理,分配,回收等工作的就称为云管理平台。
云架构能解决大型数据处理的很多问题。 例如传统数据处理中很难使用多台服务器来运行一个应用程序。 第二,在需要计算或者存储资源的时候,很难去自动获得一个服务器或者存储。 第三,难以将大量并发的作业分配和协调不同的机器上,如果一台机器出现故障如何用备用机恢复工作。 第四,这是难以自动调节资源的的动态负载。 第五,当工作完成时,如何将这些计算及存储资源回收。 云架构的管理平台就是为了解决这些问题。
云架构上构建的应用程序运行,而云的基础设施的实际位置是由供应商决定。 他们利用互联网的优势,方便的服务的简单API的规模上的需求,其中复杂云计算和云存储及商业的运算,仍然隐藏在云中。 在云架构资源的使用是根据需要,有时短暂的或季节性的,云管理平台根据经济性最大原则,以最优的资源分配给不断变化的客户使用。
让我们以AMAZON AWS为例来看一看云管理平台是如何运行的:
任何一个SAAS在提供服务的时候,云平台都会通过4个阶段对SAAS服务进行资源的分配及调整:
1. 首先启动服务,当有客户进行SAAS服务操作时,云平台会启动服务。
2. 启动后监控SAAS服务的需求情况。
3. 当无人访问时,停止服务。
4. 回收不被使用的资源
让我们看一下AWS具体的操作流程,消息平台首先发送服务启动的命令给启动的控制器,由启动控制器首先将启动信息放在simpledb的缓冲区里面,做上时间标记。分配EC2的计算资源,启动HADoop等操作,将计算数据从S3中导入EC2, 开始进行计算和分析。
监控控制器接收到监控信息后,对SAAS应用中所有的资源和错误进行监控,更新simpledb的缓冲区中的状态,并且根据用户的需要随时增减资源(计算节点和存储节点)。
Shutdown控制器在收到关闭消息后,会停止EC2,HADOOP等资源,将运算结果放入S3或者客户指定的存储目标,并发消息给结算控制器。
消息平台的重要作用
亚马逊SQS的被用来作为消息传递组件之间的机制。它充当“胶水”的有线不同的功能组件连接在一起。这不仅有助于使不同的组件的松耦合,而且在全面建设弹性系统让系统避免因为延时的失败。
主要有以下3个作用:
缓冲区
将有助于缓冲使整个系统更加灵活的流量(或负载)。亚马逊SQS的行为作为两个组件之间GrepTheWeb系统(控制器)瞬态缓冲区。如果邮件直接发送到一个组件,接收器将需要消耗由寄件人在支配它的速度。例如,如果计费系统很慢
或者如果Hadoop集群发射的时间超过预期,整个系统就会慢下来,因为这将只能等待。具有消息队列,发送者和接收者解耦和队列服务柔滑任何“高低不平”消息流量。
分离
GrepTheWeb之间的任何两个控制器的交互是通过消息队列中,没有任何其他控制器直接呼叫控制器。所有的通信和交互发生在通过存储消息队列(连接队列),并从队列(去队列)检索信息。这使得整个系统的松耦合和接口简单,干净。亚马逊SQS的转移提供了不同应用程序组件之间的信息统一的方式。每个控制器的功能是获取信息,处理信息(执行的功能),并存储在其他队列中的消息。
异步
由于这是很难知道每个阶段将采取的执行多少时间(例如,动态地启动阶段决定需要多少个实例开始执行的要求,因此基于时间未知)亚马逊SQS的建设异步系统的帮助。现在,如果发射阶段需要更多的时间来处理,或显示器相失败,该系统的其他组件都不会受到影响,整个系统更加稳定和高可用性。