一、云原生数据库
云原生数据库是在公有云、私有云和混合云等新型动态环境中,基于存储与计算分离架构的、存储和计算可以独立弹性扩展的、松散耦合的数据库系统。
二、存算分离的优势
传统大数据架构,缺少计算资源时需要扩充服务器,会连带部署存储资源,造成资源浪费。存算分离的架构下,缺少计算资源就只扩容计算资源,缺少存储资源就只扩容存储资源。
三、云原生架构是什么
云原生架构是一种利用云计算优势来构建和运行应用程序的方法。它是一种技术和方法论的集合,包含4个要素:微服务、容器、Devops、持续集成和持续交付(CI/CD)。其核心思想是将应用分解成简单、独立、明确的任务处理模块,独立运行与容器中,通过Restful API将处理结果返回给外部;同时,应用开发的流程采用Devops的方法论和工具链来实现持续集成和持续交付,使代码的发布及相关容器镜像的创建都能够自动完成,不需要软件开发人员过多干预。
四、Kubernetes是什么
Kubernetes是一个基于容器技术的分布式架构方案,在Docker的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等完整功能,提高了大规模容器集群管理的便捷性。Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力、透明的服务注册和发现机制、内建的智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时,Kubernetes提供完善的管理工具,涵盖包括开发、部署、测试、运维、监控在内的各个环节。以下是云原生数据服务的优势。
1.弹性的容器服务、K8S集群服务
2.云上的DevOps工具
3.弹性高可用的云数据库、大数据服务
4.云上内建的安全产品、安全服务
五、数据中台建设的目标
通过提供工具、流程和方法论,实现数据能力的全局抽象、共享和复用,赋能业务部门,提高实现数据价值的效率。
六、数据中台解决的问题
1.全局数据的打通和治理,数据标准和数据资产的管理。
2.数据应用开发的管理和标准化。
3.大数据平台本身的数字化运营。
4.工具的易用性、灵活性、多租户管理及协同性。
5.核心组件(Hadoop、Spark、Kkafka、MPP)的性能及管理问题。
七、微服务,容器,Devops,CI/CD在中台里的作用
微服务最好的载体是容器,容器是一项轻量级的虚拟化技术,不仅产生和消亡的代价很低,而且具有提供资源隔离等便于发布和管理的特性。
微服务+容器加速了软件的开发、测试、生产和发布流程。但仅有这两项技术还不够,还要有Devops来实现自动发布和稳定高效的系统运维,以轻松部署微服务和容器应用。同时,需要一个CI/CD架构来持续集成和持续发布,把代码提交到代码仓库后,自动触发微服务构建、容器构建及打包过程,然后发布到半生产系统进行集成测试,最后进入生产系统进行部署。这就是一整套的技术和方法论,数据中台建设最好的开发基础就是云原生架构。而且,容器天然具有资源和数据的隔离性,可以很好的保证系统的安全性。
在云原生架构下做数据服务有天生的好处,就是以微服务和容器化的方式发布数据服务,能够实现非常快速的部署和迭代。另外,数据中台能够实现数据服务的弹性扩展。在容器编排如Kubernetes。从而充分满足系统的可扩展性。因此,数据中台的建设一定要基于云原生和容器。云平台为分析工作负载和一般工作负载提供了极大支持,并提供了云计算技术的所有好处:易于配置和部署、弹性扩展、资源隔离、高资源利用率、高弹性、自动恢复。
在实践中,一个很重要的思路是将方法论映射到我们所使用的工具中,然后通过这些工具来规范我们的管理方法,而不是通过说教或行政规定来确保这些方法论的执行。
八、数据中台的建设目的
数据中台的建设应该以提供一系列方便好用的工具和流程为目的,让工具引导人来完成工作,而不是靠人手动操作。例如,添加一个新的数据源,对现有数据源进行修改的时候,相应的工具应该能自动完成这个数据源相关的管理工作(元数据采集、监控、通知),而不是让使用人员手动添加很多相关的配置。
九、传统大数据部门和数据中台的运营异同
在数据中台的建设中,大数据部门处于核心位置,但是大数据部门的工作除了搭建大数据基础能力平台之外,更要侧重于全局的数据能力统一管理和赋能。
传统大数据团队的主要任务如下:
1.安全和运维Hadoop、Hive、Spark、Kafka这些大数据基础组件。
2.提供etl工具的运维支持,有时候帮助业务部门写一些查询,进行一些查询的优化。
3.提供大数据平台集群用户的管理、权限的分配及数据的管理和备份等。
4.负责大数据系统的运维、扩容和升级,帮助业务部门解决系统问题。
而在数据中台的运营中,大数据部门除了上述工作之外,还需要:
1.建立数据标准并确保数据标准的执行;
2.提供自助的数据工具供各个业务部门使用;
3.开发并支持业务系统的数据处理框架、测试框架、数据分析框架,避免各个业务IT部门重复开发;
4.确保各个业务部门能在数据平台发布、共享它们的通用数据能力;
5.提供数据应用发布、运维、更新的全生命周期管理;
6.精细化运营整个大数据平台,确保每个数据应用的ROI都得到追踪。
这些工作对大数据团队的技能要求提高了,而且数据和业务的结合是全方位的,对数据平台的扩展性、稳定性、实时性、可用性有了更高的要求。
十、中台在技术层面提供的支持
1.全局的数据标准和完善的数据模型。
2.完善安全的多用户管理。
3.方便灵活的工具链。
4.高效稳定的数据应用发布及运行流程。
5.完善的数据治理和数据应用资产管理。
6.全面的审计和监控。
十一 大数据平台的生产问题
1.硬盘故障(据统计,硬盘第一年的故障率为5.1%)
2.服务器故障(据统计,服务器第四年的故障率为11%)
3.使用的大量开源程序有很多Bug
4.自行开发的数据应用程序可能也会有一些Bug
5.外部数据源有延迟
6.数据库有宕机时间
7.网络有错误
8.运维时的误操作
这些问题在规模稍微大一些的系统中都会经常发生。为了保证系统的正常运行,还需要做好以下这些:
1.监控系统: 监控硬件、操作系统、资源使用情况、程序运行。
2.系统探针: 系统需要的各种运行指标,以便可以被监控。 3.警报系统:出现问题时,需要通知运维工程师。 4.避免单点故障(SPOF):避免一个组件或者节点的失效造成整个系统的崩溃。 5.备份:需要尽快备份重要数据,不要依赖Hadoop的3份数据副本,因为它们也可能被人为误操作删除。 6.恢复:如果不希望每次发生故障时都手动处理所有错误,那么最好尽可能让这些错误自动修复。
十二、数据中台的系统安全
除了身份验证,以下是企业在此时还需要处理的一些问题。
1.数据审计:系统必须审计系统中的所有操作,例如谁访问了系统中的什么内容。
2.多租户:系统必须支持多个用户和组共享同一个集群,具有资源隔离和访问控制功能,能够安全的处理和分享他们的数据。
3.端到端安全:系统中的所有工具都必须实施正确的安全措施,例如所有Hadoop相关组件的Kerberos集成、所有网络流量的HTTPS/SSL。
4.单点登录:系统中的所有用户在所有工具中都应具有单一身份,这对于实施安全策略非常重要。
十三、Pass平台的主要功能
搭建或使用云平台的一个主要目的是在企业内部提供Pass功能,由Pass平台来支撑应用从开发、发布到运维的过程(应用全生命周期)中需要的存储、负载均衡、容错等通用功能,而不是由各个数据应用自行管理。
十四、应用全生命周期管理
应用发布模块负责为运行的应用提供标准化的分发流程,用户可以按照标准化的发布方式自助进行应用发布。应用发布模块功能包括:
1.所有应用可以一键安装,用户可以通过Docker Image方式自主安装和发布应用。
2.应用配置全部通过Webui方式实现。
3.应用实例由集群动态分配资源,无须绑定服务器。
4.应用负载均衡由系统自动实现,无须配置。
5.应用的运维由系统自动实现,包括自动弹性扩容、迁移和重启。
十五、应用编排及调度管理实现的系统功能
云原生系统在应用管理方面提供应用编排及调度管理,可以管理由数十乃至数百个松散结合的容器化组件构成的应用,而这些组件遵照统一的发布规范,可以完成各组件相互间的协同合作,使既定的应用按照设计运作,按顺序在网络级别进行组织,能够按照计划进行。如:
1.快速部署:实现应用的创建、发布、部署、启动、停止等功能。
2.弹性伸缩:在预计应用流量达到高峰前,只需要在页面上调整应用的实例数,就可以在后台自动复制并启动多个实例。
3.策略约束:如果应用对机器有特殊要求,不能在集群中随时任意的迁移,平台也支持添加机器约束,比如只允许应用运行在某些机器上,或者不允许运行在部分机器上。
4.健康检查:应用在发布的时候,TCP/HTTP服务可以自动检测端口或者HTTPhttp服务时候可用。如果在指定时间内服务没有响应,调度平台可以自动启动新的实例,判断新的实例正常运行后,剔除非正常的实例。