lucky_hu

运维自动化之Web文件分发系统实践(1)

2018-09-02 22:03 by 戎"码"一生, ... 阅读, ... 评论, 收藏, 编辑

Web文件分发系统实践

@智客幸达


目录

  • 应用场景
  • 基本设计
  • 总结

     运维童鞋在日工作中,经常需要批量在服务器上安装某些应用程序,比如安全相关的软件,监控相关的服务等,还有就是经常会帮助同步更新生产环境上的产品程序。运维同学可能会借助一款开源软件rsync通过配置来实现文件跨服务器同步的目的。rsync是Linux上的一款文件同步工具,他可以以其特有的算法,对两个目录进行本机或跨机器同步。cwrsync是支持windows的版本。具体使用方法可以参照《使用cwRsync在Windows的目录之间增量同步文件》

     在构建运维自动化平台的过程中,我们也借助了rsync工具,将其融入到其中。但是作为一名开发人员我们也尝试了自己开发一套类似rsync的同步功能小工具。rsync是很强大的,但是我开发的工具是基于web的且能够监控和实时返回同步中任何细节。这样,其实也是更好的让运维童鞋操作起来更方便。

 

应用场景

 

     最常用的就是发布产品程序,通过一个简单按钮发起多任务,实现对各个部署上服务器进行同步。

     当然需要到一下基本功能:

  • 支持多服务器并行
  • 消息实时反馈到面板
  • 实现文件md5对比



 

2 基本设计

     参照rsync的实现方式,我也设计了一个了客户端+服务端模式。
客户端是一个web站点,上面是任务列表,一个任务对指向多个目标服务器。目标服务器上安装了代理,并开放了端口给客户端(客户端不需要知道服务器的用户名+密码,只要知道IP即可)。当我单机某个任务时,任务启动,向各个目标服务器指定位置发送程序。如下:



     理解了基本架构设计,剩下的就是程序流程设计了。目前的流程能够满足要求,尽管已经在生产环境上经过实践,但是也会有很多改进的地方,欢迎大家不吝斧正。基本流程如下:



 

3 总结

     目前能够实现服务器同步的开源工具处理rsync,还有Jekins,但是这些工具都是很单一的,在实际应用总是不能满足我们自己的需求。我们可以通过整合多个现成工具来达到我们的目的,也可以参照这些开源工具,来造出一套完美匹配自己业务的轮子。在运维自动化平台搭建过程中,我们希望能够有自己的原创,一个公司或者个人,這些都是技术积累。

     编者按:

  • 芯片事件告诉我们,"拿来主义"和"全盘照搬”的危害太大。
  • 不管是公司还是个人都应该有一定的“原创精神”,在关键节点,哪怕是在自己造轮子也在所不惜。

     个人微信公众号:



相关文章:

  • 2022-12-23
  • 2021-12-22
  • 2021-05-28
  • 2022-03-10
  • 2021-12-22
  • 2021-11-01
  • 2021-12-12
猜你喜欢
  • 2022-02-20
  • 2021-06-04
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案