为什么CynosDB叫真正的云原生数据库?

本文由腾讯云数据库发表

注:本文摘自2018年11月22日腾讯云数据库CynosDB新品发布会的演讲实录。随着互联网信息的发展,大家也对云这个词汇也不是特别陌生了,作为全球首选的云服务厂商之一的腾讯云,依托腾讯多年的业务积累和技术沉淀,我们推出了高性能、低成本、安全可靠的整体数据服务解决方案。并且随着客户数据日益增长,也做了相关的调研和分析,推出了腾讯云新一代自研数据库。我这里先卖一个关子,由我们这边的技术嘉宾给大家揭晓我们相关的数据库内容。

——————————我是分割线————————

大家下午好!我是腾讯云数据库产品中心NewSQL的产品负责人,我叫刘峰。我想在座的各位有谁了解什么叫NewSQL?我给出一个比较狭义的定义,NewSQL其实就是SQL加上NoSQL。我们说数据库有三个比较重要的历史阶段,第一是SQL标准的引入,第二个是NoSQL的流行,第三个是NewSQL的诞生。如果前两个重要的历史时期你们错过了,那么此时此刻是第三个重要的时刻,腾讯云自研的NewSQL数据库的诞生。

我们首先来看一下云数据库有哪些类型,有两种,搬迁和云原生。云计算时代的到来,厂商需要提供给客户云数据库服务,一个比较直接的想法是,作为云厂商我们可以把传统的数据库搬到云上来,给客户以租用的方式提供服务。这是大多数我们的云厂商提供服务的方式。当我们做了这件事情以后,我们发现传统数据库在云上有很多的问题,而这些问题是传统数据库既有的问题,在云上并没有得到解决。同时,我们发现传统数据库也不能适应云在扩展性、可靠性和规模化的优势。这个时候,就迫使我们云厂商来考虑,如何将传统的数据库和云数据库、云计算做一个融合,这个融合的点,我们称之为云原生。

举一个比较恰当的例子,大家可以理解为传统的数据库搬到云来提供云数据库服务是一种搬家模式,而云原生数据库提供的是一种“拎包入住”的方式。

刚才我们提到了传统数据库有很多问题。现在大家看一下传统数据库有哪些问题。

第一个问题,备份回档慢。这是一个经典的利用传统数据库在云上的备份回档的结构,如果要做备份回档我们需要把原有的数据拷贝一份到云存储上,同时将云存储的数据拷贝到用户数据库的实体上。1T的数据需要使用3个小时,2T的数据需要6个小时,如果备份回档3T的数据,就是今天晚上我就可以先下班了。

第二个问题,故障恢复慢,单独的数据库支撑的可能性是很低的,如果数据库宕机了,业务就中断了。通常的说法是,我们在主数据库边上会挂一个从数据库,从数据库会从主数据库来同步数据,但很不幸的是,大多数情况下,如果你的主数据库压力比较大的时候,从数据库是不能得到及时的数据更新的。举一个不恰当的例子是,在双十一购物高峰的时候你从购物网站选很多礼物放在购物车,而恰巧主数据库宕掉了,即使有从数据库,但却没有及时得到主数据库更新的数据,所以你会发现你购物车里的那些东西都已经不见了。我们认为在传统数据库上这种故障恢复慢的问题还是比较严重的。

第三和第四个问题,是纵向扩展弱、横向扩展弱。传统数据库是盒子,里面装的是数据,如果想扩展传统数据库需要一个更大的盒子。举一个更形象的例子,比如说我们自己开发了一款游戏,刚开始的时候我们认为这个游戏没有多少用户玩儿,我们用了一款数据库是1个CPU、2G内存100G存储空间,很幸运的是我这款游戏大卖了,这时候发现CPU的内存不够用了,需要扩展,传统数据库的做法是什么?是创建一个4核、8G、1T的数据库,之后把数据库搬迁到这里。这涉及到数据库迁移的问题,那么1T数据3个小时,2T数据6个小时,3T数据我今天也干不完,明天再接着干。相信这种服务提供给客户,客户也不会满意的,同样横向扩展是相同的问题。

