2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:005364
用户头像

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

关注

评论

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

自研发RTC退退退!接入第三方RTC才是真的香

擎声科技

RTC 实时音视频 社交APP出海 泛娱乐出海 擎声Qtt

灵感宝盒图谱全新改版!代码实验室开启报名丨RTE NG-Lab 双周报

声网

人工智能 RTE NG-Lab

故障复盘后的告警如何加出效果?浙江移动等老司机总结了6条注意事项

TakinTalks稳定性社区

文件管理-Linux系统VIM编辑

Albert Edison

Linux centos 运维 vim教程 8月月更

合并两个有序单链表,对象析构这一着我实在没想到。

清风莫追

8月月更

Gartner:云安全面临的三大挑战以及三个对应策略

BeeWorks

当云走向行业垂直化,企业该如何应对?

BeeWorks

排查 log4j2 安全漏洞的一次经历

观测云

融云 | 企业通讯录的设计与实现

融云 RongCloud

通信 企业

Jedis 客户端

武师叔

8月月更

头脑风暴:完全平方数

HelloWorld杰少

算法 LeetCode 数据结构, 8月月更

个推漫话数据智能 | 《天才基本法》中的贝叶斯网络及原理解读

个推

人工智能 机器学习 深度学习 算法模型

RPC与REST对比指南

阿泽🧸

Rest 8月月更

兼容认证|天融信太行云与观测云完成产品兼容性互认证

观测云

Seata-php 入门与下半年展望

apache/dubbo-go

科创板的一束“海光”,正在让中国半导体发展之路更清晰

脑极体

leetcode 128. Longest Consecutive Sequence 最长连续序列(中等)

okokabcd

LeetCode 数据结构与算法

C++继承中的同名成员处理方式与同名静态成员处理方式

CtrlX

c c++ 面向对象 代码 8月月更

【数独 1】不回溯,试试候选数法1ms高效解数独谜题-C++实现

清风莫追

8月月更

开源一夏|聆听信通院何所长开源生态发展的所记所思

穿过生命散发芬芳

开源 8月月更 SUSECON

15条建议,把技术成果写成一篇高质量学术论文

阿里技术

经验分享

【LeetCode】设计有序流Java题解

Albert

LeetCode 8月月更

彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-项目入口与路由EP01

刘悦的技术博客

Go golang Go web Go 语言 golang 面试

Tapdata 与麒麟软件完成兼容性互认证,国产化生态布局再跃步

tapdata

Tapdata Tapdata架构

音视频大佬离职后,我是如何在短时间内在音视频开发做出一个性价比高的最优方案

擎声科技

开发者 RTC sdk 实时音视频 擎声Qtt

<T>和<?>区别

六月的雨在InfoQ

开源 T 8月月更

Apache Doris 助力网易严选打造精细化运营 DMP 标签系统

SelectDB

数据分析 OLAP Doris 多维分析 DMP

如何开发一款基于 Vite+Vue3 的在线表格系统(上)

葡萄城技术团队

Vue 前端 vite 框架 系统开发

iofod - 为攻城师们打造的低代码平台

iofod jude

低代码 实用工具

【Java】:你知道字符串的格式化输出吗?

翼同学

Java 前端 编程语言 8月月更

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