集群管理要点

第一章:RD/OP 实际上在写同一个分布式系统

1、每个应用都是集群的一部分,每个RD都有一套自己的集群管理方式

有的设计得非常简单:一个配置文件,读取一下数据库的ip和端口

有的设计得非常复杂:使用zookeeper这样的名字服务,自己做监控,自己部署代码,自己做服务发现等

RD的视角很少考虑运维的问题,RD视角出发的集群管理基本上是以程序能够运行起来为标准的。

RD没法不考虑集群管理,因为没有这个,程序是无法独立运行的。

RD没法太多的去考虑集群管理,因为大部分的应用的开源的,无法假设实际的运维工具栈。

2、每个运维系统都是在给应用打补丁,每个OP都在给RD擦屁股

运维系统与分布式应用没有什么区别。运维系统实际上是在做adapter,把每个接入的应用建模成一样的分布式应用。

OPDEV实际上不是在写运维自动化系统,他们在写的是一个分布式系统的集群管理模块。

OP实际上不是在接入系统,而是在把各种乱七八糟,半拉子的分布式应用改造成可运维的模式。

一堆互相做法不同的系统,每个系统又由RD/OP两种角色的人各搞半拉子工程拼接而来。

=================

第二章:面向场景面向过程的思维

发布:新的版本上线

变更:所有对已有版本的改动

配置更新:变更的一种,用某种接口修改配置使其生效

扩容缩容:变更的一种,增加机器

开区合服:变更的一种,增加一个业务上的set

故障处理:变更的一种,修复线上机器的故障

过程,传文件:需要一种通用的文件传输机制

过程,执行脚本:需要一种通用的获取ip,脚本执行机制

过程,调用API:需要一种通用的调用云服务的api的机制

过程,组合:面向每个场景的每个操作,都要有一个过程。更大的组合是对一堆过程拼装。

结果是一大堆无法重用的脚本,无法审查,无法验证。bash/ant 等语言不是唯一问题,没有足够好的人来写脚本也不是唯一问题。为什么需要这么多大体上是重复脚本,才是问题。

unscalable thinking

==============

第三章:对状态进行建模

idea:对状态进行建模。比对实际的状态和预期的状态得出动作。

想法很好,但是实践起来发现这个事情其实很坑:

问题1,从上往下事无巨细的描述状态:从最上层的每个机器上运行多少个进程,到最底层的有几个文件,都有什么内容。

问题2,静态地描述全局:需要描述有多少个ip地址,每个ip上都部署了什么,每个配置文件里的依赖项都是静态确定的

问题3,动作非常难搞对:无法测试这个部署脚本。很多时候在一个空机器上运行会挂掉,但是在我的机器上运行就是成功。

问题4,跑起来太慢了,而且不可靠:需要从外网下载一堆东西,很慢。即便不用下载,运行一堆apt-get也快不到哪里去

================

第四章:docker

docker解决的问题是状态可以是一个很大粒度的东西。不用细粒度到文件级别,可以把一个进程的所有依赖打包成一个黑盒。apt-get还是yum,就没关系了。

================

第五章:名字服务,服务注册,服务发现

smartstack做的事情其实是名字服务的统一化。构建一个进程和服务级别的名字服务(大部分运维出发的CMDB,都是IP级别的),然后把所有人的名字服务全部统一成一个,可以网络依赖问题。

================

第六章:marathon & helix

这两项工具其实干的事情是类似的。与其事无巨细地描述预期的状态,不如给一定一些规则,让系统去自动决定最佳的状态是什么。给定5台机器不同负载,上面要跑10个进程,marathon会帮我搞定每台机器上跑哪些进程。

helix也是类似,告诉helix需要多少个partition,都应该是什么状态,由helix去分配。

==================

第七章:detc

现状:一堆互相做法不同的系统,每个系统又由RD/OP两种角色的人各搞半拉子工程拼接而来。用一大堆脚本,以过程化的思维去管理系统。