第五个问题,维护成本高。为什么说维护成本高呢?如果使用传统数据库,既要人为地进行手动数据备份回档,又要参与横向和纵向的扩容,又要做故障恢复,人工参与的成本是很高的,同时加上原有架构的效率非常低,也导致时间成本和人工成本非常高,所以说我们的维护成本非常高。

第六个问题,资源利用率低。传统数据库是大盒子,盒子里面装CPU、内存和硬盘。但我需要很大的CPU、内存和硬盘吗?并不永远是这样的,有时候我们只需要更高的CPU、更大的内存,有时候需要更大的硬盘,难以满足用户在三个维度方面不同的需求正是传统数据库很大的问题,很多资源用不了那么多的时候就造成了资源的浪费。

第七个问题,可用性低。举一个上个月发生的例子,一家被微软高价收购的全球性的社交编程和代码托管网站,由于它用传统数据库主从架构在两个数据中心做了高可用性,美国政府更换了两个中心中间的光缆,中断了43秒,就是这43秒造成了整个网站24小时的宕机和瘫痪。大家可以想像,利用传统数据库架构,即便是这样的高科技公司都遇到了服务不可用的问题,何况是我们身边的企业。

为了解决传统数据库的问题,我们作为云服务厂商提供了一个完整的一站式的解决方案——腾讯云自研的数据库产品CynosDB。CynosDB源于单词Cynosure,是古希腊神话中北极星的名字,就是北天小熊座最亮的一颗星,现译为引人注目的人或物、天生的焦点。CynosDB是腾讯云自研的高性能、高可用、企业级云数据库,兼容开源数据库MySQL和PostgreSQL。

我们来看一下我们当初是怎么考虑要设计这样一款数据库的。借用当下比较流行的词叫“C位”,我们在CynosDB设计之初考虑了与C相关的设计特性。

CynosDB核心设计理念:

第一,Comprehensive ”兼”容并包,即全面兼容新版开源数据库MySQL和PostgreSQL,而目前业内厂商大多只能兼容一种。我们兼容了两款主流的开源数据库,这样做可以帮助企业实现平滑迁移。

第二,Creative分而治之。传统的数据库架构其实就是一个大盒子,怎么分才能把这个内存、CPU和磁盘进行合理的分配,减少资源浪费呢?我们的实现方式是分而治之,将计算与存储分离。不放在一个盒子里,放在多个盒子里面。实现了这种结构,就相当于我们需要在计算层和存储层之间进行通讯。通讯是通过网络来进行的,这使得我们需要减少网络通讯的流量,所以腾讯的CynosDB实现了一个“日志即数据库”的架构。

第三,Cloud Native应“云”而生。我们的数据库是搭建在腾讯云现有的高效稳定的云服务之上,所以我们能快速地搭建出高性能、高可用、高可靠的一套云数据库。

第四,Cost Effective事半功”倍”。我们需要一个在性能上能超过传统数据库的云数据库,并且可以给客户减少成本压力,因为云计算的本身其实是要给客户一个很实惠的服务,所以我们是说,可以实现真正的按量计费和弹性的扩增容。

第五,Cohesive相“辅”相成。极简的软件优化释放硬件红利。我们每年都会关心苹果手机的发布会,发布会上其实苹果每年都会讲我们今年有更高的CPU,我们有更大的存储量,大家有没有想过有一天,我们的苹果手机会运行得越来越慢,但苹果告诉你通过软件的优化,让原来的iPhone4、iPhone5、iPhoneSE,不需要升级到更快的CPU,更大的内存就可以用所有的AppStore的App呢?也许有一天苹果会做到这个,但CynosDB今天已经做到了。

现在看一下基于核心设计理念建构的CynosDB的产品架构。我们把盒子拆分了,我们将计算层独立出来,而存储层是用云自带的分布式存储来实现的。中间的通讯是通过网络进行计算层和存储层的通讯。我们的架构实现了真正的兼容多种数据库引擎,因为我们将计算层独立出来之后,我们的计算层就可以兼容多个数据库引擎。计算与存储分离之后,存储是一块独立的服务,大家可以理解计算是一层服务,存储是一层服务,外围我们接了云网络安全服务,不同的维度来保证安全可靠。我们给客户提供软件优化与新硬件相结合的解决方案,可以基于普通硬件来满足自己高性能、高可用的需求。如果有更高的要求,因为我们是一个企业级的数据库,我们可以结合新硬件,比如说我们基于SSD的SPDK的驱动和RDMA的网卡×××能更高的数据库服务,这个选择权我们交给了客户。

