大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

从云到数据中心,Dropbox 五年反向迁移的经验总结

  • 2020-03-05
  • 本文字数:2314 字

    阅读完需:约 8 分钟

从云到数据中心,Dropbox 五年反向迁移的经验总结

如今,将数据迁移上云似乎成为了企业转型的主流,但在企业上云的潮流中,有一位逆行者,Dropbox 从 2015 年就开始将数据从云端迁移到内部数据中心。截止到目前,Dropbox 反向迁移已有 5 年时间,实际效果到底如何呢?

Dropbox 为什么要反向迁移呢?

故事可能要从 2015 年 AWS re:Invent 大会讲起,当时 AWS 首席执行官 Andy Jassy 在主题演讲中表示:“上云之后,企业中最为稀缺的软件工程师就可以从繁重的基础设施运营工作中解放出来,真正帮助企业实现业务的差异化优势。”


当 Andy Jassy 在会议上大谈云计算的好处时,曾是 AWS 明星用户的 Dropbox 在早些时候却选择离开 AWS,离开云,朝着另一个方向发展。2015 年 2 月至 10 月,Dropbox 成功将 90% 的用户数据从云端迁移至内部数据中心,这就是 Magic Pocket 项目。


为什么 Dropbox 要反向迁移呢?一个比较直观的原因就是成本,Dropbox 的工程副总裁 Aditya Agarwal 曾表示,“云计算公司也是要赚钱的,规模大了以后,自建反而可以节省大量资金。”


其次,云计算公司不足以支撑 Dropbox 的业务规模和需求。2016 年,Dropbox 公司基础设施副总裁 Akhil Gupta 在博客中写道:“我们一直很清楚,建立自身业务所需要的基础设施只能由我们自己亲手构建。因为开源社区中的任何成果都不足以可靠支撑我们的庞大业务规模与具体需求。事实上,全球范围内很少有哪家企业拥有像我们这样严苛的存储需求。”


第三,性能问题。Dropbox 认为自身产品的核心竞争力是性能,如果在内部数据中可以从端到端自定义整个技术栈,在特定的用例下提升性能。另外,Dropbox 的块存储与其它公司不同,因此可以根据产品规模和特定的用例来使用硬件和软件,提升单位经济效益。

从 Dropbox 反向迁移案例中,我们能获得什么

Dropbox 刚开始进行反向迁移时,大家都认为是“偶发事件”。五年过去了,其它企业和组织也意识到了公有云存在的局限,反向迁移有其存在的合理性。在这样的背景下,Dropbox 的 Magic Pocket 项目自然成为了一个值得研究的案例。


从 Dropbox 反向迁移案例中,我们可以获得什么样的经验呢?

以更小的时间窗口来规划

Dropbox 公司数据中心物理基础设施负责人 Latane Garetson 在接受采访时表示,“Dropbox 公司制定了一项计划,我们关注自身容量现状,并借此确定容量的之后增长预期。”根据惯例,他带领的团队为数据中心建立起规划模型。


Garetson 带领的团队为数据中心建立规划模型,Dropbox 采取了一种相当小众的容量规划方法。Garetson 团队以短期计划为基础,将迁移周期划分为 6 个月甚至是 3 个月,并把时间窗口控制在这样的水平,以细粒度方式专注解决具体问题。


Garetson 自己也认为这是一种“离经叛道”的处理方式。以更小的时间窗口做规划,并不意味着 Dropbox 放弃进行年度增长预测,只是在年度增长预测中,其与软件团队的沟通与预期交付周期总会出现多次变化。因此,Dropbox 的做法是,在整个迁移过程中,基础设施团队与内部软件团队紧密合作,首先确定今年的运营期望是什么,然后据此进行容量模型预测,按照季度、月度、甚至是星期来对预测结果做持续更新。

软件先行,硬件再跟上

大多数 IT 部门部署工作的起点是先获取或者自主构建硬件,然后对硬件进行划分和部署,并将其整合到服务集群中,与业务软件融合。而 Dropbox 的做法正好相反。


Dropbox 是软件团队先行,软件团队根据业务活动先做出容量预测,然后为数据中心设计出服务器模板,团队中的开发者按照“图纸”进行工作,预先完成服务配置与服务器扩展规划。


打个比方,可能比较类似于麦当劳的得来速餐厅,软件团队在窗口处下达订单,将上述配置结果按顺序交付给硬件团队,后者根据预期容量需求完成生产部署。由于软件团队方面已经制定了配置计划,因此新增服务器拥有自配置能力,不再需要硬件工程师分担额外的配置压力。


Garetson 认为整个迁移过程中最重要的因素是构建时间。2015 年,Dropbox 把构建周期从六个月缩短为三个月。而制定的年度规划方案中,也会设置时间节点,如果预测结果发生变化,那么就可以根据节点对规划作出调整,从而将实际的构建周期控制在三个月。


