写点什么

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

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

关注

评论

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

这样Debug,排查问题效率大大提升...

程序知音

【存疑】爬虫学习中decode问题

Sher10ck

存疑

设计模式和七大设计原则不难的

知识浅谈

设计模式 设计原则 9月月更

打破联接壁垒,华为云IoT到底强在哪?

华为云开发者联盟

云计算 后端 物联网 华为云 企业号九月金秋榜

ESP32-C3入门教程 基础篇(八、NVS — 非易失性存储库的使用)

矜辰所致

ESP32-C3 9月月更 NVS

PipyJS - 函数式网络编程语言

Flomesh

Service Mesh 服务网格

数字化办公,企业OA软件技术该如何发力?

FinClip

爆肝整理5000字!HTAP的关键技术有哪些?| StoneDB学术分享会#3

StoneDB

数据库 HTAP StoneDB 企业号九月金秋榜 9月月更

元宇宙场景技术实践|虚拟直播间搭建教程

ZEGO即构

音视频开发 元宇宙 虚拟直播

netty原理分析

小小怪下士

Java 编程 程序员 后端 Netty

成为优秀程序员的8种方法

小小怪下士

Java 程序员 职业发展

前端面试哪些是必须要掌握的

loveX001

JavaScript 前端

英特尔Wi-Fi 7速率提升5倍,为多应用场景带来改变

科技之家

2.69分钟完成BERT训练!新发CANN 5.0加持

华为云开发者联盟

人工智能 企业号九月金秋榜

腾讯云,DevOps 领导者!

CODING DevOps

腾讯云 DevOps IDC CODING

Java 面试之技术框架

小小怪下士

Java spring 编程 程序员

35岁程序员自荐:我所掌握的架构技术

小小怪下士

Java 程序员 中年危机

长安链ca 容器部署(解决无法访问Mysql问题)

长安链

架构师成长之路——什么是架构师

小小怪下士

Java 程序员 架构 后端

EasyCV带你复现更好更快的自监督算法-FastConvMAE

阿里云大数据AI技术

深度学习 算法 计算机视觉

云图说丨DDoS防护解决方案:DDoS大流量攻击防得住

华为云开发者联盟

云计算 后端 华为云 企业号九月金秋榜

基于云原生技术打造全球融合通信网关

阿里云CloudImagine

云原生 网络 通信 通信云

模块一

早安

极客时间架构训练营

为什么Java中有三种基础的类加载器?

小小怪下士

Java 编程 程序员 程序

中国DevOps平台市场,华为云再次位居领导者位置

华为云开发者联盟

云计算 华为云 企业号九月金秋榜

一个代码仓库(免费)与技术点 的故事

八点半的Bruce.D

GitHub Linux 网络服务 GitHub仓库

Lua脚本在Redis事务中的应用实践

京东科技开发者

数据库 redis 事务 开发语言 Lua脚本

开发者问第四期|统一扫码服务、机器学习服务等问题解答

HarmonyOS SDK

2022最新腾讯面经分享:Java 面试刷题 PDF(17 大专题 )

Java-fenn

Java 编程 程序员 面试 java面试

老生常谈!数据库如何存储时间?你真的知道吗?

小小怪下士

Java 数据库 编程 程序员

2022年面试复盘大全500道:Redis+ZK+Nginx+数据库+分布式+微服务

小小怪下士

数据库 redis 分布式 微服务 java面试

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