企业内部多种关系型数据库并存
云计算、大数据、人工智能、等新兴技术不断发展壮大,驱使更多应用的发展创新,但是我们通过搜索Google引擎的DB-Engines Ranking搜索热度可以看到,Oracle、MySQL、SQL Server等传统的关系型数据库依然是主流并且应用最广泛的数据库。
B端市场的企业内部由于应用的复杂性和多样性(深层次的原因,不同的ISV提供的解决方案使用不同类型的关系型数据库导致),企业通常购买外部人天服务进行响应和维护的工作,或通过招聘及内部培养针对不同类型的关系型数据库人才梯队。这些不同类型的关系型数据库硬件设备一般无法通用,每一套应用和数据库集群都是独立的,运维管理方式的弊端不断涌现。
数据库融合平台整合能力
统一对待
整合企业内部不同关系型数据库到统一管理平台,首先需要将不同类型的数据库当成同一个“对象”对待。Docker技术的发展使这一想法变得更加简单可行(KVM虚拟化技术同样也可以做到打包成镜像,但是由于Guest OS开销的存在以及版本迭代的复杂性等),无论是Oracle、MySQL还是SQL Server都是操作系统中的Progress。当前Docker容器化技术已经相当成熟稳定,无论是Oracle、MySQL和SQL Server官方都推出Docker稳定版镜像。
编排调度
有了我们可以整体运行在一个OS内的Progess的Docker技术后,我们需要考虑如何部署在分布式架构中满足企业对整体系统的可靠性要求。
Kubernetes已经全面赢得容器编排技术的战争,火速占据了市场。
kubernetes由Linux基金会和Google共同创办的云计算基金会(CNCF,Cloud Native Computing Foundation)进行管理,是一个以开源为目的组织。旨在帮助企业基于容器化和云原生技术,能够在公有云或者私有云上快速部署自身的应用并拥有快速扩展的能力,目前Kubernetes可以说已经成为业内标准。
高可用
关系型数据库的高可用方案是一个老生常谈的话题,关系型数据库集群架构为了保证前端应用业务的连续性以及可靠性,通常要求数据库集群建设有可靠的方案。
CAP理论大家都熟悉,关系型数据库是典型的C(Consistency)A(Availability)应用,但是如果要保证C(Consistency)P(Partition tolerance)架构,具有一定的容灾能力、集群架构通常需要3节点部署(使用本地存储)。
类似MySQL官方的MGR方案,3节点仅有一个节点可进行读写另外两个节点提供只读。如果另外两个节点未提供对外输出只读能力,那么对于平台来说,除了3节点能保证高可用一定的冗余能力外,另外2个节点浪费计算资源。
弹性能力
软件定义存储
kubernetes在1.9版本,对于存储卷的支持采用CSI(Container Stroage Interface)的方案,减少之前in-tree方式带给k8s自身核心代码的耦合度和复杂性,存储提供商或者企业可以通过开发CSI接口实现对分布式存储的管理能力。
(沃趣科技基于CSI接口实现存储管能力:https://kubernetes.io/blog/2018/08/02/dynamically-expand-volume-with-csi-and-kubernetes/)
采用计算存储分离的方案,对于数据库平台来说,计算资源所用即所需,即应用需要一个4C16G计算规格的数据库实例,平台就提供满足计算规格的数据库。通过平台的可用性检测及分布式存储卷的编排和调度能力,保证数据库高可用和数据不丢的同时,计算资源节省2/3。
SAN存储支持
刚刚才说了Kubernetes是云原生的开源平台,现在又要支持商用的SAN存储,是不是光速又打自己的脸。Kubernetes的存储卷管理支持的协议(https://kubernetes.io/docs/concepts/storage/volumes/)包括FC(Fibre Channel)及ISCSI,B端市场的企业经历一次又一次的IT架构洗礼,仍会有大量的EMC SAN商用存储的设备需要利旧,而且在传统的银行金融行业,核心业务系统的数据依然希望使用更加可靠的商用存储。
QFusion数据库融合PaaS平台
沃趣科技的QFusion采用K8S及云原生技术实现数据库融合平台,该平台完全兼容官方kubernetes并通过软件一致性认证,提供Oracle、MySQL和SQL Server数据库统一运维管理能力,是一款具有高弹性、高性能,易管理可扩展的数据库私有云PaaS产品。
平台结合数据库业务场景,提供MySQL主从集群以及数据库中间件,以满足不同的应用场景需求,让企业数据库平台管理人员更加注重业务应用的发展,根据业务的需求能够快速的进行横向扩展。
通过整合原生组件Prometheus+grafana,提供数据库实例全方位的运行状态监控及故障告警功能,能够第一时间发出预警信息进行处理,避免对应用业务造成影响。同时提供数据库实例日志采集及MySQL的慢SQL详情,协助DBA管理员准确查找定位问题出处。