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

简介: 容器化改造之后,整个系统变得更加“轻松”。在切换到 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
相关文章
|
前端开发 API 调度
React 之从 requestIdleCallback 到时间切片
在上篇《React 之 requestIdleCallback 来了解一下》,我们讲解了 requestIdleCallback 这个 API,它可以实现在浏览器空闲的时候执行代码,这就与 React 的理念非常相似,都希望执行的时候不影响到关键事件,比如动画和输入响应,但因为兼容性、requestIdleCallback 定位于执行后台和低优先级任务、执行频率等问题,React 在具体的实现中并未采用 requestIdleCallback,本篇我们来讲讲 React 是如何实现类似于 requestIdleCallback,在空闲时期执行代码的效果,并由此讲解时间切片的背后实现。
835 0
|
NoSQL 网络安全 Redis
蓝易云 - 【redis问题】Caused by: io.netty.channel
以上就是解决"Caused by: io.netty.channel"错误的一些可能的方法。
401 2
|
Linux
centos如何压缩zip
使用zip工具在CentOS上压缩文件和目录非常简单且高效。通过灵活使用zip命令的各种选项,可以满足不同的压缩需求,包括设置压缩级别、排除特定文件以及更新现有zip文件。希望本文提供的详细步骤和示例能帮助您更好地理解和应用zip工具进行文件压缩管理。
819 4
|
机器学习/深度学习 算法 数据挖掘
YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!(一)
YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!(一)
2890 1
|
运维 监控 Devops
基础设施即代码(IaC):自动化运维的新纪元
【6月更文挑战第21天】基础设施即代码(IaC)是将基础设施配置转为代码,实现自动化和标准化运维的实践。它通过文本文件描述基础设施,保证重复性、一致性和自动化部署。IaC提升效率,降低成本,加速产品上市,增强安全性和可移植性,在配置管理、环境管理、CI/CD及监控告警中发挥关键作用,推动DevOps和云时代的创新。
|
运维 监控 安全
【阿里云云原生专栏】云原生时代的 DevSecOps:阿里云的安全开发流程实践
【5月更文挑战第28天】在云原生时代,面对安全新挑战,阿里云践行DevSecOps理念,将安全贯穿于开发运维全过程。通过安全需求分析、设计、代码审查、测试及持续监控,确保云原生应用安全。例如,Kubernetes配置中加入安全设置。阿里云还提供多种安全服务和工具,如身份认证、云防火墙等,助力用户构建安全可靠的云应用,为数字化转型保驾护航。
426 4
|
机器学习/深度学习 测试技术 计算机视觉
【YOLOv8改进】DAT(Deformable Attention):可变性注意力 (论文笔记+引入代码)
YOLO目标检测创新改进与实战案例专栏探讨了YOLO的有效改进,包括卷积、主干、注意力和检测头等机制的创新,以及目标检测分割项目的实践。专栏介绍了Deformable Attention Transformer,它解决了Transformer全局感受野带来的问题,通过数据依赖的位置选择、灵活的偏移学习和全局键共享,聚焦相关区域并捕获更多特征。模型在多个基准测试中表现优秀,代码可在GitHub获取。此外,文章还展示了如何在YOLOv8中应用Deformable Attention。
|
API Docker 容器
『干货​』Go语言使用Docker Remote API ,举个栗子!
Docker Remote API是一个取代远程命令行界面(rcli)的REST API。我们使用命令行工具cURL来处理url相关操作。cURL可以发送请求、获取以及发送数据、检索信息。通过Docker Remote API,我们可以实现Docker操作的图形化执行方式,对于不熟悉命令行管理Docker的使用者来说,也可以轻松的管理远程机器上的Docker。
10814 153
|
运维 数据中心 数据安全/隐私保护
【Terraform实现云服务基础设施既代码(IaC)案例实战-3】:Terraform+Docker+Portainer+Gitlab+GitlabRunner搭建Tree项目
前言树苗科技公司业务上云2年有余,随着技术的不断发展。运维团队支持业务变更配置、开资源、删资源等过程加班到深夜一两点已是家常便饭。为了进一步提升工作效率,运维总监张三决定对当前业务交付路径进行统一梳理,借助IaC的理念和Terraform自动化工具逐步实施运维生产自动化,改善组内成员频繁加班且重复劳...
1223 57
【Terraform实现云服务基础设施既代码(IaC)案例实战-3】:Terraform+Docker+Portainer+Gitlab+GitlabRunner搭建Tree项目
|
中间件 Linux API
容器改造传统应用的流程
【5月更文挑战第1天】如何评估和执行将传统应用进行Docker化改造的过程。