大数据SaaS应用落地经验分享

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 在过去几年中,我们自己开发的大数据SaaS应用大数据实验室采用混合云体系结构在全国各地进行了几十次部署。在实际使用过程中,遇上了非常多的问题。本文主要分享在实际软件开发和维护过程中遇上的各种问题和解决方案分享。

在过去几年中,我们自己开发的大数据SaaS应用大数据实验室采用混合云体系结构在全国各地进行了几十次部署。在实际使用过程中,遇上了非常多的问题。本文主要分享在实际软件开发和维护过程中遇上的各种问题和解决方案分享。
# - 一、大数据实验室介绍
大数据SaaS应用大数据实验室是指:旨在帮助大数据从业人员和学生更好地了解和学习大数据产品以及各种大数据真实案例,快速进行大数据科研创新的软件产品包。大数据实验室作为一站式大数据实训和科研创新平台,为各行业用户提供简单易用的大数据真实环境,让数据价值触手可及。用户可通过简单快捷的可视化操作,对各种大数据进行数据采集、数据加工、数据开发、数据管理、数据分析和机器学习等操作,快速探索各种大数据创新应用。
大数据实验室底层采用混合云架构,中间层部署了一系列PaaS引擎,上层部署了软件包和课程包的SaaS应用,具体如下图所示:
2000.png

  1. 大数据实验室后台支撑平台: 部署在高配的阿里云ECS+RDS+OSS上,并根据访问负载扩容ECS带宽。大数据实验室后台支撑平台主要完成大数据实验室整体架构的搭建,负责整个实验室的安全管理、资源调度、权限管控等,完成分布式环境下每个用户都拥有自己独立的多租户,相互之间的数据、文件和项目都实现完全隔离。
  2. 离线分布式计算平台引擎:公有云采用阿里云云原生大数据计算服务 MaxCompute,私有云采用Apache Hadoop 3.0+ Apache Spark 3.2 。通过混合云对接模块,大数据实验室实现上层SaaS应用与底层公有云和私有云离线分布式计算资源的对接。公有云环境下,针对每个用户每个单独的实验开辟出独立的公共云资源,完成相应的驱动转换,保障每个用户都在独立的多租户环境中完成相应的实验。支持RAM子账号模式,支持多个学生消费的云资源在同一个主账号进行计费。私有云环境下,针对每个具体实践开辟出独立的虚拟机资源,生成多租户实践环境。
  3. 机器学习平台: 公有云采用阿里云机器学习平台PAI, 私有云主要使用开源TensorFlow 2.0。通过混合云对接模块,大数据实验室实现上层SaaS应用与底层公有云和私有云机器学习平台计算资源的对接。
  4. 大数据ETL引擎: 公有云采用阿里云大数据开发治理平台 DataWorks,私有云采用开源Kettle等。通过混合云对接模块,大数据实验室实现与底层大数据ETL引擎功能对接,支持实验数据、案例数据和科研数据的的导入导出等功能。数据接口提供多种方式支持,比如service接口方式、数据文件导出支持(CSV、TXT等)、数据文件的导入支持等。
  5. 数据可视化和BI报表引擎: 公有云采用阿里云报表工具QuickBI和数据可视化大屏引擎DATAV, 私有云采用开源工具Echarts等;
  6. 中间层PaaS引擎: 公有云主要使用阿里云提供的各种PaaS引擎服务,私有云部分主要基于开源引擎提供相应的功能;
  7. 上层SaaS应用: 具体包括实训室的管理功能、科研平台的管理功能、混合云负载管理功能等。

# - 二、实际使用过程中遇上的问题
过去几年我们在全国部署了很多套大数据实验室,随着大数据实验室部署的客户越来越多和每个用户内部使用人数的扩大,大数据实验室后台支撑平台公有云访问峰值用户数超过了10万人,每个用户现场部署的私有云峰值访问用户数也超过了千人。随着业务负载越来越大,整个大数据实验室系统遇上了各种性能相关的问题。同时,随着阿里云各个底层平台的升级, 构建在其上的大数据实验室SaaS软件不兼容的问题也逐步凸显。以下是总结后遇上的部分问题:
1. 业务负载压力上升过快, 现有ECS带宽负载吃紧, 无法满足大数据实验室业务峰值时访问负载需求。
2. 在私有云环境中,原生Apache HIVE集群访问并发受限,当业务负载升级到千人以上出现集群不响应现象。
3. 混合云用户管理无法做到统一,公有云和私有云底层平台用户和大数据实验室用户管理系统出现杂乱现象,版本升级时容易出现问题。
4. 多个集群的统一管理遇上问题,底层使用的各种公有云集群和私有云集群各种资源,如何做到统一管控是一个系统性问题。
5. 在业务峰值时,系统负载不均衡现象越来越严重。随着互联网技术的发展,大并发和海量数据处理场景越来越普遍,很多用户所使用的SaaS软件也逐步过渡到分布式架构体系中来。我们在实际部署SaaS软件的过程中,逐步发现在应用上层面临着越来越大的压力,瞬间访问负载激增的情况下SaaS应用面临访问崩溃的风险。

