首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >当年,我们是怎么平滑上云的?

当年,我们是怎么平滑上云的?

作者头像
架构师之路
发布于 2020-03-23 10:10:06
发布于 2020-03-23 10:10:06
6880
举报
文章被收录于专栏:架构师之路架构师之路

2015年底的时候,到家集团启动了一个“凌云”项目,将所有系统从北京的M6机房迁移到阿里云,完成技术栈“上云”。项目涉及几百台机器,到家所有的业务,所有的系统,需要所有技术部门配合,耗时超过一个季度,是一个不折不扣的大项目。

今天,简单的聊聊当时的架构方案,我们是如何平滑进行机房迁移的。

【1】核心问题一,被迁移的系统是一个什么样的架构呢?

上图是一个典型的互联网单机房系统架构:

(1)上游是客户端,PC浏览器或者APP;

(2)然后是站点接入层,做了高可用集群;

(3)接下来是服务层,服务层又分为两层,业务服务层基础服务层,也都做了高可用集群;

(4)底层是数据层,包含缓存数据库

该单机房分层架构,所有的应用、服务、数据是部署在同一个机房,其架构特点是“全连接”:

(1)站点层调用业务服务层,业务服务复制了多少份,上层就要连接多少个服务;

(2)业务服务层调用基础服务层,基础服务复制了多少份,上层就要连多少个服务;

(3)服务层调用数据库,数据库冗余了多少份,就要连多少个数据库;

例如:站点接入层某一个应用有2台机器,业务服务层某一个服务有4台机器,那肯定是上游的2台会与下游的4台进行一个全相连。

全连接如何保证系统的负载均衡与高可用?

全连接架构的负载均衡与高可用保证,是通过连接池实现的。不管是NG连web,web连业务服务,业务服务连接基础服务,服务连接数据库,都是这样。

划重点1:

单机房架构的核心是“全连接”。

【2】核心问题二,机房迁移的目标是什么?

单机房架构的特点是“全连接”,机房迁移要做一个什么样的事情呢?

如上图:

迁移之前,系统部署在机房A(M6)内,是单机房架构。

迁移之后,系统部署在机房B(阿里云)内,仍然是单机房架构,只是换了一个机房而已。

有什么好的迁移方案?

最容易想到的一个方案,把所有服务在新机房全都部署一套,然后把流量切过来。

这个方案存在什么问题?

问题1:得停止服务,丧失了可用性。

问题2:即使可以接受停服,当有几百台机器,几千个系统的时候,“部署一套,切流量”一步成功的概率很低,风险极高,因为系统实在太复杂了。

机房迁移的难点,是“平滑”迁移,整个过程不停服务,并能够“蚂蚁搬家”式迁移。

划重点2:

机房迁移方案的设计目标是:

(1)平滑迁移,不停服务;

(2)可以分批迁移;

(3)随时可以回滚;

【3】核心问题三,暂时性的多机房架构能否避免?

如果想要平滑的迁移机房,不停服务,且逐步迁移,迁移的过程中,势必存在一个中间过渡阶段,两边机房都有流量,两边机房都对外提供服务,这就是一个多机房的架构。

迁移过程中,多机房架构不可避免。

前文提到的单机房架构,是一个“全连接”架构,能不能直接将单机房的全连架构套用到多机房呢?

如果直接将单机房“全连接”的架构复制到多机房,会发现,会有很多跨机房的连接:

(1)站点层连接业务服务层,一半的请求跨机房;

(2)业务服务层连接基础服务层,一半的请求跨机房;

(3)基础服务层连数据层,一半的请求跨机房;

大量的跨机房连接会带来什么问题?

同机房连接,内网的性能损耗几乎可以忽略不计。

一旦涉及到跨机房的访问,即使机房和机房之间有专线,访问的时延可能增加到几毫秒,甚至几十毫秒(跟机房间光纤距离有关)。

举个例子,假设户访问一个页面,需要用到很多数据,这些数据可能需要20次相互调用(站点调用服务,服务调用缓存和数据库等),如果有一半调用跨机房(10次调用),机房之间延迟是20毫秒,因为跨机房调用导致的请求迟延就达到了200毫秒,这个是绝不能接受的。

