QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

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

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

关注

评论

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

苹果MR Vision Pro将会带动哪些零部件出货?

元器件秋姐

苹果 AR 交互 vr MR

TiDB 7.1 LTS 发版:为关键业务提供业务稳定性和多租户场景支持

编程猫

TiDB pingCAP

华为云GaussDB,如何为企业数字创新保驾护航?

YG科技

聚焦 AIGC,函数计算为 AI 应用插上腾飞翅膀

Serverless Devs

Serverless FC AIGC

备战金九银十:大厂面试官必问MySQL连环炮全梳理,你扛得住嘛?

程序员小毕

Java MySQL 数据库 程序员 面试

服务型企业为什么要做财务共享中心?

用友BIP

提升效率:P4VFS让虚拟文件同步更迅速、更简单

龙智—DevSecOps解决方案

文件同步 虚拟文件同步 Virtual File Sync

肝到爆!通过Canal如何优雅的将MySQL同步到ES?

Java全栈架构师

Java MySQL 程序员 后端 ES

PAG动效框架源码笔记 (五)渲染流程

olinone

ios android 动效 渲染

打卡有礼!快来 2023 开放原子全球开源峰会找龙蜥玩~

OpenAnolis小助手

开源 操作系统 龙蜥社区 开放原子全球开源峰会 龙蜥实验室

做开发5年,这8个高效开发好习惯我悟了🔥

引迈信息

程序员 前端 低代码 JNPF

软件测试丨Allure2报告中添加用例支持tags标签、失败重试功能

测试人

程序员 软件测试 测试开发 测试用例 Allure

怎样区分试验与仿真的关系?

思茂信息

仿真软件 仿真技术

2023年数智人力管理不容错过的2大神器

用友BIP

人力资源 数智人力

中企出海管理难,复杂的国际形势下怎么用对人?

用友BIP

中企出海

再也不怕“卡脖子”了?华为云数据库GaussDB究竟有什么神奇功能?

YG科技

理论+示例,详解GaussDB(DWS)资源管理

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

“站在后天看明天”:华为给金融广厦架起数字栋梁

脑极体

金融 数字化 智能化

this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(一)

沉浸式趣谈

JavaScript this指针 this

MegEngine 动态执行引擎-Imperative Runtime 概述

MegEngineBot

深度学习 开源 动态图 MegEngine

如何保障医疗机器人的功能与安全?这几条编码标准你一定要了解

龙智—DevSecOps解决方案

医疗机器人 编码标准

Kubernetes 集群管理:Kurator or Kubespray

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

中国银行开启数智人力管理新征途

用友BIP

人力资源 数智人力

详解驱动开发中内核PE结构VA与FOA转换

华为云开发者联盟

开发 华为云 驱动开发 华为云开发者联盟 企业号 6 月 PK 榜

优质高效!阿里内部超高质量的k8s+Jenkins笔记,技术与实战齐飞

程序知音

2023上海国际嵌入式展 | 如何通过人工智能驱动的自动化测试工具提升嵌入式开发效率

龙智—DevSecOps解决方案

嵌入式 嵌入式软件 嵌入式设计 嵌入式开发

Postman 前后端都适用吗?

Liam

前端 后端 开发 Postman API

SpringBoot 升级所踩过的坑 (二)

技术小生

6 月 优质更文活动

华为云GaussDB,如何给世界一个更优选择?

YG科技

看过才知道,这套SpringCloudAlibaba笔记,把微服务玩的出神入化!

程序知音

Java 微服务 SpringCloud java架构 后端技术

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