预期:一堆系统虽然功能不同,但是用完全一致的方式来管理。接管所有RD/OP承担的集群管理工作,全盘地处理问题。以面向状态地思维去建模,虽然仍然有脚本,但是都是原子化可复用的。

时间: 2024-08-05 06:49:35

集群管理要点的相关文章

一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种

[转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务.集群管理.RPC.基础设施.搜索引擎.Iaas和监控管理等大数据开源工具. 日志收集系统 一.Facebook Scribe 贡献者:Facebook 简介:Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储

利用ansible modules模块来自定义集群管理

前沿: 在一些个特定环境下,用ansible做集群管理还是很棒的,这两天看了他的模块,官方提供了很多,就算不够,你也可以自定义定制. 话说我挺喜欢他的modules模块的,够直接 !!! 我这里就说些常见的ansible的modules吧. 下面的ansible service一看大家就懂了,就是服务状态的管理模块 [[email protected] ~ ]$ ansible web -m service -a "name=nginx state=started" 10.150.14

Redis集群管理

原文链接:http://blog.csdn.net/xyang81/article/details/51895011 在上一篇<Redis3.2集群担建与验证>文章中分享了集群的详细担建过程,本篇主要分享集群管理的常见操作,如:添加节点.删除节点.slot分配.如果你还没有担建集群环境,建议先看上篇<Redis3.2集群担建与验证>过程,再来阅读本文比较好理解. 1.集群管理常用命令 // 集群(cluster) CLUSTER INFO 打印集群的状态信息 CLUSTER NOD

Ignite集群管理——基于静态IP的节点发现

Ignite作为分布式内存,集群管理必不可少,Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于静态IP的节点发现. 两个最重要的TCP通信设置类: 1. TcpDiscoverySpi 用于设置集群维持与节点发现的tcp通信ip,port. 2. TcpCommunicationSpi 用于设置业务数据(缓存数据)tcp通信的ip,port. 3. 两者的区别与联系 TcpDiscoverySpi用于维持管理集群,交换的是用户不感知的ignite内

redis主从切换的集群管理

网 站的访问量慢慢上来了.为了网站的性能方面,开始用了redis做缓存策略.刚开始的时候,redis是一个单点,当一台机器岩机的时候,redis的 服务完全停止,这时就会影响其他服务的正常运行.费话不多说了,下面利用redis sentinel做一个主从切换的集群管理.做这个集群管理的时候,查过很多资料才完全了解,他是怎么做的. java 客户端请看: http://blog.mkfree.com/posts/52b146e6479e5a64742fddd0 参考资料:http://redis.

分布式集群管理

转载请说明出处:http://blog.csdn.net/cywosp/article/details/21259391 现在很多互联网科技公司,还有一些传统的it公司都在根据自身的业务发展来设计符合实情的分布式系统.虽然,已有很多优秀的开源分布式系统,但是由于需求不同,业务不同,这些只能在设计符合自身需求的分布式系统时用于参考.个人认为,设计一个分布式存储系统并不是太难,主要困难在于如何设计并实现一个可以自动化处理各个节点状态的分布式集群管理系统.分布式系统到现在已经发展了很多年了,有些公司已

RHCS的CMAN分布式集群管理

------------------------------------------------------------这里可以忽略:(突然想到的小命令)小知识点:# cat /etc/sysconfig/i18n LANG="zh_CN.UTF-8"# LANG=zh_CN.UTF-8# yum grouplist# yum list # LANG=en# yum grouplist # yum provides */pxelinux.0 #yum -y install cmatri

vCenter Server6.5 & SQL Server2014单机部署 - vShpere ESXI6.0-6.5集群管理

vCenter Server6.5 & SQL Server2014单机部署 VMware官方网站提供免费下载vCenter Server6.5试用版: http://www.vmware.com/ 系统版本:Windows Server2012 R2 部署vCenter Server6.5 步骤: 1.安装SQL Server2014 SP2(或者SQL Server2008R2 SP1以上) 2.配置ODBC 64位数据源 3.安装vCenter Server6.5 (VMware-VIM-