悦跑圈上云之路:你所跑的每一步背后的技术支撑

简介: “悦跑圈”是一款基于社交型的跑步应用。记录专业化跑步数据,在排行榜与全国跑友比拼,在独有的社交平台(跑友圈)与跑友分享交流,另外还支持微博微信分享。截止2017年1月,悦跑圈APP用户规模已达3000万。

本文正在参加“最佳上云实践”评选,来给我们投票吧:https://yq.aliyun.com/activity/158(编号18)

上云方案调研

针对以上需求,我们共设计了三种方案来从不同层面满足,分别是:本地文件服务器、自建文件服务器和阿里云文件存储服务。

1. 本地文件服务器方案

该方案需要在本地IDC中部署计算节点、网络交换机和存储节点,维护独立的硬件设备和文件服务的集群。本地文件服务器方案的架构图如下。

f9bab3209eea08914ea9a1c2a907bfbbb1367e5  

计算节点是由普通X86服务器或者运行在X86服务器上的虚拟机构成,可以自己配置计算节点的规模和客户端类型。存储节点支持广泛的连接协议,足够支持Windows客户端、Linux/Unix客户端和Mac客户端。

网络交换机通常是10GB/40GB的规格,用两台相同的交换机达到冗余部署,保证可用性。

存储节点是由专业存储厂商生产的产品,提供文件服务的能力。例如EMC的Isilon, Netapp的FAS系列产品等。存储节点可以是双控存储服务器,也可以是具有分布式集群的存储服务集群,集群内部使用InfiniBand网络或者10GB网络传输数据。存储节点可以提供高性能的文件存储服务,且支持多种文件协议。

2. 自建文件服务器方案

申请公有云的ECS和云盘,在此之上单件单机版或者具有一定HA能力的文件存储服务。自管理云解决方案的架构图如下。

1f5a2ae5933ddef2122e8681b92af34608e157a

自建文件服务器方案使用提供文件系统接口和对文件的共享访问权限的第三方软件利用阿里云ECS和云盘搭建的文件服务器。

这种解决方案的管理软件通常在阿里云ECS实例上运行,再利用阿里云块存储的云盘作为底层存储组件。 

由于需要提供HA的能力,需要两份相同的资源,两个ECS实例分别作为提供文件存储服务的服务器,两块数据盘分别挂载到两个ECS实例提供数据存储能力。

除此之外,该方案还需要维护复杂的HA的能力和稳定性,保证任何一个文件服务器不是单点故障。即:当其中Primary文件服务器出现网络不同或者宕机等故障的时候,Backup文件服务器要立即响应上层的服务请求,同时保证数据一致性。

3. 阿里云文件存储服务方案

依据阿里云的公有云资源,提供高可用、高可靠、稳定和安全的文件存储服务,并提供集成的解决方案支持和售后技术支持服务。阿里云文件存储功能块图如下。

3a791ba0d9af2f1d4f8e93dae1e0e06c2365cae

阿里云文件存储是基于阿里云飞天平台的分布式共享文件系统。具有高可靠、高可用、多共享、单一命名空间、具备无限容量与性能横向扩展、能提供标准的POSIX文件访问协议,不需要对现有应用做任何修改即可使用。

在NAS server发生failover的时候,NAS服务会秒级自动切换到其他NAS server上。

3d46840949fb6e673d16672b0ddd0ffec02d920

最终选型

下图是这三种方案的特点和优势对比:

  262e044f1a681ef6d532db78a54a2e7a1f0e9c0

针对以上三种解决方案,最终我们选择了第3种,使用阿里云文件存储,因为:

阿里云文件存储服务是基于飞天系统的分布式文件系统,具有高可用、高可靠、线性的横向扩展能力;

阿里云文件存储针对小文件系统的共享访问做过深度优化,能够存储亿级别的海量小文件,提供多达500个客户端的共享访问能力,综合QPS可以达到万级别。

悦跑圈的云端架构

下面是悦跑圈的业务架构图:

783c21de805b265fcaa6e819eaf6a9416581067

 

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
开发框架 监控 .NET
Visual Basic的Web服务和REST API开发指南
【4月更文挑战第27天】本文探讨了使用Visual Basic(VB.NET)构建Web服务和RESTful API的方法。首先介绍了Web服务的基础和REST API的概念,然后阐述了.NET Framework与.NET Core/.NET 5+对VB.NET的支持,以及ASP.NET Core在Web开发中的作用。接着,详细讲解了创建RESTful API的步骤,包括控制器与路由设置、模型绑定与验证,以及返回响应。此外,还讨论了安全措施、测试方法、部署选项和监控策略。最后强调,VB.NET开发者可以通过ASP.NET Core涉足现代Web服务开发,拓宽技术领域。
505 1
|
开发工具 git
git篇3:idea中创建项目并提交到远程Git仓库
git篇3:idea中创建项目并提交到远程Git仓库
3293 2
|
3月前
|
缓存 Cloud Native 算法
《云原生架构下的智能物流调度系统故障排查与优化》
本文围绕某智能物流调度系统在云原生架构下的故障排查与优化展开。该系统基于Kubernetes、Istio等构建,业务扩张后高峰时段频发订单提交失败、调度信息延迟等问题。经分层排查,发现根源在于应用层连接池配置不合理、服务网格路由与负载均衡策略缺陷、资源调度及云边通信瓶颈等多层级协同失效。通过应用层优化连接池与算法拆分、服务网格重构路由规则与提升同步效率、资源层动态调整配置与扩容、云边协同增强自治能力等措施,系统性能与业务指标显著改善。
122 0
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
471 4
React开发需要了解的10个库
|
10月前
|
消息中间件 API 开发工具
实时获取短信发送状态,这个功能别错过!|阿里云短信服务
短信回执可以让你对每一次短信的审核和送达状态了如指掌,怎么样才能摆脱“状态轮询”,实时获取各种状态呢?
1671 17
|
9月前
|
监控 物联网 网络性能优化
【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
通过上述分析,可以看出MQTT在物联网应用中的确是更好的选择。其高效的通信模型、低带宽消耗、稳定的连接保持机制以及可靠的消息质量保证,使其在各种物联网场景中都能表现出色。开发者在设计和实现物联网系统时,应优先考虑采用MQTT协议,以充分发挥其在资源受限环境下的优势,提升系统的整体性能和可靠性。
1672 26
|
7月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
3764 0
|
11月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
723 17
|
10月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
3542 2
|
算法 调度
作业调度算法_先来先服务算法_短作业优先算法_高响应比优先算法
本文介绍了作业调度算法,包括先来先服务(FCFS)、短进程优先(SJF)和高响应比优先(HRRN)算法。通过分析进程的到达时间和所需CPU服务时间,计算进程的开始时间、完成时间、平均周转时间和平均带权周转时间,以评估不同算法的性能。FCFS适合长作业,SJF适合短作业,而HRRN则综合了两者的优点。
878 12