问题描述
先花些时间唠叨下我做的《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协议的?请大神赐教!
解决方案
本帖最后由 guo_ang 于 2016-04-11 19:52:10 编辑
解决方案二:
不懂帮顶