# - 三、相关问题解决经验分享
经过多个项目的实际试错和调整,上述问题目前采用如下方式进行了初步解决:
1. 针对业务负载持续上升的问题,主要通过以下方式进行解决:
a) 首先对ECS带宽进行扩容,从整体上保障业务运行所需的带宽资源。
b) 其次是优化SaaS软件中所有交互相关的内容资源,比如课程包中的PDF文档、数据文件、PPT和视频等,都是需要高并发的同时打开, 非常消耗带宽资源,通过优化和压缩内容资源的大小, 整体降低所需带宽资源负载需求。
c) 最后尝试对内容资源进行序列化并通过压缩算法将内容资源进一步压缩大小,从而提升现有带宽利用效率。
2. 针对在私有云环境中,原生Apache HIVE集群访问并发压力过大的问题,主要通过以下几种方式进行解决:
a) 在架构上,针对高并发访问需求的用户, 在实际部署过程中通过部署多个Apache Hive集群的方式予以解决。
b) 同时弹性负载均衡组件负责调度用户访问需求,防止热点数据节点出现。
3. 针对混合云用户管理杂乱的现象,主要通过以下方式进行解决:
a) 从架构上进行优化,增加混合云用户管理模块,并增加一层映射,以大数据实验室内部用户和权限管理为主,并分别对应其所需访问的底层集群资源用户名、密码和访问权限等。
b) 从运维部署角度,提供公有云RAM子账户和私有云集群账户创建初始化脚本和模板,进一步简化部署难度。
4. 针对多个集群的统一管理和调度的问题,主要在架构层面进行优化,增加多集群管控组件用来来解决混合云环境下多个大数据集群、机器学习机器的集成管控问题,统一协调负载实现实验室整体高可用和高并发访问,具体包括以下功能:
a) 混合云架构下底层多种大数据集群和机器学习集群的统一管控
b) 解决私有云环境下Hadoop机器以及Spark集群并发负载偏小的问题,通过并发多集群的方式实现整体实验室环境的高可用和高并发
c) 解决公有云环境下多种大数据ETL机器、大数据离线分布式计算机器、流计算机器和机器学习机器的集中管控问题
5. 针对在业务峰值时,系统负载不均衡现象,主要通过以下方式进行解决:
a) 在系统整体层面,新增负载均衡组件,通过对多台云服务器进行均衡的流量分发调度,消除单点故障提升应用系统的可靠性与吞吐力。
b) 负载均衡组件通过使用散列函数(Hash function)进行负载均衡分发,在应用层弹性负载均衡主要基于散列函数(Hash function)的方式实现,并在后续版本迭代过程中将散列函数升级为一致性哈希算法。
c) 散列函数(Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。--维基百科散列函数定义。
d) 在软件开发过程中,我们主要通过散列表(哈希表)的方式存储相应的数据记录,支持弹性负载均衡组件可以使用散列表快速检索和查询到相关的数据记录以便进行负载分发。
e) 在新的弹性负载均衡开发过程中,引入分布式散列表(DHT),也就是使用分布式散列表DHT取代传统的散列表,通过使用一致性哈希来划分分布式系统的节点。 通过使用一致性哈希算法,优化弹性负载均衡的分发过程,相比于传统哈希表中添加或者删除一个槽位基本上需要对所有的关键字进行重新映射,在使用一致性哈希算法时,哈希表槽位数的改变平均来看只需要对K/N 个关键字重新映射(K:关键字数量; N: 槽位数量)。一致性哈希算法最早是由麻省理工学院(MIT)的Karger等人提出的,其在1997年发表的《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web.》学术论文中介绍了如何使用一致性哈希算法解决分布式Web服务中用户易变的问题。
2001.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
11天前
|
SQL 分布式计算 数据可视化
Tableau与大数据:可视化工具在大数据分析中的应用
【4月更文挑战第8天】Tableau是一款领先的数据可视化工具,擅长于大数据分析,提供广泛的数据连接器,支持多源整合。它与Hadoop、Spark等深度集成,实现高效大数据处理。Tableau的拖拽式界面和交互式分析功能使得非技术人员也能轻松探索数据。在实战中,Tableau用于业务监控、数据storytelling和自助式分析,推动数据民主化,提升决策效率。未来,Tableau将持续创新,扩展生态系统,并保障数据安全与合规性,助力企业最大化数据价值。
50 0
|
11天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
11天前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
11天前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
11天前
|
搜索推荐 大数据 数据安全/隐私保护
大数据的应用领域
【4月更文挑战第10天】大数据已深入金融(风险评估、欺诈检测)、医疗(精准医疗、疾病预测)、公共服务(交通管理、灾害预测)、电子商务(客户分析、个性化推荐)、制造业(生产控制、优化)及农业(资源配置、生产效率)等多个领域。随着技术进步,应用范围将持续扩展,但需关注隐私保护和数据安全。
17 3
|
11天前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
11天前
|
存储 大数据 数据挖掘
云计算与大数据:从基础设施到实际应用
云计算与大数据:从基础设施到实际应用
273 0
|
1天前
|
关系型数据库 分布式数据库 数据处理
【PolarDB 开源】PolarDB 在大数据分析中的应用:海量数据处理方案
【5月更文挑战第25天】PolarDB是解决大数据挑战的关键技术,以其高性能和可扩展性处理大规模数据。通过与数据采集和分析工具集成,构建高效数据生态系统。示例代码显示了PolarDB如何用于查询海量数据。优化策略包括数据分区、索引、压缩和分布式部署,广泛应用于电商、金融等领域,助力企业进行精准分析和决策。随着大数据技术进步,PolarDB将继续发挥关键作用,创造更多价值。
9 0
|
3天前
|
存储 弹性计算 大数据
【阿里云弹性计算】阿里云ECS在大数据处理中的应用:高效存储与计算实践
【5月更文挑战第23天】阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,尤其大数据型实例适合离线计算。通过集成分布式文件系统如OSS,实现大规模存储,而本地存储优化提升I/O性能。弹性扩容和计算优化实例确保高效运行,案例显示使用ECS能提升处理速度并降低成本。结合阿里云服务,ECS构建起强大的数据处理生态,推动企业创新和数字化转型。
12 0
|
11天前
|
数据挖掘
离线大数据分析的应用
离线大数据分析的应用