完美日记:实现高弹性高稳定电商架构
公司简介
完美日记(Perfect Diary)是广州市“独角兽”创新企业——广州逸仙电子商务有限公司旗下首个美妆品牌,创立于2017年,用心为新生代女性开发高品质、精设计、易上手的彩妆及护肤产品,立志于打造有国际影响力的Chinese Beauty Icon。
完美日记上线不到两年即成为天猫彩妆销冠,2019年成为11年来第一个登上天猫双十一彩妆榜首的国货品牌,包揽天猫2019全年彩妆销冠;2020年4月成为首个亮相天猫超级品牌日的国货彩妆品牌,同时勇破彩妆品牌销售纪录。
另外,完美日记已在全国各地开设了数十家线下店,计划至2022年底开店超600家。
截至2020年4月,品牌SKU超过700个,全网用户粉丝数量超过2500万,月曝光量10亿+。
业务痛点
系统开发迭代快,线上问题比较多,定位问题比较耗时。
频繁大促,系统稳定性保障压力很大,第三方接口和一些慢SQL就可能导致严重的线上故障。
压测与系统容量评估的工作非常频繁,需要做常态化的机制来支撑。
系统大促时资源与日常资源相差较大,需要频繁扩缩容。
解决方案
图 1. 解决方案架构图
方案细节:
为了支撑业务快速发展,完美日记采用了阿里云容器服务ACK+Spring Cloud Alibaba配合阿里云中间件PTS+AHAS+链路追踪产品的方案。
- 系统进行容器化部署,利用阿里云容器服务的快速弹性应对大促时的资源快速扩容。
- 系统提前接入链路追踪产品,用于对分布式环境下复杂的服务调用进行跟踪,对异常服务进行定位,帮助客户在测试和生产中快速发现问题,快速修复。
- 使用阿里云性能测试服务PTS进行压测,利用PTS的秒级流量拉起、真实地理位置流量等特性,以最真实的互联网流量进行压测。
- 收集压测数据,分析系统强弱依赖和关键瓶颈点,对关键业务接口、关键第三方调用、数据库慢调用、系统整体负载等进行限流保护。
- 配合阿里云服务团队,在大促前进行ECS/RDS/安全等产品扩容、链路梳理、缓存/连接池预热、监控大屏制作、后端资源保障等,帮助大促平稳进行。
上云价值
成本控制:在非高峰期保持相对少量的节点支撑日常业务,在大促前进行资源快速扩容,大促后释放多余资源,最大程度节约成本。利用容器的高可靠、故障自愈、弹性伸缩等能力,减少运维工作量。
高可用:利用AHAS的限流降级和系统防护功能,对系统的关键资源进行防护,并且对整体系统水位进行兜底,确保大促平稳进行,提高用户体验。
容量评估:利用PTS和ARMS对系统的单机能力和整体容量进行评估,对单机能承载的业务量、整体能承载的业务量做到提前预判,未来对业务的大促需求可以做出合理的资源规划和成本预测。
大促保障机制:通过与阿里云服务团队的多次配合,整理出大促保障的一般流程和应急机制,做到大促常态化。
证言
“使用ACK容器服务可以帮助我们快速拉起测试环境,利用PTS即时高并发流量压测确认系统水位,结合ARMS监控,诊断压测过程中的性能瓶颈,最后通过AHAS对突发流量和意外场景进行实时限流降级,加上阿里云团队保驾护航,保证了我们每一次大促活动的系统稳定性和可用性,同时利用ACK容器快速弹性扩缩容,节约服务器成本50%以上。”——完美日记技术中台负责人
相关产品
容器服务 ACK
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。
更多关于容器服务 ACK的介绍,参见容器服务 ACK产品详情页。
应用实时监控服务 ARMS
应用实时监控服务 (Application Real-Time Monitoring Service,简称ARMS)是一款应用性能管理产品,包含前端监控,应用监控和Prometheus监控三大子产品,涵盖了浏览器、小程序、APP、分布式应用和容器环境等性能管理,能帮助您实现全栈式的性能监控和端到端的全链路追踪诊断, 让应用运维从未如此轻松高效。
更多关于应用实时监控服务 ARMS的介绍,参见应用实时监控服务ARMS产品详情页。
性能测试 PTS
PTS(Performance Testing Service)是面向所有技术背景人员的云化测试工具。有别于传统工具的繁复,PTS以互联网化的交互,提供性能测试、API调试和监测等多种能力。自研和适配开源的功能都可以轻松模拟任意体量的用户访问业务的场景,任务随时发起,免去繁琐的搭建和维护成本。更是紧密结合监控、流控等兄弟产品提供一站式高可用能力,高效检验和管理业务性能。
更多关于性能测试 PTS的介绍,参见性能测试 PTS产品详情页。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一次 MySQL 索引面试,被面试官怼的体无完肤!
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 之前有过一次面试,关于MySQL索引的原理及使用被面试官怼的体无完肤,立志要总结一番,然后一直没有时间(其实是懒……),准备好了吗? 索引是什么? 数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,它可以对数据库表中一列或多列的值进行排序,以协助更加快速的访问数据库表中特定的数据。通俗的说,我们可以把数据库索引比做是一本书前面的目录,它能加快数据库的查询速度。 为什么需要索引? 思考:如何在一个图书馆中找到一本书?设想一下,假如在图书馆中没有其他辅助手段,只能一条道走到黑,一本书一本书的找,经过3个小时的连续查找,终于找到了你需要看的那本书,但此时天都黑了。 为了避免这样的事情,每个图书馆才都配备了一套图书馆管理系统,大家要找书籍的话,先在系统上查找到书籍所在的房屋编号、图书架编号还有书在图书架几层的那个方位,然后就可以直接大摇大摆的去取书了,就可以很快速的找到我们所需要的书籍。索引就是这个原理,它可以帮助我们快速的检索数据。 一般的应用系统对数据库的操作,遇到最多、最容易出...
- 下一篇
30 分钟学会如何使用 Shiro
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一、架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例: 1、使用用户的登录信息创建令牌 UsernamePasswordToken token = new UsernamePasswordToken(username, password); token可以理解为用户令牌,登录的过程被抽象为Shiro验证令牌是否具有合法身份以及相关权限。 2、执行登陆动作 SecurityUtils.setSecurityManager(securityManager); // 注入SecurityManager Subject subject = SecurityUtils.getSubject(); // 获取Subject单例对象 subject.login(token); // 登陆 Shiro的核心部分是SecurityManager,它...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路