完美日记容器化改造实现增效降本

简介: 容器化改造之后,整个系统变得更加“轻松”。在切换到 Kubernetes 正式环境后,扩容时间只需要约90秒。根据运营节奏进行扩容,服务器扩容成本降低了70%~90%。同时,部署效率大幅提升,只需要按照文件模板创建一个服务,部署时间就能减少90%。

客户背景

完美日记成立于2016年,是广州逸仙电子商务有限公司旗下品牌。品牌致力于探索欧美时尚趋势,同时结合亚洲女性面部和肌肤特点,研发一系列“高品质、精设计”的欧美时尚彩妆产品。

客户痛点

自行维护服务器成本过高:早期互联网公司通常直接购买服务器,并在 IDC 机房租用机架进行部署,将应用程序直接运行在物理机上。如果需要扩展,就必须购买新的服务器。IDC 机房会频繁出现各种故障,如果发生 IDC 迁移,就更加麻烦,必须在半夜搬机器,在成本、服务稳定性和工作效率等方面都会造成巨大的消耗。
人工发版繁琐易错:2019 年双 11 大促前夕,小程序刚刚上线。当时采用传统的部署方式,特别是某些应用需要在 SLB 上配置(openrestry),运维人员需要在 SLB 上一个个勾选服务器,发布版本的时间长达半个小时以上。如果发版中出现问题,通常还需要延长一个小时以上的时间来处理。
大规模应用的研发与运维挑战:对于大规模应用的研发和运维人员来说,是否拥有足够的技术和能力来应对挑战,产品架构设计是否可以满足未来的企业需求,组织架构和文化是否已经适应企业的新战略发展。

方案亮点

全栈容器化简化服务器运维: 从2019年开始,完美日记就开始筹备容器化改造,包括改造方案的设计和阿里云 Kubernetes 的选择。经过仔细的测试和结合公司情况和人员配备情况,最终选择了阿里云 ACK 托管版进行大规模应用部署,一次性将所有应用迁移到 ACK 容器服务,并以标准的 Kubernetes 方式进行运维部署。
全链路可观测和流量防护提升业务稳定性: 完美日记将 IT 系统接入全链路可观测产品 ARMS,跟踪复杂的服务调用,并对异常服务进行快速定位和修复。ARMS Prometheus 对 ACK 容器资源进行统一监控。同时,使用性能测试服务 PTS 进行压力测试,利用秒级流量和真实地理位置流量等特性进行测试。通过收集压测数据并分析系统的强依赖和关键瓶颈点,对关键业务接口、关键第三方调用、数据库慢调用等进行限流保护。
简单稳定且低成本的容器镜像仓库服务: 完美日记选用阿里云镜像企业版 ACR EE,因为它比自建 Harbor 更稳定、成本更低。自建 Harbor 需要考虑计算、数据库和磁盘成本,如果项目很多或镜像比较多,磁盘成本也会很高。而镜像企业版无需考虑维护成本。此外,镜像企业版可以高并发,而自建 Harbor 则容易出现镜像 PULL 问题。
容器弹性灵活应对流量洪峰: 利用 ACK 的快速弹性能力应对大促资源快速扩容,并结合在大促前进行 RDS/安全等产品扩容、链路梳理、缓存/连接池预热、后端资源保障等,以确保大促活动的平稳进行。
image.png

建设成果

云原生极大提升运维效率,降低人力成本:容器化改造之后,整个系统变得更加“轻松”。在切换到 Kubernetes 正式环境后,扩容时间只需要约90秒。根据运营节奏进行扩容,服务器扩容成本降低了70%~90%。同时,部署效率大幅提升,只需要按照文件模板创建一个服务,部署时间就能减少90%。
提升资源利用率,降低资源和管理成本:服务器资源可以自动计算并部署到服务器上,利用隔离技术可以部署多个项目服务器,提高50%利用率。服务模块的自动负载均衡无需人工干预,工作量减少90%。服务模块的伸缩容无需编写脚本,只需点击伸缩按钮,就可以减少人工错误率,工作量降低70%。服务模块不可用时会自动剔除并自动重启服务模块。服务器宕机时,运行在服务器上的服务模块会自动转移到可用服务器上,无需人工干预,工作量降低100%。

相关产品