所以我们说,CynosDB产品架构是基于云服务和普通硬件的数据库架构,我们释放硬件红利、不转嫁硬件成本。

后面重磅介绍一下我们CynosDB的一个核心部件叫做CynosFS可计算智能存储,这是腾讯独创的一个存储系统。我们在国内率先实现了“日志即数据库“的体系架构。什么意思呢?大家看到左边其实是传统数据库的一个体系架构。当传统数据库发生了一个写操作的时候,计算和存储之间需要进行诸多的IO写入。我在存储和存储备份之间也要同样地进行IO操作,其实是极大地增加了系统的负载。而CynosDB是右边的做法,我们将诸多的IO合并减少为只写日志,所以我们称它是日志即数据库,也就是说在我们的系统里只存在于数据的日志,我们称之为极简IO。这相当于我们把繁忙的北京二环改造成了一个全方位的、立体的轨道交通,极大地提高了系统的运行效率。除此之外,CynosDB还实现了存储的运维自动化,大家可以看到日志写完了之后是可以返回的,可是在存储底层,我们自动把数据存成三个副本,是通过分布式一致性协议来维护的。特殊的情况下,如果一个副本产生了错误我们会从另外两个副本自动地拷贝数据到损坏的副本上来修复数据。同时,蓝色的部分是我们的数据页,如果系统需要访问数据页,我们会义务地将日志转化成数据,并且这套系统实现了自动扩缩容,所以我们称之为运维自动化的分布式存储系统。

我们来看一下CynosDB利用这种独创的架构和独有的产品创造的能力

首先,我们是业内首家兼容多个数据库引擎的云数据库。

第二,性能突破100万大关,实现了商用数据库同等级别的极速性能。

第三,存储容量达到了128TB,实现了国外云数据库领先厂商一倍的性能和存储量。

第四,告别分钟进入秒级时代,之前提到了数据库的种种痛点,我们有恢复慢、主备切换不可控的问题,而CynosDB将整个计算节点、故障节点恢复的时间从分钟级带到秒级。我们在计算层和存储层分离之后可以实现快速的恢复,让故障节点高可用。

第五,秒级备份,刚才讲到备份回档1T数据需要的时间,CynosDB在这个痛点上进行了极大的提升,基于快照的备份和回档,实现了秒级的飞跃,比传统的备份回档的速度提高了180倍。

讲到上面的这些产品能力,我们要看一看CynosDB的用户价值,这是用户最关心的。

第一,降低成本,提供了一款具有超高性价比的数据库产品。我们是基于普通硬件和软件的极简优化才做到这一点。达到性能与可用性与商用数据库相当的水平,成本只有约1/15。

1)从显性成本来讲,云存储降低了硬件采购的成本,且我们的成本是低于国外商用数据库一个数量级。2)CynosDB将存储计算分离之后,存储实现了真正的池化。大家知道,规模化可以降低边界成本,并且产生边际效应,我们通过分布式计算存储将存储实现了真正的无服务器架构,实现了一个存储层的智能角度,极大地降低了存储的成本。也就是说,你可以根据自己的使用量来分配你的成本,不像我们原来需要一个盒子或者是需要一个更大的盒子。3),刚才我们讲到实现了诸多的自动运维的功能来减少人工干预,这相当于是降低了我们用户使用的隐性成本。

综合三个维度的成本的节约,我们的成本只有传统商业数据库的1/15。

第二,灵活的弹性能力。大家如果有在现在的云上面购买数据库的经历会知道,我们如果买一个数据库第一是需要多少CPU,第二是需要多大的内存,第三是需要多大的硬盘。要有CynosDB就不需要这三步操作了,不需要知道你要多大的硬盘,购买完之后需要10T,付10T的钱,需要百T付百T的钱,如果不需要存储可以不用花钱。找到了真正的自动扩缩容而按使用量付费。

