写点什么

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

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

关注

评论

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

Atlassian FaaS 云开发平台Forge解析

填空时光

敏捷 Faas Atlassian Jira

低代码丨仪表盘使用技巧—【倒计时】

优秀

倒计时 数据看板

架构实战营 - 模块 2 作业

小圆

Data Structure Basics in Python

无人之路

数据结构 Python.

数据权限就该这么设计!!!

小小怪下士

Java 程序员 数据权限

架构训练营-模块一作业

Sam

架构实战营

SpringBoot 整合 Redis,再也不用求别人了

@下一站

redis 程序设计 12月日更 12月月更 springboot整合redis

实战整了一个后台服务,真香!

风铃架构日知录

多线程 线程池 网络 HTTP CGI

数据权限就该这么设计!!!

风铃架构日知录

数据 优化 数据权限 rbac 数据库权限

2022-12-17:订单最多的客户。以下数据,结果输出3。请问sql语句如何写? DROP TABLE IF EXISTS `orders`; CREATE TABLE `orders` ( `

福大大架构师每日一题

数据库 福大大

性能优化-内存泄漏、内存溢出、cpu占用高、死锁、栈溢出、FullGC频繁检测手段-总结与分享

C++后台开发

性能优化 后端开发 内存泄漏 linux开发 C++开发

聊聊好牛的 MySQL 日志设计!

风铃架构日知录

MySQL Java、 sql java\ Undo Log

Design a messaging queue table in MySQL

David

#架构实战营

ChatGPT:日常编程助手

无人之路

编程 ChatGPT

ABBYY FineReader PDF2023最新版下载

茶色酒

abbyy

ZBC陆续在主要CEX开启Staking成近期利好,锁定市场大部分流通量

西柚子

ZBC陆续在主要CEX开启Staking,锁定市场大部分流通量成大利好

鳄鱼视界

设备资产管理系统有什么用?

优秀

设备管理 设备资产管理系统

Raydium被盗造成巨额损失,但Zebec Protocol以及$ZBC并未受影响

股市老人

架构实战营模块8作业

冷夫冲

架构 构架 「架构实战营」

Verilog语言的条件语句

芯动大师

Verilog Verilog语法 Verilog的条件语句

Raydium被盗造成巨额损失,但Zebec Protocol以及$ZBC并未受影响

西柚子

数据预处理

穿过生命散发芬芳

数据处理 12月月更

2022 Gartner全球云数据库管理系统魔力象限发布 腾讯云数据库入选

科技热闻

Raydium被盗造成巨额损失,但Zebec Protocol及其生态并未受影响

BlockChain先知

CleanMyMac2023版本要不要更新下载?

茶色酒

CleanMyMac X CleanMyMac X2023

一文了解 Dubbo 的代码架构

Apache Dubbo

Java 开源 源码 微服务 云原生

架构训练营-第10期-模块2作业

Geek_4db2d5

模块2

KING

精华推荐 | 【深入浅出RocketMQ原理及实战】「性能原理挖掘系列」透彻剖析贯穿RocketMQ的事务性消息的底层原理并在分析其实际开发场景

码界西柚

分布式事务 RocketMQ 可靠消息最终一致 12 月 PK 榜

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