构建周期的缩短,说明 Dropbox 对项目的控制力较强。一旦某项构建计划因意外原因而推迟,Dropbox 可以随时将其取消,并在不中断正常业务的同时启动新计划。从微服务协调到分布式软件组件调度(当组件未响应时及时切换),Dropbox 认为只要规划本身关注总体需求(而非一时一地的滞后问题),公司就能够更灵活地实现容量构建目标。

容量变化

数据中心的容量变化也是需要时刻关心和密切关注的,Dropbox 技术团队能够在当前窗口内的任意给定时间内,根据新容量的交付规划对现有库存进行建模。通过这种方法,Dropbox 可以将整体容量目标拆分成多个可行的小项目。


相比于大多数存储用途的数据中心,过去五年中,Dropbox 基础设施中的机架密度始终保持增长。密度的提升,意味着总机架占地空间降低的同时,客户可用的存储容量却一直在快速上涨。Garetson 表示:“相当于我们拥有了更多的物理空间。随着密度的增加,以往需要 100 台机柜才能满足的需求,如今只要 30 台就可以解决。”


对于云存储厂商来说,动态增加容量建模的方法似乎正是最理想的规划方法。到目前为止,大多数企业的数据中心都会根据核心服务与应用程序的空间与容量需求进行设计。Dropbox 则反其道而行之,以存储介质的增长作为前提,以此推断能够承载多少核心服务,最终将规划周期控制在 6 个月以内。如果其它类似场景的企业,能够和 Dropbox 一样建立一套规划模型,那么就可以将服务运营体系保持在内部数据中心,而不是只有上云一个选择。


参考文章:


https://www.datacenterknowledge.com/manage/dropbox-s-reverse-migration-cloud-own-data-centers-five-years


2020-03-05 09:002093

评论

发布
暂无评论
发现更多内容

敏捷宣言和原则

老王同学

读书笔记

写一个epoll的服务端程序

linux大本营

事件驱动 epoll C++ I/O 多路复用

constchar*类型的实参与char*类型的形参不兼容

linux大本营

指针 const C++

世优科技AI数字人产品“世优BOTA”发布!全面提升AI虚拟员工能力

联营汇聚

C语言system函数判断返回错误

linux大本营

C语言

构建数据中台——数据只有被使用起来,才能创造价值

引迈信息

数据库 数据中台 低代码 JNPF 数字化、操作系统、中台

nvmf协议

linux大本营

网络协议 nvme RDMA技术

linux如何计算一个shell程序运行的时间

linux大本营

Shell Linux系统

如何执行mysql文件

linux大本营

MySQL 数据库

浅析低代码开发的典型应用构建场景

力软低代码开发平台

seq命令

linux大本营

Shell 脚本

logrotate怎么使用

linux大本营

Linux 日志管理

一个能在Linux下使用C++编写的访问RabbitMQ接收发送数据的可编译代码

linux大本营

RabbitMQ 消息队列 C++

再写一个版本,要求使用类进行封装,提供完善的接口,并对函数进行完善注释

linux大本营

RabbitMQ AMQP C++

qemu怎么用

linux大本营

qemu

linux如何设置一个环境变量,在shell退出之后也不会失效

linux大本营

Linux Shell export

DevOps 与研发效能资深技术专家张乐:研发效能的升维思考与降维执行

万事ONES

编程中最难的就是命名?这几招教你快速上手

阿里巴巴云原生

阿里云 编程 云原生

FBEC大会 | 瑞云科技 CTO 赵志杰:元宇宙时代的基础设施——实时云渲染

3DCAT实时渲染

实时渲染 实时云渲染 实时渲染云

【源码分析】【seata】at模式分布式事务-tm实现逻辑

如果晴天

源码分析 分布式事务 seata Seata框架

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

收到请回复

程序员 java

已知非空线性链表由list指出,链结点的构造为(data,next)。写-算法,将链表中数据域值最小的那个链结点移到链表的最前面。要求:不得额外申请新的链结点

linux大本营

链表 C语言 数据结构与算法

CouldNOTfindGMP(missing:GMP_LIBRARYGMP_INCLUDE_DIR)CallStack(mostrecentcallfirst)

linux大本营

Linux GNU cmake

使用Plist编辑器——简单入门指南

九层天塔DApp合约系统开发搭建

薇電13242772558

NFT

Logrotate正则匹配文件名

linux大本营

正则表达式 Linux

PerformingTestCOMPILER_KNOWS_STDLIB-Failed

linux大本营

cmake C++

为开发者搭建创新舞台 OpenHarmony创新赛正式启动

最新动态

发送GET请求时,浏览器请求的参数是指什么

linux大本营

HTTP url GET

详细讲解spdk里的examples/nvmf/nvmf/nvmf.c文件

linux大本营

nvme 文件存储

从云到数据中心,Dropbox 五年反向迁移的经验总结_架构_田晓旭_InfoQ精选文章