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

Dropbox的服务器和网络自动化运维实践相关推荐

  1. 360网络自动化运维

    女主宣言 当网络设备从数以百计快速发展到数以千计.万计时,当量变引发质变时,要采用什么样的模式才能先于业务发现网络问题和瓶颈呢?本文带来的就是360公司网络自动化运维的一些理念,希望这些设计理念可以帮 ...

  2. 网络自动化运维(NetDevOps)创作者推荐

    前言: 随着NetDevOps技术登上了历史舞台,越来越多的从业者开始利用NetDevOps简化网络的运维,并进行了技术分享,将蛋糕越做越大.在这里,仅代表个人对这些无私奉献的网络.运维工程师们表达由 ...

  3. 【网工手艺】专栏入口(网工学习实战+网络自动化运维探讨)

    哈喽,大家好!第一次在CSDN发文章哈! 我叫朱嘉盛,一名至今依然奋战在一线运维的平凡网工.入行11载,通信网2G守到5G,互联网(城域网)从近乎空白全程参与到百来万用户.一路走来,在网络自动化运维方 ...

  4. DBA很忙—MySQL的性能优化及自动化运维实践

    作者:王辰 来自:高效运维(ID:greatops) DBA的日常工作 首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用,这是我们 D ...

  5. 有赞数据库自动化运维实践之路

    「运维内推」有赞诚聘:应用运维工程师.系统运维工程师.运维开发工程师.DBA.请关注文末链接 一.前言 有赞作为"新零售"的软件服务供应商,随着业务的不断发展,从第一批几十家商户到 ...

  6. MySQL的性能优化及自动化运维实践与Mysql高并发优化

    首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用,这是我们 DBA 的功能. 了解这些功能以后要对体系结构有更加深入的了解,你不知道怎 ...

  7. MySQL数据库性能优化及自动化运维实践教程!DBA日常工作

    MySQL数据库性能优化及自动化运维实践教程!本文作者将站在更加全面的角度分享他在这一年多 DBA 工作中的经验,希望可以给大家带来启发和帮助. DBA 的日常工作 我觉得 DBA 真的很忙,我们来看 ...

  8. 魅族容器云平台基于Kubernetes自动化运维实践

    作者简介: 曾彬 阿里巴巴 高级技术专家 互联网老兵,十多年的基础架构经验,曾在支付宝.爱立信.魅族等担任系统架构师,从事过 Linux 内核开发,Java 中间件.SOA 应用框架的设计实现.云平台 ...

  9. linux框架下搭建orl,DevOps和自动化运维实践/Linux\Unix技术丛书

    导语 内容提要 随着云计算.Docker.Kubernetes技术的流行,相信大家经常会听到"容器云"这个专业词汇,容器技术的兴起,对于传统的运维知识体系而言也是一种冲击和挑战.& ...

  10. 简书python自动化运维_简明Python开发教程(4):网络自动化运维的曙光

    写在前面 本打算自动登陆一台路由器,执行查询配置指令,然后用正则表达式分析,获取该路由器的接口连接关系. 现在由于网络问题,导致无法直接telnet路由器,只能通过其他方式获取配置文件,如读取本地文件 ...

最新文章

  1. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!
  2. IDEA中maven项目导jar包太慢
  3. JDK、JRE、JVM三者间的关系
  4. 思源高拍仪万能驱动_动态展示和教学 良田YL1050AF高拍仪评测
  5. redis watch使用场景_redis不得不会的事务玩法
  6. 15.6.6-sql字符串组装技巧
  7. 中国居住服务业数字化发展报告
  8. 【uoj207】 共价大爷游长沙
  9. 【OpenCV】音符提取(形态学实例)
  10. Error: Current license file does not support the EP1C6Q240C8/EP3C10E144C8 device
  11. xp+WinDBG+VMware调试内核
  12. C语言经典回文数三种求法
  13. 三角形内切圆半径计算
  14. NVMe-MI协议解读
  15. GYctf-BFnote IO_FILE还可以这样利用
  16. Linux查看文件的几种命令比较:vi、vim、cat、less
  17. 可视化数据结构的网站
  18. SAP付款方式与 订单客户组
  19. Redis中List数据类型
  20. ushort mysql,Mysql的CodeFirst:不支持ushort、uint、ulong的字段提示不足

热门文章

  1. BZOJ 1059 二分图匹配
  2. unity3d自己写角色移动脚本
  3. [网络流24题] 最长k可重线段集问题 (费用流)
  4. poj 1269 题解
  5. ERwin 正向工程
  6. ORB-SLAM2双目开源框架 (4) LoopClosing解析
  7. 【练习】Java实现的杨辉三角形控制台输出
  8. Angular - - ng-focus、ng-blur
  9. Python-Day2三级菜单
  10. JavaScript 类式继承与原型继承