MCollective架构篇1-MCollective架构的引入

零基础学习Puppet自动化配置管理系列文档

Marionette
Collective(MCollective)是一个与Puppet关系密切的服务运行框架。Puppet擅长管理系统的状态,但agent默认的30
分钟间隔的运行方式使它不合适作为实时管理控制工具使用,而MCollective的功能定位正式面向大规模主机群的实时任务并行处理。它离线消息中间件
技术实现检点间的信息传递,大量主机可以基于自身的某些固有属性(元数据)而非主机名进行分组,这意味着用这些信息按照不同标准将集群分为多个群组,任务
执行的目标是一个群组,而不是一台主机。
也可以参考纸飞机的博客关于mcollective的介绍 http://junqili.com/

MCollective特点:

能够与小到大型服务器集***互

使用广播范式(broadcast paradigm)来进行请求分发,所有服务器会同时收到请求,而只有与请求所附带的过滤器匹配的服务器才会去执行这些请求。没有中心数据库来进行同步,网络是唯一的真理

打破了以往用主机名作为身份验证手段的复杂命名规则。使用每台机器自身提供的丰富的目标数据来定位它们。目标数据来自于:Puppet, Chef, Facter, Ohai 或者自身提供的插件

使用命令行调用远程代理

能够写自定义的设备报告

大量的代理来管理包,服务和其他来自于社区的通用组件

允许写 SimpleRPC 风格的代理、客户端和使用 Ruby 实现 Web UIs

外部可插件化(pluggable)实现本地需求

中间件系统已有丰富的身份验证和授权模型,利用这些作为控制的第一道防线。

重用中间件来做集群、路由和网络隔离以实现安全和可扩展安装。

MCollective 就是一个框架,一个空壳。它除了 MCO 命令之外都可以被替换被自定义。

备注:更多信息请参考http://docs.puppetlabs.com/

Middleware(RabbitMQ、ActiveMQ)介绍

RabbitMQ是一个实现了高级消息排队协议(AMQP)的消息队列服务。RabbitMQ基于OTP(Open Telecom
Platform,开发电信平台)进行构建,并使用Erlang语言和运行时环境来实现。 ActiveMQ
是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS
Provider实现

备注:MCollective是基于Apache
ActiveMQ中间件来进行开发和测试的,然而其对java和XML格式的配置文件的依赖使我们将更多的注意力和兴趣转移到RabbitMQ中间件服务
上。如果考虑到性能和扩展性,部署ActivemMQ是一个更好的选择。

工作原理图

mcollective触发更新图

备注:更多详细信息请参考 http://docs.puppetlabs.com/mcollective/reference/basic/messageflow.html

部署介绍

  • MCollective安装分client安装和server端安装,其次需要安装MQ,本实验选择RabbitMQ,安装好之后需要进行相应的设置,然后进行通信。
  • 如何和puppet进行整合,需要通过puppet插件实现。
  • 本实验采用的版本为
    mcollective 2.2.4
    rabbitmq  3.1.5

返回主目录

交流方式:

微信公众号:puppet2014,可微信搜索加入,也可以扫描以下二维码进行加入

微信公众号

QQ交流群:296934942

时间: 2024-10-25 08:39:55

MCollective架构篇1-MCollective架构的引入的相关文章

MCollective架构篇2-MCollective+MQ架构的部署

零基础学习Puppet自动化配置管理系列文档 1 Mcollective介绍 MCollective 是一个构建服务器编排(Server Orchestration)和并行工作执行系统的框架. 首先,MCollective 是一种针对服务器集群进行可编程控制的系统管理解决方案.在这一点上,它的功能类似:Func,Fabric 和 Capistrano. 其次,MCollective 的设计打破基于中心存储式系统和像 SSH 这样的工具,不再仅仅痴迷于 SSH 的 For 循环.它使用发布订阅中间

MCollective架构篇7-多MQ下MCollective高可用部署

零基础学习Puppet自动化配置管理系列文档 存在这样一种场景,当你的puppet基于mcollective环境搭建完成之后,需要考虑MQ的高可用,否则,MQ挂掉之后就不能用mco命令进行推送了哦. 如何做MQ的高可用呢,其实有两种方法: 方法一:两台MQ做集群,通过复制队列信息进行同步,节点访问可通过浮动IP进行. 方法二:两台MQ独立,在MC Server端做failover,通过rabbtimq的plugins参数实现,可设置自动检测,切换时间等等. 一.配置Rabbitmq 安装(略),

