“全局、科学、安全、便捷、智能”,就是Nebula。
-资源管理全局化
Nebula采用一种统一地址描述资源的方法,以扁平化的存储方式存储资源,以图向量等方法描述各对象间的关系,大大地简化了对象间关系的保存以及查询,检索的性能也得到了提升。
Nebula改变了传统架构烟囱式的建设方式,打破了固有结构的局限性,好比将所有的资源同在一个容器中,相对自由、彼此独立,又相互联系,增强了数据间的逻辑性也方便了用户的使用,使得资源管理全局化。
-存储方案科学化
在分布式对象存储、键值存储、文档存储等技术的支撑下,Nebula根据储存内容的不同,制定了面向业务数据特征的存储方案,为不同类型的业务数据“私人定制”最适合的存储方案,更加科学地管理业务数据。Nebula的资源包括结构化数据、半结构化数据、非结构化数据以及媒体文件,这些资源采用上述存储方案存储在多种数据源中,包括MySQL、Mongodb、File、Index等。
Nebula采用了一种实现异构数据复合对象的事务一致性的方法保证业务过程中多个进程的最终一致性。这种方法将事务的所有数据来源进行统一管理,只有当所有的进程都成功时才提交,改变数据来源中存放的数据;若任意一个进程不成功,都要让其他的数据源回滚,恢复这个事务中改变了的数据,保证了多个进程的最终一致性。在这种事务一致性方法的保障下,面向业务数据特征的存储方案得以实施,也使得业务数据的存储方案更适合业务数据本身,更加科学化。
-业务数据安全化
Nebula采用分布式技术和一致性Hash算法解决传统架构中单点故障和数据没有副本导致的数据丢失难以恢复问题。去中心化的设计,服务器故障时,其他服务器自动分摊故障服务器的任务为系统提供服务,以此保证了计算、数据库和存储的安全性。
Nebula中分布式计算的安全性主要体现在对计算节点的监控和对故障节点任务的重新分配,同时提高系统的计算效率,自动负载均衡。Nebula采用非关系向数据库Mongodb管理核心业务数据,增强了数据库的安全性。存储方面使用了分布式对象存储保证了存储的安全性。整个系统中业务数据安全化,用户无需再为数据担忧。
-系统扩展便捷化
随着媒体数据的迅速增长,传统架构的系统复杂性、扩展成本高、难以应对突发性信息增长等缺陷使系统扩展陷入困境。Nebula横向扩展的便捷性体现在数据扩展和业务扩展上。
数据层,Nebula通过Mongodb和分布式系统的分片机制实现其横向扩展。Mongodb的分片机制运行在每一个Collection的底层,当负载不均衡时,会自动启用分片机制,可以通过添加分片的方式实现系统扩展,新增时分片机制自动启用,将周围分片的数据分配在新的分片中,不需要动用所有的服务器重新划分所有的数据,方便快捷。分布式对象存储的扩展性分为对象存储设备的扩展和一致性Hash计算的扩展。文件系统将文件分片形成对象,每个对象为一个数据块,分散地保存在不同的服务器节点,对象存储设备可以通过添加节点的方式扩展。一致性Hash算法去中心化的思想使得计算节点的添加变得容易,对其他节点不造成影响,无需统一的分配,添加的节点按照一致性Hash的算法工作。
业务层,Nebula主要采用了Docker技术,将系统中所需的复杂的环境封装在Docker中,以规范化接口的形式提供给用户,降低了环境依赖,为用户和测试人员提供便利,更方便系统业务的扩展。
-数据挖掘智能化
Nebula是一个以数据为核心面向业务的基于数据融合及媒体应用特性的PaaS平台,除了能为业务系统提供更稳定、更安全的内容、存储的服务外,还能提供数据分析与挖掘的服务。Nebula采用了多种数据挖掘的方法精准定位用户关心的业务问题,并以热力图、统计曲线、标签云等方式可视化展现,直观反映用户关心的业务数据,智能化地为用户提供服务。