第三,平滑上云。全面兼容MySQL5.7和PostgreSQ10,这是两个目前更新的开源数据库的版本,原有应用零改动,实现了企业的平滑迁移和快速上云。

第四,安全可靠。我从三个维度来给大家讲一下我们怎么样做到安全可靠的。这是我们云数据库乃至云服务的一个生命线。1)纵向维度,CynosDB存储实现了一个自动的多版本维护,就像刚才我讲到,我们写一份数据在我的存储其实是可以自动维护三个副本,在纵向上是增加了数据得多副本;2)我们提供了跨区域的高可用,你可以多添加几个副本到另外的数据中心区,即便是这个数据中心的数据宕了,那个数据还可以提供,我们提供了高可用性,进一步保障安全可靠;3)同时支持腾讯云现有的安全组和VPC进行网络隔离,腾讯云现在的网关服务可以抵挡******和DDOS***。

我们将刚才所列举的诸多用户价值放在具体的应用场景来看,我们如何能解决企业的问题。

第一,高性能、高可用的企业应用。我们可以平滑上云,保证业务连续高效运转,可以降低企业的运营成本,可以通过自动运维减少人工干预。这里给大家爆一个料,我们的可计算智能存储将来会朝着人工智能领域发展,我们将来会将人工干预减少到最低。所以我说,CynosDB天生适用于传统企业,支撑传统企业的关键核心业务。

第二,互联网和游戏业务。1)应对峰值业务。我的同事也介绍到了,无论是电商还是游戏,互联网业务经常有很大的业务量的峰值变化。CynosDB灵活的计算扩展天生适合应对峰值业务。游戏领域我们经常会做冲在线用户数的活动。传统情况下,运维人员会提前一个月购置设备,等活动结束这个设备就不需要了,还需要把这些设备注销掉,可是CynosDB不需要这项工作。2)快速备份回档。刚才讲到我们将备份回档的速度提高了180倍,可以想像当你的游戏版本出现问题的时候,你比竞争对手更快地修复问题,会给客户提供更快的游戏服务。3)海量可扩展存储,CynosDB是一个分布式的共享存储,游戏的公司可以利用它来实现混服和合服的操作,同时不需要用多个实例来支撑游戏业务了。所以CynosDB天生适合应用于互联网公司、游戏和小程序。

此文已由作者授权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

原文地址:http://blog.51cto.com/13957478/2325958

时间: 2024-10-10 21:14:20

为什么CynosDB叫真正的云原生数据库?的相关文章

云原生数据库如何打造业务弹性

摘要: 云计算带来了业务弹性上的极大优势,阿里云数据库高级产品专家时慢从应用架构的变迁,客户实战案例,业务分析等方面详细介绍POLARDB,及如何利用POLARDB设计互联网创新型应用的数据库架构. 云计算带来了业务弹性上的极大优势,阿里云数据库高级产品专家时慢从应用架构的变迁,客户实战案例,业务分析等方面详细介绍POLARDB,及如何利用POLARDB设计互联网创新型应用的数据库架构. 应用架构的变迁--为什么我们需要超级MySQL?POLARDB跟MySQL是100%兼容的,有超越MySQL

云原生视角下的开放网络

随着容器等轻量级高效率虚拟化技术的兴起与微服务理念的普及,云计算正向着“云原生”(Cloud Native)的方向发展.为了适应这个趋势,网络也需要进行相应的改造以更好地支撑云原生平台大规模的弹性能力与服务自愈和的特性.开放网络的技术将在云原生场景中得以广泛应用. 本文根据周雍恺博士在NCDC大会上的演讲报告<云原生视角下的开放网络>整理而成. 何谓“云原生” 从2015年开始,微服务.CI/CD.DevOps.Serverless.SRE等词汇大量涌现,一场云原生的运动正式拉开大幕. 云原生

第九章 云原生数据架构