阿里云容器服务ACK(Alibaba Cloud Container Service for Kubernetes)
阿里云容器镜像服务ACR(Alibaba Cloud Container Registry
阿里云监控服务 Prometheus(Aliyun Cloud Monitor Prometheus)
阿里云实时监控服务(ARMS)
阿里云性能测试PTS(Performance Testing Service)
阿里云微服务引擎 MSE(Alibaba Cloud Microservice Engine,MSE)
应用高可用服务 AHAS(Application High Availability Service)

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
C4.
|
算法 搜索推荐 程序员
关于c语言用N-S流程图表示算法
关于c语言用N-S流程图表示算法
C4.
1068 1
|
存储 JSON 安全
Go语言切片,使用技巧与避坑指南
Go语言中的切片(Slice)是动态引用数组的高效数据结构,支持扩容与截取。本文从切片基础、常用操作到高级技巧全面解析,涵盖创建方式、`append`扩容机制、共享陷阱及安全复制等内容。通过代码示例详解切片特性,如预分配优化性能、区分`nil`与空切片、处理多维切片等。掌握这些核心知识点,可编写更高效的Go代码。
472 2
|
8月前
|
缓存 监控 图形学
《Unity优化指南:直击引擎本质的非典型技术路径》
本文聚焦Unity开发中突破性能瓶颈的深层技术逻辑,跳出常规优化思维,从引擎底层运行本质出发,解构资源导入管线、渲染管线协同、内存与缓存联动、多平台适配重构、逻辑架构设计、调试与性能监控六大核心维度。文章摒弃表层API应用,深入剖析各模块隐性关联与协同规律,提供非典型优化路径——从资源导入的标准化适配,到渲染各阶段的高效联动,再到内存数据的结构化布局、跨平台的底层适配、架构的解耦扩展及进阶调试监控方案。通过系统性的底层认知与实操思路,帮助开发者跳出"单点优化"困境,解决性能波动、兼容性故障等核心痛点,实现项目性能与体验的双重突破,为Unity进阶开发提供深度技术指引。
350 9
|
数据可视化 NoSQL 开发者
国内免费高效部署WordPress方案探索之Websoft9多应用托管实践
在数字化普及的当下,WordPress 成为众多开发者和企业的建站首选。然而国内缺乏高效免费的部署方案。本文对比主流平台后推荐 **Websoft9**:其具备一键部署、多应用托管、性能优越、技术体系完善等优势,支持 WordPress 与其他系统的集成,适配阿里云、华为云等主流平台,是当前最值得尝试的开源建站方案之一。
499 0
国内免费高效部署WordPress方案探索之Websoft9多应用托管实践
|
12月前
|
XML 人工智能 Java
java通过自定义TraceId实现简单的链路追踪
本文介绍了如何在Spring Boot项目中通过SLF4J的MDC实现日志上下文traceId追踪。内容涵盖依赖配置、拦截器实现、网关与服务间调用的traceId传递、多线程环境下的上下文同步,以及logback日志格式配置。适用于小型微服务架构的链路追踪,便于排查复杂调用场景中的问题。
556 0
|
消息中间件 Java API
微服务——SpringBoot使用归纳——Spring Boot中集成ActiveMQ—— JMS 和 ActiveMQ 介绍
本文介绍如何在Spring Boot中集成ActiveMQ,首先阐述了JMS(Java消息服务)的概念及其作为与具体平台无关的API在异步通信中的作用。接着说明了JMS的主要对象模型,如连接工厂、会话、生产者和消费者等,并指出JMS支持点对点和发布/订阅两种消息类型。随后重点讲解了ActiveMQ,作为Apache开源的消息总线,它完全支持JMS规范,适用于异步消息处理。最后,文章探讨了在Spring Boot中使用队列(Queue)和主题(Topic)这两种消息通信形式的方法。
445 0
|
存储 关系型数据库 MySQL
MySQL主键谁与争锋:MySQL为何钟爱自增主键ID+UUID?
本文深入探讨了在MySQL中使用自增类型主键的优势与局限性。自增主键通过保证数据的有序性和减少索引维护成本,提升了查询和插入性能,简化了数据库管理和维护,并提高了数据一致性。然而,在某些业务场景下,如跨表唯一性需求或分布式系统中,自增主键可能无法满足要求,且存在主键值易预测的安全风险。因此,选择主键类型时需综合考虑业务需求和应用场景。
607 2
|
Web App开发 移动开发 iOS开发
HTML5 Video(视频)1
HTML5引入了<video>元素,为网页视频播放提供标准方法。它支持播放、暂停和音量控制,以及视频尺寸设置。主要浏览器如IE9+、Firefox、Opera、Chrome和Safari均支持此元素。<video>元素可通过多个<source>子元素链接不同格式的视频文件,以确保兼容性。当前支持的视频格式包括MP4、WebM和Ogg。
|
监控 容灾 测试技术
怎么保证后端服务稳定性,怎么做容灾
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、预算和风险承受能力等因素,选择合适的稳定性保障和容灾方案,并不断优化和完善,以适应不断变化的业务环境和技术发展
|
前端开发 测试技术 API
深入探究 Playwright:Frame 操作技巧
Playwright Python 框架提供API处理Web页面中的iframe。通过`frame()`方法进入iframe,如`page.frame(name='frame_name')`,并可使用CSS选择器选择。完成操作后,用`main_frame()`返回主文档。在iframe内,可执行点击、填充表单等操作,简化自动化测试和网页爬取任务。
深入探究 Playwright:Frame 操作技巧