MCollective架构篇3-Puppet插件的部署及测试

零基础学习Puppet自动化配置管理系列文档 1 puppet插件的安装及测试 MCollective可以使用多种方式进行扩展.最普遍的一种扩展MCollective的方式就是重用已经写好的agent插件.这些小的Ruby库可以让MCollective在整个集群中执行自定义的命令. 一个agent插件通常包含一个Ruby库,它必须被分发到所有运行MCollective agent的节点上.另外,一个数据定义文件(DDL)提供了插件接受的传入参数的具体描述,整个DDL文件需要放在MCollecti

MCollective架构篇4-MCollective各种插件的部署及测试

零基础学习Puppet自动化配置管理系列文档 MCollective只是一个框架,如果需要在上面发挥各种作用,那就需要各种插件的支持.官方提供了很多这方面的插件,除此之外,还有第三方的插件,比如shell插件等,下面会介绍各种插件的安装,以及插件之间如何组合进行使用. 1.在mcollective client端和server端安装各种官网plugins 首先去官网下载各个插件 http://yum.puppetlabs.com 1.1 下载collective-client端 [[email 

面向服务的体系架构(SOA)—架构篇

面向服务的体系架构(SOA)-架构篇 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念.2002年的l2月,Gartner提出"面向服务的架构(SOA)"是"现代应用开发领域最重要的课题"之后.国内外计算机专家.学者掀起了对SOA的积极研究与探索. 在分布式的环境中,将各种功能都以服务的形式提供给最终用户或者其他服务.如今,企业级应用的开发都采

高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离

点击链接加入群[Dubbo技术交流2群]:https://jq.qq.com/?_wv=1027&k=46DcDFI 一.环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso JDK版本:jdk1.7.0_45 MyCat版本:Mycat-server-1.4-release-20151019230038-linux.tar.gz MyCat节点IP:192.168.1.203      主机名:edu-mycat-01  主机配置:4核CPU.4G内存 MySQL版本:

Web应用扩展系列(1):架构篇(转)

原文:Web应用扩展系列(1):架构篇 在这篇文章中,我将尽量涵盖Web应用扩展或性能调优时可能会遇到的一些架构问题. 首先,让我们来统一一些名词或项目的概念,下文中我将列举在扩展Web应用时可能会遇到的多种问题,包括: 架构瓶颈 数据库扩展 CPU依赖的应用 IO依赖的应用 而如何确定优化Web应用线程池大小的内容将会在下一篇文章中给出. 性能(performance)这个词对于Web应用来说通常意味着一些指标,对于大部分的开发者而言,他们主要关心的是响应时间(response time)以及

分布式架构高可用架构篇_07_MySQL主从复制的配置(CentOS-6.7+MySQL-5.6)

环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL 版本:mysql-5.6.22.tar.gz 主节点 IP:192.168.1.205 主机名:edu-mysql-01 从节点 IP:192.168.1.206 主机名:edu-mysql-02 MySQL 主从复制官方文档 http://dev.mysql.com/doc/refman/5.6/en/replication.html MySQL 主从复制的方式 MySQL5.6 开始主从复制有两种方式:

网站性能优化 - 数据库及服务器架构篇

我先前曾写过三篇有关网站系统.ASP.NET 性能优化的文章,分别从 SQL 语句.数据库设计.ASP.NET 功能.IIS 7 的套件,来探讨此一性能议题.本帖算是系列作的第四篇,整理了一些我看过的书籍和文章,改从「负载均衡.服务器架构.数据库扩展」的角度,提出一些性能优化的建议,以供有建设中大型网站需求的网友们作为参考. 小弟我先前写过的三篇帖子: (一) 30 分钟快快乐乐学 SQL Performance Tuninghttp://www.cnblogs.com/WizardWu/arc

[android架构篇]mvp+rxjava+retrofit+eventBus

android架构篇 mvp+rxjava+retrofit+eventBus 高层不应该知道低层的细节,应该是面向抽象的编程.业务的实现交给实现的接口的类.高层只负责调用. 首先,要介绍一下一个项目中好架构的好处:好的软件设计必须能够帮助开发者发展和扩充解决方案,保持代码清晰健壮,并且可扩展,易于维护,而不必每件事都重写代码.面对软件存在的问题,必须遵守SOLID原则(面向对象五大原则),不要过度工程化,尽可能降低框架中模块的依赖性. 之前的一段时间,学习了一些新的技术,并把自己关注的技术整合