对话首席架构师|阿里云迁云实战解析(二):零售上云全解析(上)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
云解析 DNS,旗舰版 1个月
简介: 本文整理自驻云科技首席架构师,阿里云MVP苏炎的分享。本文将与大家分享苏炎对云架构师在阿里云迁云实践案例中碰到和解决的一系列问题。
+关注继续查看

以下内容根据演讲视频以及PPT整理而成。

直播回顾,请点击这里
回顾第一部分,请点击这里。

接下来具体介绍两个驻云科技基于阿里云进行上云的客户案例。

1. 某零售客户上云

上云动因
目前该零售客户已将其线下的大部分核心业务搬迁上云,其最初的上云动因主要有四点:
• 线下扩容困难。该客户原有的存储经过几年的发展已经到了需要更新换代的阶段,驻云科技按照其目前的业务情况进行了估算,结果发现所需的置换成本较高,因此希望通过云服务来降低整体拥有成本。
• 提高平台稳定性和安全性。由于该客户线下的整个业务中台使用的是微服务技术,最初构建在阿里云中间件私有输出平台上,这种方式下其线下的平台稳定性和安全性需要用户自己来维护,核心业务平台的维护和升级需要大量的投入,甚至由于人员稳定性等原因可能会影响业务平台运行的连续性,而通过线下平台搬迁上云可以在帮助用户提升平台的稳定性和安全性的同时,降低业务平台的维护和升级成本。
• 容器化改造。希望上云后进行容器化改造,让资源得以利用充分的同时能够更加灵活的应对业务高峰低谷。
• 实现CI/CD自动化流程。希望上云后实现CI/CD自动化,提升交付速度,适应业务快速变化。

上云难点
该零售客户在上云过程中遇到了四个难点:
• 复杂性高。该零售客户原有系统的复杂性较高,应用系统数量繁多,依赖与调用关系复杂,尤其是数据库之间存在大量的同步机制,这种情况给业务梳理造成了很大的困难,成为上云的一大难点。
• 数据库结构复杂。该客户原本使用的是分布式数据库加MySQL数据库,实现了分库分表,而且存在大量云上-线下、云上-云上数据同步链路。
• 涉及多个中间件产品。包括Spring Cloud、Dubbo、RocketMQ等,这种情况下客户希望用公有云服务替代,但是由于线下某些开源组件的版本比较旧,代码改动点较多,无缝迁移困难。
• 对性能和稳定性要求极高。由于该客户的核心业务系统沉淀的POS、门店数据较多,同时涉及和WMS(仓库管理系统)的对接,因此对于系统的性能和稳定性要求极高。

应用系统及技术点
下图展示了该零售客户整个应用系统及技术点的具体情况。需要上云的应用系统主要包括门店POS系统、WMS(仓库管理系统)、O2O、内购券、全渠道业务中台、报表系统、HR系统和会员系统。

涉及的技术点主要有:
1)微服务。由于该客户的业务系统需要针对不同供应商进行开发,因此微服务系统包括Spring Cloud和Dubbo的使用比较多。2)Java。客户的整个业务系统中Java的版本使用不一,这也给后面的上云带来很多问题。
3) 对象存储。该客户针对一般文件存储采用的是NAS,对象存储使用的是FastDFS。由于在阿里云上搭建FastDFS不太合适,因此上云过程中涉及了FastDFS到OSS的改造。
4)容器化。使用容器化一方面是为了实现整个业务环境的标准化,从而更好地帮助其进行部署和实施;另一方面还可以帮助用户节省资源。
5)数据同步。业务的数据同步主要依赖底层的MySQL实现。
6)消息中间件。客户原本使用的是私有输出MQ,上云后使用的是阿里云的RocketMQ,版本升级很多,同时在使用方式上也发生了很大的变化。
7)分布式事务。使用的是阿里云自有的全局事务服务GTS。
8)高并发。为了满足客户的高并发需求,在涉及到云计算特性的使用选型上,驻云科技进行了一系列压测。
9)分布式事务和分布式数据库。

screenshot
云上整体架构
该零售客户业务系统上云后的整体架构如下图所示。其中,数据库层与上云前差异不大,使用的都是分布式DRDS加MySQL。最关键的是,在应用层最终选型的是阿里云自带的容器服务ACK,使用的是K8S集群,其在阿里云上有三个版本,第一个版本是专有版,Master节点和Worker节点均可见,该版本适用于对K8s集群比较了解的用户,可以方便其对集群进行更细粒度的管理和控制;

