写点什么

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

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

关注

评论

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

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

JavaScript LeetCode

排障最后一公里,“融合”型的日志平台应该如何建设?

嘉为蓝鲸

运维 监控 日志 可观测性 告警

JavaScript刷LeetCode拿offer-经典高频40题

Geek_07a724

JavaScript LeetCode

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

华为开发者大会 2022即将举办 HarmonyOS开发者用“代码”创造无限可能

极客天地

WhaleDI自助建模实践与探索

鲸品堂

AI Codec 建模

开源代码安全 | 微软是如何应对开源代码安全问题的?

龙智—DevSecOps解决方案

开源 开源代码

嘉为蓝鲸可观测性产品获Gartner Toolkit 推荐

嘉为蓝鲸

运维 监控 Gartner 可观测

Sanitizers 系列之 address sanitizer 原理篇

网易云信

数据库 算法 系统

使用Docker部署软件运行环境

源字节1号

软件开发 前端开发 后端开发 小程序开发

企业上云选择哪家好?需要考虑哪些因素?

行云管家

公有云 企业上云 云厂商

ITSM | 对话龙智资深技术顾问,探讨ITSM实践如何从过去转向未来

龙智—DevSecOps解决方案

ITSM ITSM解决方案

uniapp 提示 打包时未添加 push模块

源字节1号

软件开发 前端开发 后端开发 小程序开发

JavaScript刷LeetCode拿offer-链表篇

Geek_07a724

JavaScript LeetCode

DevOps下测试的生存之道

嘉为蓝鲸

DevOps 测试

滴滴Java后台3面题目:网络+内存溢出+各种锁+高性能+消息队列

小小怪下士

Java spring 面试 JVM

一文浅析人工智能领域相关概念之间的关系

九章云极DataCanvas

人工智能 神经网络 机器学习

千锋武汉分校前端学员走访英志软件,并开展现场面试

千锋IT教育

浅谈Python中的生成器

何极光

Python 生成器 10月月更

TOGAF认证考试开启“主线+支线+副本”模式!

涛哥 数字产品和业务架构

前端工程师leetcode算法面试必备-二叉树深度广度遍历

js2030code

JavaScript LeetCode

“程”风破浪的开发者|一起来看看北大才女刘媛媛珍藏已久的学习方法吧!一定要点进来

跟着飞哥学编程

学习方法 “程”风破浪的开发者

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法

HarmonyOS SDK

地图

2022年最新数据库经典面试题及答案汇总(含PostgreSQL、Oracle、MySQL)

墨天轮

MySQL 数据库 oracle postgresql 面试题

MobLink for Flutter

MobTech袤博科技

flutter ios android

信用卡监管精细化,强化用户风险防范意识并驱动银行规范管理

易观分析

银行 信用卡

云原生时代的应用端到端可观测体系如何构建?

嘉为蓝鲸

运维 监控 可观测性 告警

澜舟科技推出【熊猫小说家】小程序,用 AI 书写你的故事

澜舟孟子开源社区

人工智能 nlp AIGC

如何让 SAP Spartacus 访问 navigation node 的上下文,暴露更多的字段

阿英

typescript angular SAP Spartacus 10月月更

服务器故障用什么软件解决好?大家有推荐的吗?

行云管家

高可用 服务器 ha

半导体初创公司如何加速成功?

龙智—DevSecOps解决方案

IP IP管理

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