在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

Dropbox 的服务器和网络自动化运维实践

  • 2019-01-29
  • 本文字数:1087 字

    阅读完需:约 4 分钟

Dropbox的服务器和网络自动化运维实践

Dropbox 的工程团队写了一篇有关他们的网络和服务器配置和验证自动化工具 Pirlo 的文章。Pirlo 提供了一种可插拔架构,基于 MySQL 实现了一种自定义作业队列。


Dropbox 有自己的数据中心。Pirlo 工具由 TOR(机架顶部)交换机初始化程序、服务器配置程序和验证程序组成。它作为工作进程运行在一个通用的分布式作业队列上,这个队列基于 MySQL,提供了可用于跟踪运行作业进度和可视化历史数据的 UI。Pirlo 使用了可插拔模块,为每个阶段提供了大量日志记录,用于调试和分析自动化运行。Dropbox 有一个 NRE(网络可靠性工程)团队,负责构建、自动化和监控生产环境的网络。Dropbox 的大多数代码都是用 Python 编写的,不过目前还不清楚 Pirlo 是否也是用 Python 编写的。


交换机和服务器配置程序都使用了作业队列,它们的工作流程都很相似,队列管理器选择正确的作业处理程序来处理来自客户端的请求。作业处理程序运行已注册的插件,这些插件负责执行实际的检查和命令。插件执行特定的作业,发出状态码,并将状态发布到数据库日志。这是大多数作业队列的运行方式,因此很自然地就会有人问为什么这个团队没有选择像 Celery 这样的现有队列解决方案。文章的作者解释说:


我们不需要整个功能集,也不想要第三方工具的复杂性。内部原语为我们提供了更大的设计灵活性,一小组 SRE 就足以开发和运营 Pirlo 服务。


当收到客户端请求时,交换机配置器(叫作 TOR 启动器)就会启动。TOR 交换机是网络设计的一部分,机架上的服务器设备与同一机架上的网络交换机相连,网络交换机通常位于顶部。它尝试通过 gRPC 使用服务发现找到健康的服务器,然后队列管理器为该作业选择一个作业处理程序。交换机验证和配置是一个多步骤过程,从建立基本的连接开始。随后会执行各个插件,最终下载交换机配置并重启。


服务器配置和验证过程类似。我们使用 Debirf 创建的操作系统镜像启动验证器,这个操作系统镜像可以创建基于 RAM 的文件系统,完全从内存运行 Debian 系统。它的绰号叫 Hotdog,一个基于 Ubuntu 的镜像,可以通过网络启动并运行验证、基准测试和压力测试。测试结果被推送到数据库,并用于后续的分析。测试过程包括根据硬件工程团队批准的预定义配置列表验证各种硬件和固件组件。修好的机器在重新投入生产之前也需要经过这个测试套件的测试。


Pirlo 的 UI 显示了当前正在运行和已完成的作业的进度。Dropbox 曾经使用 playbooks(或 runbooks)来执行配置。其他一些工程团队运行自己的数据中心,他们也已经从基于 runbook 的配置转向零接触配置(ZTP),尽管使用了不同的方法。


查看英文原文:


https://www.infoq.com/news/2019/01/dropbox-datacenter-automation


2019-01-29 11:005401
用户头像

发布了 731 篇内容, 共 485.7 次阅读, 收获喜欢 2008 次。

关注

评论

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

软件测试培训 | 在霍格沃兹测试开发学社学习是种怎样的体验?

霍格沃兹测试开发学社

学习掌握哪些前端技术才能找到好工作?

小谷哥

参加大数据培训可以找到工作吗

小谷哥

【经验总结】HDI与普通PCB的4点主要区别

华秋PCB

工艺 PCB PCB设计

企业转型难?火山引擎数智平台提供数智升级新路径

字节跳动数据平台

大数据 数据中台 12 月 PK 榜

手写现代前端框架diff算法-前端面试进阶

helloworld1024fd

JavaScript

玩转云端 | 数据管理深似海,运维如何变“路人”?

天翼云开发者社区

大数据 数据仓库 数据存储

盘点那些日赚万金的爆款小游戏

FinFish

小游戏 小程序游戏 微信小游戏 爆款小游戏

HMS Core 3D流体仿真技术,打造移动端PC级流体动效

最新动态

汽车之家基于 Milvus 的向量检索平台实践

Zilliz

数据库 向量检索 Milvus

数据存储,消息队列的高可用保障

C++后台开发

数据库 数据结构 消息队列 后端开发 linux开发

专利解析|数据中台—数据流配置弹框交互优化方法

元年技术洞察

数据中台 数字化转型 专利解析

天翼云Serverless边缘容器,为云上创新开启加速度

天翼云开发者社区

云计算 边缘计算 边缘容器

选择从零开发一款小游戏如何能实现变现

Onegun

小游戏 小游戏开发 H5小游戏

【面经分享,附答案】字节系统架构,一面,后端开发

小小怪下士

Java 程序员 面试

架构实战营 模块3-1

西山薄凉

「架构实战营」

Amazon 4.7 星评,领域新经典,了解服务设计就读它

图灵社区

产品经理 设计模式 服务设计

8个Spring事务失效的场景,你碰到过几种?

JAVA旭阳

Java spring

Clickhouse表引擎探究-ReplacingMergeTree

京东科技开发者

Clickhouse 数据分片 数据验证 存储数据 MergeTree

Java程序员培训机构怎么选

小谷哥

在北京选择哪家大数据培训机构

小谷哥

迁移速度与计算性能兼得!天翼云DirtyLimit技术大显身手

天翼云开发者社区

虚拟机 迁移 弹性计算

RocketMQ Schema——让消息成为流动的结构化数据

Apache RocketMQ

RocketMQ

架构实战 - 模块4作业

mm

redis sentinel #架构实战营

如何优化大场景实时渲染?HMS Core 3D Engine这么做

最新动态

这波无感升级有点秀——天翼云QEMU组件热升级方案来了

天翼云开发者社区

云计算 云主机 虚拟化

培训班出来前端程序员好找吗?

小谷哥

社招前端一面经典手写面试题(边面边更)

helloworld1024fd

JavaScript

手写JavaScript常见5种设计模式

helloworld1024fd

JavaScript

前端二面必会手写面试题汇总

helloworld1024fd

JavaScript

Dropbox的服务器和网络自动化运维实践_服务革新_Hrishikesh Barua_InfoQ精选文章