9.1 关系型数据库尚能饭否   在大数据.NoSQL以及NewSQL等新技术的轮番轰炸后,依然是主流 9.1.1 优势 开发优势:SQL查询灵活度非常高,方便的进行联机事务处理.JDBC完善.ORM完善.     ORM是为了解决 面向对象和关系型数据库阻抗不匹配的问题的:                    (阻抗不匹配: 比如一个Opprotunity下面有多个LineItems, 面向对象很好表示这种关系,Opp对象下有一个lineitems的List: 但是在关系型数据库中,就有两张

保姆级教程!手把手教你使用Longhorn管理云原生分布式SQL数据库!

作者简介 Jimmy Guerrero,在开发者关系团队和开源社区拥有20多年的经验.他目前领导YugabyteDB的社区和市场团队. 本文来自Rancher Labs Longhorn是Kubernetes的云原生分布式块存储,易于部署和升级,100%开源且持久,由业界采用最为广泛的Kubernetes管理平台创建者Rancher Labs推出,并于去年10月捐献给CNCF.Longhorn的内置增量快照和备份功能可确保volume数据的安全,而其直观的UI可以方便地管理持久卷的计划备份.使用

开放软件时代,云原生的数字化公司是否会爆发?

(上图为Pivotal公司副总裁.亚太及日本地区常务董事Lionel Lim) 2017年7月4日,福布斯技术委员会发布了新一代爆发公司排行榜,该排行榜试图预测下一个科技巨头,发现那些即将飞跃的公司.在2017爆发公司排行榜里出现了一个不那么耳熟能详的公司名字:Pivotal,仅次于Airbnb.Lyft.NVidia而名列第四位,而后面跟的是Salesforce.Snapchat.Tesla和Uber等公司. Pivotal专注于PaaS平台业务,可以与之相类比的是26年前诞生的Linux.2

CNCF官方大使张磊:什么是云原生?

作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 编者说: 从 2015 年 Google 牵头成立 CNCF 以来,云原生技术开始进入公众的视线并取得快速的发展,到 2018 年包括 Google.AWS.Azure.Alibaba Cloud 等大型云计算供应商都加入了云原生基金会?CNCF,云原生技术也从原来的应用容器化发展出包括容器.Service Mesh.微服务.不可变基础设施.Serverless.FaaS 等众多技术方向,CFCF 旗下也囊括了越来多的开源项目. Kub

2020云原生7大趋势预测!

2020云原生7大趋势预测! 过去的几年,是云原生技术和理念得到广泛接受的几年.在这个快速发展的领域,预测未来显得尤其困难,但是我们又有着一些坚定的信念,相信以开放创新为支撑的云原生领域会持续重塑软件生命周期,带来不断的价值. 2019,在众多热门技术趋势中,云原生的关注度居高不下,很多开发者都对由此而兴起的一众技术十分追捧,众多企业开始探索云原生架构转型落地.在中国,开发者们经历了从关注“云原生概念”到关注“云原生落地实践”的转变. 在筹备阿里云首届云原生实践峰会的过程中,我们展开了对云原生技

云原生应用程序架构的五大特性(上)- 12要素应用

12要素的概念最早诞生于Heroku的工程师手中,说白了,其实就是云原生应用程序架构的模式集合,它描述了一个应用程序的原型,最好地诠释了采纳云原生应用程序架构的原因. 通过突出陈述性配置和水平扩展的无状态/无共享进程,以及整体上与部署环境的松耦合连接,这些模式实现了速度性.安全性和可扩展性.在当下,Cloud Foundry.Heroku和Amazon Elastic Beanstalk等云应用程序平台都已经为部署12要素应用进行了优化. 12要素视应用程序为可独立部署的单元,企业通常将多个可协

微服务架构与实践及云原生等相关概念

微服务架构与实践 笔记:<微服务架构与实践> 王磊 著 一 单块架构 1 定义:对于这种功能集中.代码和数据中心化.一个发布包.部署后运行在同一进程的应用程序,我们通常称之为单块架构应用,并非物理上的分层. 2 单层架构:数据 逻辑 页面 混合 3 三层架构: 1)表示层:数据显示和用户交互 2)业务逻辑层:业务逻辑处理 3)数据访问层:数据存储访问 4 优势: 比较适合小项目 易于开发:开发简单直接,集中式管理,基本不会重复开发,集成工具适合 易于测试:单进程 易于部署:单项目包,功能都在本