
云原生架构改变了软件的开发模式,加速了软件的开发、迭代、测试和部署,节省了软件开发人员和IT运维人员的时间和精力,让技术人员得以专注于解决业务层面的问题。同样,采用云原生架构的应用能力基础平台对于数据中台的建设也有着重大的意义。
1.数据中台的快速迭代需要云原生架构
数据中台的核心目的是快速洞察市场变化并响应变化。要快速响应市场的变化,就需要能够快速地开发、测试、迭代和上线大数据应用。云原生架构下的软件开发模式正好能满足这样的需求。
在云原生架构下构建数据中台,要以容器化的方式来部署大数据的基础组件。除了大数据基础组件以外,其他大数据应用也应该在微服务架构下进行开发,并以容器的方式在数据中台中运行。
2.数据中台的数据共享和复用需要云原生架构
数据中台的核心是要实现数据的共享、抽象和复用。而数据的共享和复用一般都是通过把公共数据能力发布成数据服务来实现的。
数据服务应该以微服务的架构来开发,每个单独的服务功能都可以是一个微服务,而以容器方式发布数据服务可以实现数据服务的高可用。
可以轻松地增加容器的数目来进行横向扩展,支撑日益增长的数据服务访问。云原生架构数据和资源的隔离的另一个优势是,在这一架构下,各个业务部门可以放心地开发自己的数据应用,将敏感数据交由容器隔离来进行保护,同时资源的隔离保证其他业务部门的应用不会影响自己部门的应用。
这样,业务部门就更有意愿在数据中台中进行数据应用开发,并把数据能力共享出来,供其他部门复用。
3.云原生架构可以实现数据中台组件的标准化配置和管理
数据中台组件的发布不只是发布一个容器应用,还涉及其他的方面。一个新组件发布到数据中台内,它一定要是能被监控的。一般来说,数据中台有一个统一的监控体系。
此外,组件还应该有出错报警配置,这样当它的监控指标达到某个阈值时,我们会收到报警邮件或短信。
除了监控之外,这个新组件所产生的日志还应该接入数据中台统一的日志系统,这样当它产生故障的时候,应用开发人员很容易诊断。
要将一个新组件发布到数据中台,需要将它通过自动化的方式接入其应用基础能力平台的监控、报警和日志系统当中。在容器方式下发布一个新组件,可以很容易地将这些监控、报警、日志系统等配置信息标准化,以配置文件的方式随着容器一起提交给发布系统,发布系统根据这些配置文件进行监控、报警、日志系统的对接。
4.云原生架构可以轻松集成新的开发工具
为了快速应对市场的变化,我们经常需要在数据中台上尝试和使用新的功能组件,比如机器学习框架。运行这些新组件是应用基础能力平台的任务,而云原生架构可以帮助我们轻松实现这个目标。目前主流开源软件(如K8S),基本都提供了容器化部署的支持,我们几乎不需要做太多额外工作就可以将这些软件发布到数据中台、接入已有系统当中,进而快速验证这些软件能否满足我们对业务的需求。
5.云原生架构可以轻松实现分布式架构
数据中台的一些重要组件是以分布式架构运行的。在云原生架构下,K8S和Mesos等工具为云原生应用提供了强有力的编排和调度能力,它们使在云平台上部署和运行分布式系统变得更快捷、方便和稳定。
容器化运行组件使计算和存储资源得到有效隔离,可以实现对不同类型的程序的支持,而不会发生某一类程序占据系统所有资源的情况。同时,云原生架构可以让我们轻松实现计算和存储资源的分离,从而提高资源的使用率,例如,我们可以用K8S作为资源管理器来管理计算资源,使用分布式文件系统来管理存储资源。
对多云和混合云架构而言,首先要解决的是弹性伸缩和异构的问题,而云原生架构对弹性伸缩的敏捷支持以及标准化的容器应用可移植性,大大简化了多云和混合云的部署。