第二个版本是托管版,Master节点不可见,Worker节点可见,该版本的优点是简单且成本低(Master节点免费),Master节点无需运维管理,用户只需要关注Worker节点上的业务;

第三个版本是全托管无服务器版,该版本主要适用于测试环境。驻云科技为该零售客户选型的是K8s集群专有版,以实现用户对K8s集群最大化管控。

screenshot

资源规划问题:在上云的过程中可能会出现资源规划的问题,即最终的云上成本大于线下每年的平摊成本。导致该问题的原因主要有以下几方面:
• 线下用的是vSphere虚拟机,实际使用过程中会超额预定,即虚拟机配置高于整个物理机的实际使用配置;
• 数据库物理机配置非常高,有些数据库无备份,三个数据库主机互备,而云上使用RDS替代,无形中增加了成本;
• 线下很多库是单机库,一些单机库到云上采用的都是RDS高可用版本,相对来说成本会增加很多,而按照1:1的配比估算后发现成本非常高;
• 忽略了线下的维护成本、人员成本、机房和电力成本等等;
• 驻云科技对该客户需要上云的应用进行的整体性能评估结果显示,其虚拟机负载不足20%,大部分在5%-10%,而数据库负载不足50%。这意味着很多资源是可以释放的,而在云上资源的使用本身是弹性按需的,如果完全按照ECS的企业级实例来看,可以保证一定的稳定性,但是单价会非常高。这种1:1的模式完全无法体现出云计算的弹性优势,因此该案例后期又进行了整体优化。

目录
相关文章
|
2天前
|
负载均衡 Dubbo 应用服务中间件
阿里微服务架构到底多牛逼:深入解析Apache Dubbo与实战
在Apache Dubbo (以下简称Dubbo)重新开源之前,Dubbo已经被很多公司广泛用于生产环境并获得了良好的反馈,很多公司内部也会建立私有分支自己维护,其中Dubbox 就是基于Dubbo分支进行扩展并二次维护的。重新开源后,社区维护的Dubbo版本进行了大量“bug fix" .和特性支持,收到了大量Dubbo用户的支持和参与。编写本书的想法是在开源后提出来的,因此本书取名《深入理解Apache Dubbo与实战》。
|
6天前
|
数据采集 JSON JavaScript
C# 解析“JSON“格式数据和网络实战案例 入门
C# 解析“JSON“格式数据和网络实战案例 入门
|
23天前
|
Kubernetes Java 双11
抗住双十一!实战Alibaba笔记,深度解析阿里微服务亿级流量治理
随着微服务的发展及DDD领域驱动设计的兴起,越来越多的企业开始使用微服务架构。为了应对微服务化带来的难题,一批微服务组件与应用涌现出来,如辅助问题排查得分布式调用链追踪探针、简化部署运维的Kubernetes,以及本书介绍的熔断器组件等。
|
24天前
|
存储 缓存 安全
华为20级大佬暴力推荐!并发编程深度解析实战七天杀上GitHub榜首
并发编程!在一二线互联网公司的面试中,逃避不了也是必问的面试题,而绝大部分程序员对并发编程的理解也都停留在使用阶段。那么今天团长给大家推荐的这份资料,绝对可以帮到你。
|
1月前
|
分布式计算 安全 搜索推荐
阿里大牛评:入门到大成!GitHub新上线并发编程深度解析实战PDF
众所周知,在很多一二线互联网公司的面试中,并发编程几乎是必然会问的问题,而绝大部分程序员对并发编程的理解也都停留在使用阶段。 市面上几乎所有有关并发编程的书,通过搜索引擎查找了几乎所有的并发编程学习资料,展现的并发编程这个领域知识体系非常庞大。同时,随着对并发编程的深入研究,会发现里面有大量的设计思想(比如分而治之)非常值得学习和研究。
|
1月前
|
缓存 算法 安全
Go泛型解密:从基础到实战的全方位解析
Go泛型解密:从基础到实战的全方位解析
183 40
|
2月前
|
存储 关系型数据库 数据库
ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
|
2月前
|
机器学习/深度学习 监控 PyTorch
机器学习 - 混淆矩阵:技术与实战全方位解析
机器学习 - 混淆矩阵:技术与实战全方位解析
20 0
|
2月前
|
Web App开发 数据采集 JavaScript
Chrome开发者工具探秘:元素面板的神奇魔法与实战解析
Chrome开发者工具探秘:元素面板的神奇魔法与实战解析
22 1
|
2月前
|
设计模式 Go
Go语言事件系统设计解析:发布-订阅模式实战
Go语言事件系统设计解析:发布-订阅模式实战
34 0
推荐文章
更多
推荐镜像
更多