最右App:架构演进之路

简介: 本次阿里云云栖社区行业圆桌论坛上,最右App技术总监许林、阿里云技术专家张翔贺、高级技术专家闵庆欢共同探讨了最右App的上云实践之路,并且分享了最右App在移动加速和个性化推荐以及安全方面实战经验。对话行业大咖,引领云端科技,畅谈云上话题,尽在阿里云云栖社区行业圆桌论坛。

摘要:本次阿里云云栖社区行业圆桌论坛上,最右App技术总监许林、阿里云技术专家张翔贺、高级技术专家闵庆欢共同探讨了最右App的上云实践之路,并且分享了最右App在移动加速和个性化推荐以及安全方面实战经验。对话行业大咖,引领云端科技,畅谈云上话题,尽在阿里云云栖社区行业圆桌论坛。

 

以下内容根据阿里云行业圆桌论坛视频整理而成。

 

本期嘉宾介绍:

许林,最右App技术总监;

张翔贺,阿里云技术专家;

闵庆欢,高级技术专家。

业务场景

最右App是青少年的娱乐社区,用户主要集中在学生群体,他们喜欢消费有趣的、互动性高的内容。用户会在最右App中分享、记录自己的生活。

上云之路

最右App开始就选择了阿里云服务,其当时选择云厂商时的标准:首先,阿里“背书”对最右的吸引力比较大,不论是淘宝还是早期的阿里巴巴,其技术能力都比较强;考虑稳定性、产品的质量和标准,应用性要好、成本低,并且对提供所需基本功能的完整性有一定的要求。


落地阿里云最大的感受是人力成本大大减少了。以前有大量的运维,机房里有很多人做基础服务相关的保障,使用阿里云产品以后,在早期能做到零运维,开发团队只需要关注自己的业务,成本也非常低,尤其是早期的时候,资源消耗和配置都偏低,这样成本变得非常可控。更重要的是当业务发展的时候,扩大机器、提高配置变得相对容易,不需要和硬件供应商去打交道,这样可以把精力完全集中在自己的业务上。


早期使用云产品是零运维的,随着规模的增长,对于一个产品来说,如果要提升服务质量势必需要引入自己的运维团队,即从零运维转变为轻运维。


谈到如何上云,最右App技术总监许林介绍说,首先需要了解市面上的一些云产品,把关自己的业务。不同的业务对技术的需求不同,根据自己的业务、云服务商提供的产品、对云基础产品的技术内幕的理解,综合考虑选择一款适合自己的云产品。


谈到阿里云在高可用方面的产品改进时,阿里云技术专家张翔贺为大家做了详细介绍:阿里云目前已经走过了近10年的历程,阿里云的产品都是针对客户的核心诉求打造的。阿里云的第一个产品是ECS,其设计的初始就采用了多分数据云的方式,先保证客户数据的安全。第一款数据库产品RDS采用了主从的高可用架构,并且每一个产品的打造过程中都会考虑数据的容灾、备份、可靠性的保障。对于客户的运维工作,阿里云也会打造更加应用性的管理平台、API,目前多种平台已经可以通过API进行管理、监控。从PaaS到SaaS的产品,目的是将每一层的链路打通,尽量降低客户在部署业务中的所需的工作,比如云监控从最初的只有资源的监控到现在可以基于端口到应用层、网络层的监控,并且每一款产品都部署了监控,使客户更关注业务层。

揭秘最右App移动加速

许林从多个方面为我们介绍了如何提升最右App移动用户加载速度。首先,需要架构上的提升,早期是独立的一个服务,随着业务的提升,各种服务会拆分出来,形成了微服务架构。同时,将服务做分层(接入层、底层的服务层),通过不同分层的协调和平行扩展提高并发能力,同时加上两个多级缓存对比较热的帖子、评论缓存到访问速度更快的内存里面,使用多级缓存以及精细控制缓存力度来解决用户对于数据的访问需求。

 

同时,视频和图片资源会用到CDN服务,快速地通过边缘节点到达所要显示的内容,有效提高用户端的产品服务体验。并且,在系统架构的时候消除单点,保证服务都是可扩展。

 

关于阿里云在移动加速的解决方案,阿里云闵庆欢为大家做了简单介绍,比如首先是协议方面的优化,最开始在sbity协议上做了开发,包括多路复用、长链接、请求头部压缩、最小化TCP连接。然后是链路的优化,如果源站用ECS产品,那么CDN的节点回源过程中有专线,回源速度上有优化。最后是内容的优化,针对静态的资源有智能压缩,另外有合并请求的功能。

最右App架构演进经验

早期由于用户比较少,服务的对象比较少,所以架构比较简单。当业务量增加之后,相互之间的混合性会导致一个服务的服务能力会严重影响另外一个服务的服务能力。这时候就考虑到把服务进行拆分,以内部服务的方式对接入层提供数据支持。

 

66f384f585a4b1da7c230984b4b37df1b1d2d7b1

 

