购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 数据库在云时代的发展

2.1.1 云计算时代的兴起

在云计算兴起之前,对于大多数企业而言,自行采购硬件和租用互联网数据中心(Internet Data Center)机房是主流的IT基础设施构建方式。除了服务器本身,机柜、带宽、交换机、网络配置、软件安装和虚拟化等底层诸多事项需要相当专业的人士负责,发生调整时的反应周期也比较长,需经过一系列采购、供应链、上架、部署、服务等流程。对于企业来讲,必须提早预测自身业务发展的需求,做好预算规划。为了避免系统容量跟不上业务发展的速度,往往会提前留一定的余量。但企业对业务发展的预测往往与实际有偏差,进入互联网时代后尤其如此,要么业务超出预期,系统过载;要么不及预期,大量资源被闲置。

云计算为上述问题提供了一个解决方案,即把信息化需要的基础设施作为一种服务来提供(Infrastructure as a Service,IaaS),就像生活领域的水电煤气服务一样,企业或家庭用户无须为获取这些资源而进行基础设施建设,比如自己挖井或自己用发电机发电,只要接入政府提供的生活服务网络,根据需要随时取用即可。同样的,企业用户需要计算资源时无须自行购买硬件,搭建IDC,而是根据需要向云计算服务提供商购买即可。

2006年,Google首席执行官Eric Schmidt在搜索引擎大会(SES SanJose 2006)上首次提出了云计算(Cloud Computing)的概念。同年,亚马逊推出了公有云服务(Amazon Web Service),国外的一些互联网巨头,例如Microsoft、VMWare和Google,国内的阿里巴巴、腾讯和华为也相继推出了云服务,一时间云计算从崭露头角很快就变得炙手可热,成为企业IT服务的首选。

对于企业用户而言,IT服务建设不再意味着持有重资产,只需要根据自身的业务需要向云计算厂商购买计算资源或服务。对云厂商而言,把众多的需求汇聚在一起,能产生足够的规模效应,通过建立超大规模的资源池,并在此之上提供统一的、虚拟化的抽象界面。云实际上就是利用容器、虚拟化、编排调度和微服务等技术在多样化硬件上建立了一个庞大的操作系统,使得用户不再需要关注硬件差异化、生命周期管理、网络、高可用、负载均衡和安全等细节,同时利用资源池化的能力,如同一个庞大的算力蓄水池,利用不同业务在不同时段对算力的不同需求,辅以充分灵活的调度策略,为云上用户提供一个巨大的独特优势——弹性。

2.1.2 数据库作为一种服务

有了IaaS层作为基础,云计算服务提供商在此之上建立了更加丰富的层次,如平台即为服务(Platform as a Service,PaaS)和软件即为服务(Software as a Service,SaaS),为各种应用场景在云上找到了合适的舞台。

数据库作为重要的基础软件,很早就开始了上云之路,与操作系统、存储、中间件等组成了云上PaaS标准服务体系。各大云厂商大多都提供了云数据库服务,根据不同的服务形态,大体上可分为云托管、云服务和云原生三种形态。

1.云托管

云托管是最接近传统数据库系统的部署模式。本质上,云托管是将原本部署于IDC机房内物理服务器(也可能是虚拟出来的服务器)上的传统数据库软件部署在了云主机上。在这种部署模式下,数据库用户仅仅是将云服务供应商当成了一个IDC机房供应商,使用的是云服务供应商提供的以云主机为载体的“计算+存储”资源。在这种模式下,用户要自己负责整个数据库系统的可用性、安全性和性能。因此,客户拥有的数据库系统所必需付出的成本与在IDC中自建没有本质的区别,客户依然需要拥有自己的IT运维团队,需要有自己的数据库管理员,才能正常地使用数据库。在云托管模式下,客户必须凭借自己的技术能力才能获得一些企业级数据库管理系统能力,例如高可用、异地灾备、备份恢复、数据安全、SQL审计、性能优化和状态监测等,而这些企业级能力依赖客户的数据库管理员团队来提供。因此,采用云托管模式的客户在核算总体拥有成本(Total Cost of Ownership,TCO)时,需要将这部分人力投入成本考虑在内,并需要具备管理数据库管理员团队的能力。

2.云服务

云服务比云托管模式更近一步,用户可以直接使用云服务厂商提供的数据库服务,而不用关心数据库管理软件具体的部署方式。在通常情况下,云服务厂商会提供多种传统的数据库服务,例如MySQL、SQL Server和PostgreSQL,等等。用户可以直接使用云数据库服务的链接地址,采用JDBC或ODBC接口直接访问数据库。

以云服务模式对外提供服务的数据库管理系统通常也将企业级特性包括在内。云服务厂商在提供云数据库服务时,通常会提供对应的企业级特性,包括但不限于高可用、异地灾备、备份恢复、数据安全、SQL审计、性能优化和状态监测等。此外,云数据库服务通常也会提供在线升级、缩扩容等服务,本质上这是一种云服务厂商提供的针对云数据库服务的资源管理能力。

云服务模式相比云托管模式的另一个改进在于用户无须拥有自己的数据库管理员或团队,通常由云服务提供商提供数据库的运维服务,比较优质的服务供应商甚至会提供包括数据模型设计、SQL语句优化和性能压测等在内的专家服务。

3.云原生

云服务模式通过规模化的数据库运维服务、供应链管理能力,降低了单个客户对于数据库系统的总体拥有成本,使得传统的数据库用户得以享受到云计算带来的便利。然而,传统的数据库系统由于其架构的局限性,并不能完全发挥出云计算的优势。例如,云计算带来的资源按需使用、快速弹性扩展、高性能、高可用等,都受限于传统的数据库系统架构,而无法在云服务模式下充分对外提供。因此,云原生数据库应运而生。

云原生的概念最早由Pivotal公司在2014年提出,并在2015年组织成立了云原生计算基金会。关于云原生,至今并没有明确的定义。云原生是云计算时代新的团队文化、新的技术架构和新的工程方式。云原生指的是一个灵活的工程团队,遵循敏捷的研发原则,使用高度自动化的研发工具,开发专门基于并部署在云基础设施上的应用,以满足快速变化的客户需求。这些应用采用自动化的、可扩展的和高可用的架构。工程团队通过高效的云计算平台的运维来提供应用服务,并且根据线上反馈对服务进行不断的改进。

对应数据库领域,云原生的数据库服务应该包括基于云基础设施构建的数据库管理系统、高度灵活的数据库DevOps(Software Development and IT Operations)团队,以及与之配套的云原生生态工具。从用户视角来看,云原生的数据库服务应该具备“计算存储分离”“极致弹性”“高可用”“高安全”“高性能”等核心能力;数据库服务具备智能化的自省能力,具体包括自感知、自诊断、自优化和自恢复等;借助云原生生态工具,能够实现数据的高安全、可监控和可流动;有一支遵循DevOps规约的数据库技术团队实现数据库服务的快速迭代与功能演进。 3XIlGtz0UD9W69lncDfrhy3ExtKratfhOHNLb1YBSDmJT+PUgSczN5I/1/CQQZPf

点击中间区域
呼出菜单
上一章
目录
下一章
×