划重点3:

想要平滑的实施机房迁移,临时性的多机房架构不可避免。

小结

(1)单机房架构的核心是“全连接”。

(2)机房迁移方案的设计目标是:平滑迁移,不停服务;可以分批迁移;随时可以回滚;

(3)想要平滑的实施机房迁移,临时性的多机房架构不可避免;

多机房架构应该如何设计?

系统迁移步骤又该如何?

今天累了,且听明天分解

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
多机房多活架构,究竟怎么玩?
《当年,我们是怎么平滑上云的?》一文中提到了上云的背景,将所有的系统,从一个机房,迁移到另一个机房。
架构师之路
2020/03/23
1.4K0
多机房多活架构,究竟怎么玩?
从IDC到云端架构迁移之路(GITC2016)
大家好,很高兴来到GITC2016的舞台,我是来自58到家的沈剑,今天我分享的主题是《58到家从IDC到云端架构迁移之路》。 机房迁移是一个很大的动作: 15年在58同城实施过一次(“逐日”项目),几千台物理机,从IDC迁到了腾讯的天津机房,项目做了10个多月,跨所有的部门,与所有的业务都相关; 16年在58到家又实施了一次(“凌云”项目),几百台虚拟机,从IDC迁到阿里云,前后大概一个季度的时间,也是所有技术部门都需要配合的一个大项目。 “单机房架构-全连” 要说机房迁移,先来看看被迁移的系统是一个什么样
架构师之路
2018/03/01
1.6K0
从IDC到云端架构迁移之路(GITC2016)
上云不停服,自顶向下的平滑机房迁移方案!!!
《多机房多活架构,究竟怎么玩?》说明了在机房迁移的过程中,一定有一个“多机房多活”的中间状态:
架构师之路
2020/03/23
2.5K0
上云不停服,自顶向下的平滑机房迁移方案!!!
从“挖光缆”到“剪网线”|蚂蚁金服异地多活的微服务体系
本文介绍了蚂蚁金服异地多活单元化架构的原理,以及微服务体系在此架构下的关键技术实现。
数据和云
2018/12/19
1.4K0
从“挖光缆”到“剪网线”|蚂蚁金服异地多活的微服务体系
平台突然涌入几亿外国人,架构要怎么改造?(第37讲)
面试官:“全连接”分层架构能直接扩展到多机房多活吗,我们老板有计划在北美搞一个机房?
架构师之路
2025/01/22
720
平台突然涌入几亿外国人,架构要怎么改造?(第37讲)
【干货】MySQL 分库分表及其平滑扩容方案
众所周知,数据库很容易成为应用系统的瓶颈。单机数据库的资源和处理能力有限,在高并发的分布式系统中,可采用分库分表突破单机局限。本文总结了分库分表的相关概念、全局ID的生成策略、分片策略、平滑扩容方案、以及流行的方案。
IT技术小咖
2019/06/26
11K1
【干货】MySQL 分库分表及其平滑扩容方案
多机房多活,多机房平滑迁移架构方案全集(上+中+下)
放假前三天,写了三篇长文,关于多机房多活,多机房平滑迁移架构与方案的。可能是临近放假,又亦或疫情的影响,阅读都比较低,现将“上中下”汇总成全集,一窥全貌,欢迎错过的同学补课。
架构师之路
2020/03/23
1.3K0
十年验证,腾讯数据库RTO<30s,RPO=0高可用方案首次全景揭秘
为帮助开发者更好地了解和学习分布式数据库技术,2020年3月,腾讯云数据库、云加社区联合腾讯TEG数据库工作组特推出为期3个月的国产数据库专题线上技术沙龙《你想了解的国产数据库秘密,都在这!》,邀请数十位鹅厂资深数据库专家每周二和周四晚上在线深入解读TDSQL、CynosDB/CDB、TBase三款鹅厂自研数据库的核心架构、技术实现原理和最佳实践等。三月为TDSQL专题月,本文将带来直播回顾第二篇《破解分布式数据库的高可用难题:TDSQL高可用方案实现》。
分布式数据库TDSQL
2020/03/25
2.3K0
十年验证,腾讯数据库RTO<30s,RPO=0高可用方案首次全景揭秘
分布式系统常见问题总结[通俗易懂]
1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);
全栈程序员站长
2022/08/31
9400
数据库秒级平滑扩容架构方案
一、缘起 (1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行: 如上图:服务层配置
架构师之路
2018/03/01
2.9K0
数据库秒级平滑扩容架构方案
破解分布式数据库的高可用难题:TDSQL高可用方案实现
腾讯云数据库国产数据库专题线上技术沙龙正在火热进行中,3月12日张文的分享已经结束,没来得及参与的小伙伴不用担心,以下就是直播的视频和文字回顾。
腾讯云数据库 TencentDB
2020/03/25
4K0
CRS : 腾讯云 Redis 产品架构解析
该文介绍了如何基于自研的Grocery框架实现可伸缩的Redis服务,并提供了成本、容量、性能等方面的优化措施。同时,还介绍了一种实现无缝数据迁移的机制,以及一种高可靠的、可扩展的、高性能的Redis服务。
腾讯云开发者社区
2017/04/27
14.1K0
CRS : 腾讯云 Redis 产品架构解析
云时代数据库的核心特点
作者简介:崔秋,PingCAP 联合创始人,重度开源爱好者,曾任职于搜狗、豌豆荚,长期从事广告系统基础组件相关的研究,现主要从事开源 NewSQL 数据库 TiDB/TiKV 相关的设计和研发工作。
PingCAP
2017/05/18
2.1K0
谈谈系统复杂度中的高可用与高性能
这个定义的关键在于“ 无中断”,但恰好难点也在“无中断”上面,因为无论是单个硬件还是单个软件,都不可能做到无中断,硬件会出故障,软件会有bug;硬件会逐渐老化,软件会越来越复杂和庞大……
架构狂人
2023/08/16
5620
谈谈系统复杂度中的高可用与高性能
数据库相关中间件介绍
https://www.cnblogs.com/grefr/p/6087942.html#top
保持热爱奔赴山海
2019/09/18
2.3K0
数据库相关中间件介绍
数据库中间件
作者:[美]威廉·肯尼迪(William Kennedy)布赖恩·克特森(Brian
李海彬
2018/07/26
2.7K0
数据库中间件
浅析流量洪峰下的云开发高可用架构设计
艳杰,腾讯高级前端开发工程师,云开发团队核心开发专注于中后台系统开发以及系统架构设计。
腾讯云开发TCB
2020/06/03
6850
跨园区容灾,升级不停服:高可用负载均衡集群实践
腾讯云中间件团队
2017/03/31
4.7K0
跨园区容灾,升级不停服:高可用负载均衡集群实践
腾讯分布式数据库TDSQL金融级能力的架构原理解读
为帮助开发者更好地了解和学习分布式数据库技术,2020年3月,腾讯云数据库、云加社区联合腾讯TEG数据库工作组特推出为期3个月的国产数据库专题线上技术沙龙《你想了解的国产数据库秘密,都在这!》,邀请数十位鹅厂资深数据库专家每周二和周四晚上在线深入解读TDSQL、CynosDB/CDB、TBase三款鹅厂自研数据库的核心架构、技术实现原理和最佳实践等。三月为TDSQL专题月,本文将带来直播回顾第一篇《腾讯自研分布式数据库TDSQL核心架构及特性拆解》。
分布式数据库TDSQL
2020/03/18
6.9K0
腾讯分布式数据库TDSQL金融级能力的架构原理解读
同城双活与异地多活架构分析
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。服务多活是高可用架构重要实施手段,本文介绍了一些业界常用的多活手段例如同城双活、两地三中心、异地多活架构设计方案并详述了各种方案的优缺点。
2020labs小助手
2020/09/14
13.2K0
推荐阅读
相关推荐
多机房多活架构,究竟怎么玩?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档