接入层通过数据的封装、合并对外提供数据支持、接口。明显的优势是可以对独立的服务进行能力扩充,对其提供的能力变得更加灵活。接入层整体是分层的结构,可以做数据缓存、预处理、压缩,提交给用户相对精简的数据包,提升用户解析、显示的体验。

 

这里遇到的一个问题是:从单服务向微服务过度时,需要经历服务解耦的过程。这就需要重新对架构进行梳理,将所有服务解耦,实现微服务架构对所有服务的拆分。其中,阿里云的帮助如下:以前可以通过MySQL或者日志做简单的分析操作,当数据量越来越大时,需要用到阿里云的大数据支持服务,比如ODPS;数据量提升到一定规模之后,需要考虑的不仅仅是处理时间,还会出现一些新的问题,比如需要通过大数据去挖掘用户的一些行为,对数据的处理能力有了新的要求,此时用到了阿里的MapReduce和Hadoop的服务加速了推荐系统的开发。

个性化推荐的实现

对于内容型的产品,早期的时候偏向于热门推荐系统,内容比较大众化,此时不需要太多的个性化推荐,只需要推荐一些头部的热门信息就可以满足大多数的用户。

 

当用户量变大时,需求会变得特别复杂,此时就需要进行个性化推荐。第一步是获取用户的兴趣,这些信息可以通过产品里面的话题、消费行为获得,通过这些信息提炼出了用户的画像进行个性化推荐。另外,根据用户之间的关联也可以挖掘出用户的偏好。

最右App安全实践

作为一款内容型产品,最右App会面临恶意抓取,目前最右App采用了一套签名机制,使得恶意抓取受到了一定的控制。至于常见DDos攻击,则使用阿里云的云盾进行阻挡。

 

作为一款UGC类型App产品,最右App也面临着图片鉴黄识别等问题。许林介绍说,最右App目前通过三种方式鉴别垃圾、广告、黄色内容:首先,确认规则系统,通过规则的判断减少垃圾内容的产生;但是机器的最大问题是存在漏判、误杀,所以有相应的运营团队对漏判和误杀的情况进行纠正;同时,结合用户反馈机制,当用户反馈量达到一定的数量时,对一些漏判和误杀进行纠正。


安全话题也是大家非常重视的内容,关于阿里云在移动安全方面的解决方案,闵庆欢补充了一些资料:对于CDN方面HTTPS服务,阿里云是基于动态配置来做的,所以私钥和证书在官方平台提交一分钟之内可以全网下发和生效。HTTPS的核心在于私钥,私钥托管于阿里云的证书管理中心,CDN配置管理的系统和阿里云证书管理中心是通过HTTPS获取私钥的,而且私钥本身又是加密的。阿里云CDN的各个系统之间私钥的传输也是通过HTTPS协议,而且每个系统之间的传输又是不同的私钥,并且私钥放置在内存中,采用了混淆存储,整条链路上都保证了私钥的安全性。阿里云还会推出无私钥的解决方案,可以更好的保障私钥的安全性,让用户把私钥存储在自己的Conserve中心,整个过程中阿里云可以不用保存用户的私钥。

相关文章
|
2月前
|
人工智能 监控 安全
java基于微服务架构的智慧工地监管平台源码带APP
劳务管理: 工种管理、分包商管理、信息采集、班组管理、花名册、零工采集、 现场统计、考勤管理、考勤明细、工资管理、零工签证
287 4
|
4月前
|
监控 安全 Java
【Spring Cloud 】基于微服务架构的智慧工地监管平台源码带APP
【Spring Cloud 】基于微服务架构的智慧工地监管平台源码带APP
109 0
|
1月前
uni-app 4.12开发弹出层组件(一)基础架构
uni-app 4.12开发弹出层组件(一)基础架构
19 0
|
2月前
|
监控 安全 物联网
B/S架构智慧工地源码,两个终端:PC后台管理端、APP移动端
智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术,以PC端,移动端,设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等十大管理环节变得智慧可控。为建设集团、施工企业、政府监管部门等提供一站式工地现场管理信息化解决方案,是一种崭新的工程现场一体化管理模式。
31 0
|
9月前
|
移动开发 JSON 前端开发
|
4月前
|
人工智能 监控 数据可视化
基于B/S架构,包括PC后台管理端、APP移动端、可视化大屏端的智慧工地源码
基于B/S架构,包括PC后台管理端、APP移动端、可视化大屏端的智慧工地源码
50 2
|
8月前
|
监控 JavaScript 前端开发
【JAVA】基于微服务架构的智慧工地云平台源码带APP(springcloud+VUE+mysql+mybatis plus+redis)
智慧工地源码 后端:java + spring boot + mybatis plus + mysql + kafka+ redis + xxl-job + MQTT。 前端:vue + flutter。 智慧工地云平台,人机料法环是智慧工地中常用的概念,分别代表了人员、机械、材料、方法和环境。在施工过程中,通过有效地整合人员、机械设备、材料和工法等要素,并结合科学合理的管理手段,以实现高效、安全、环保和可持续的建筑施工。
|
9月前
|
XML Android开发 iOS开发
|
9月前
|
缓存 API 数据安全/隐私保护
|
9月前
|
缓存 数据管理 API