上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
二、AWS部署实践
在FreeWheel部署环境上,为了获取资源使用的弹性,我们引入了AWS部署方案。实现了一套代码,多套环境的灵活部署。
公有云有实时供应,灵活配置和资源隔离(多租户)等优点。根据公有云发展的趋势报告,混合云部署成为了当下流行的趋势。在这种趋势下,我们迁移到新的集群仍然要考虑如下因素:应用的可移植性、公有云开销、功能和数据容量。
对于我们以Hadoop生态系统的大数据架构而言,在AWS部署有两种选型:一种是使用AWS EMR的服务,另外一种是使用EC2和EBS创建Hadoop集群的服务。
AWS EMR是Hadoop组件的集合,它包括硬件资源和Hadoop集群系统。EMR的优点是易于管理,但是我们在使用过程中,发现它目前还存在单点故障,HBase on S3极其不稳定。对于我们需要长时间稳定运行服务和作业而言,服务的稳定性要求较高。
因此,我们采用了第二种方案。考虑到存储服务(HDFS、HBase)和计算服务(YARN)它们之间的影响,我们从设计之初就使用不同类型的机器分别部署这两类服务,实现存储和计算的分离。在解决单点故障的问题上,我们使用了Hadoop开源系统已经比较完善的HA方案。在存储方案的选择上,我们使用S3和HBase(HDFS)分别存储历史和实时数据。
我们的数据处理流程和查询服务在AWS和On-premise分别部署(如图10),两者实际上是Active-Active的模式,两者之间也互为容灾。由于两套环境都是采用相同的技术栈和部署方案,这给我们后续服务的扩展和研发带来了极大的便利。我们可以先在AWS验证业务的可行性和做资源规划,然后再选择On-premise和AWS的环境部署。
图10 AWS和On-premise混合部署