2 guo ang guo_ang 于 2016.04.11 20:08 提问

关于集群的自动化配置部署和更新方案 2C

先花些时间唠叨下我做的《XX行业生产云》的需求,然后结合着这些需求请教各位专家一系列的问题。

功能需求:

生产企业内部有局域网,连接办公环境和相关的生产设备,并且有连接互联网的出口。生产过程由办公环境(B/S架构)向局域网内的设备发送生产指令,生产的运行状态实时可以回显给办公环境。局域网内满足该需求就需要部署一个常规的Web应用服务站点加关系型数据库(目前尚不需要实时数据库)就可以完成。
图片说明

多租户需求:

《XX行业生产云》提供“多租户”的模式,为XX行业各相关生产企业提供SaaS云服务。之所以采用“云”的形式,是因为这个行业内各工厂生产流程和业务逻辑基本类似,从技术角度来说可以用同一套代码逻辑和相同的数据库结构。

稳定性和实时性需求:

由于生产企业对数据和操作有一定的实时性要求,并且网络(运营商提供的互联网服务)短时间的中断不能影响生产进度,因此各工厂局域网内部需要部署一个服务器,为办公环境提供Web服务(B/S架构)并连接相关的生产设备。

运维需求:

使用这个服务的工厂有上百家,如果每个工厂都部署一台服务器并为厂区内提供相关的服务的话,这样运维这么多台服务器的难度和工作量很大。更何况系统建设初期服务版本升级(如代码补丁、数据库结构变化、安装软件等)会比较频繁,大量的服务器升级也会有很多的问题,如升级期间服务中断、升级失败造成版本不一致影响以后的升级、升级期间接口要同时支持两个版本等。

我的方案:

为了满足以上需求,我把生产云设计为“云+端”两部分。“云”提供对实时性要求不是很高的SaaS服务;“端”部署在每个工厂的局域网内提供对实时性要求较高的服务,对“云”进行扩展。形成一个“云”多个“端”的模式(这里的“端”和物联网中“端”的概念是有区别的)。每个工厂里的“端”都有着相同的逻辑代码和数据结构,不同的可能就只有IP地址、MAC地址以及数据库中的数据了。
图片说明

部署方案如下:
图片说明

问题来了:

1、 这种类似“云+端”的模式业界都怎么实现的?没有成熟的方案和案例?如果有的话我们可以考虑购买或合作。
2、 SaaS云的目的是为了抽取共性而集中提供服务、为了整合资源而集中管理,其部署一般是通过集群计算来实现的。而“端”又是分布式的方式,很接近于网格计算。集群计算与网格计算这两种模式共存是否矛盾?
3、 “端”是否可以使用CDN技术以降低其管理难度?
4、 “云”要对所有的“端”进行管理和控制,通过什么技术方式来实现?用Linux下的集群管理工具Puppet/Chef/Ansible/SaltStack/Cfengine?还是Zookeeper?还是Google的Borg?还是用现在比较流行的CoreOS?(一定要结合上面的需求)
5、 CoreOS既然是精简版的Linux,那么在其上安装软件和服务是否有限制?单个文件的更新是否高效便捷?
6、 如果“端”上安装CoreOS的话,其应用和数据库如何部署?主要考虑数据结构的升级以及不同“端”存储数据不同的问题。
7、 “云”和“端”之间需要数据同步(异步),有什么比较好的数据同步方案或产品支持?ETL工具,如开源的Kettle?还是MQ产品,如支持MQTT协议的?

求大神赐教!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于自动化部署
对于大规模的集群,相信都有一整套比较完善的自动化部署方案。自动化部署有很多问题值得思考,比如如何均衡的利用每个节点的资源,保证整个集群的负载打散;如果方便的加入新机器,如何在机器物理故障时下线它,然后将部署的任务迁移到其他的备机,有点资源管理的意味了。 本文不会讨论这些问题。只涉及一个很简单的场景:如何将应用部署到一定数量的机器,然后启动它。比如你在上线前,需要压力测试,需要评测性能,都可能需要人工的部署几十台机器。 如果纯人工,那么可能需要scp,或者wget,或者hadoop client,将应用下载到
大规模集群自动化部署工具--Chef的安装部署
Chef脚本管理工具部署部署节点 节点类型 IP(虚拟假设的IP) Server 192.168.10.191 Workstation 192.168.10.36 Node 192.168.10.35 安装的版本 Chef-Server:chef-server-11.1.0-1.el6.x86_64.rpm Chef-Client:chef-11.10.0-1.el6.
自动化脚本腾讯云配置集群(三)批量修改host
在搭建hadoop或者spark集群之前,可能需要对集群中节点的别名重新命名,方便集群的管理。例如hosts文件中,将节点的IP对应成master和slave1等。如下# hosts 127.0.0.1 localhost localhost.localdomain 10.135.72.89 master 10.135.82.197 slave1 10.104.73.51 sla
持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)
Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)
Hadoop2.7.1 集群部署及自动化脚本
实验环境操作系统:ubuntu 14.04 64位 主机名 IP namenode 10.107.12.10 datanode1 10.107.12.20 datanode2 10.107.12.50 datanode3 10.107.12.60 jdk 安装实验安装的是jdk1.7.0_71版本,具体安装步骤及环境变量设置参考这里。SSH 无密登录下面是我写的
Docker自动化部署方案
一 概述 Docker发布版本应该与现有的版本发布尽量一致,参考jenkins的版本发布过程;我认为maven库和docker库有很多类似的地方,因此打包过程参考maven的打包过程;重点实现docker自动打包、push、pull、run、kill相关流程的控制。 二 需求分析 1、部署和目前的jenkins发布流程基本保持一致,目前版本发布的触发条件有:定时发布、手工发布,发布过
脚本自动化部署
使用Bat脚本自动化部署JavaWeb程序 本篇文章是个人经验所为,并非行业标准操作。 服务器系统环境:Server windows 2008 部署环境:Tomcat8 自动化方式:bat脚本。 工具:SVN,idea 我的问题: 使用IDEA开发JavaWeb应用,放到生产环境上。需要打war包,上传到服务器,然后运行服务器上的Tomcat,之后会自动解压war包,
docker自动化部署实战
docker自动化部署实战避免重复造轮子,我就不说docker的好处了,百度一大堆,况且你能看到这个文章,说明你也大概了解docker了。当然还是要从安装开始一步步来,本文中使用的是daocloud+coding+docker。daocloud官网 ,coding官网。 自动化流程是:打包应用程序->上传到coding->daocloud检测到更新->自动构建docker镜像->自动部署应用->完
集群部署方案
集群部署方案一 目标1 均衡系统压力,减少单个服务器因压力过于集成而超负荷运转的发生几率。2 加快用户的访问的速度。3 自动备援,避免因单点故障而导致整个系统瘫痪的情况发生。4 日后系统的便于扩展,通过增加相应的服务器节点即可提高整个系统的承载能力。二 软件配置系统 :RHEL4 [ Linux version 2.6.9-42.EL]负载均衡 :ipvsadm(1.24-6)缓存服务器 :squ
自动部署Ambari到集群的自动化脚本
用来自动配置Apache Ambari或者HDP,CDH集群环境的自动化脚本,记下来以便其他人可以参考。