企业使用数据库的12种姿势

数据库,作为IT系统的基础类软件,发挥着非常巨大的作用。那么企业在使用数据库时,有什么样的方式可以选择?不同方式又各有其什么特点呢?本文将从使用方式、适用场景、未来发展、成本因素(人力、财务、时间)及风险点等多角度分析十二种情况(前六种为本地方式,后六种为云端方式)。

方式1:商业数据库 + 商业服务

这是比较传统的一种方式。企业购买大型商业数据库软件,并对应购买服务支持工作。在过去三、四十年里,这是主流的一种使用方式。可以说也很好地满足了各类企业的快速发展。只是随着近二十年来,互联网化的变革,对此种方式产生了不小的冲击。

这种方式适合传统企业,对数据库要求较高,自有技术能力有限,未来发展相对固定的情况,未来发展随着商业数据库的发展而变化,从总体来看,未来云化的需求对其冲击较大。此外,在国产化、自主可控化等要求下,也会对这个模式影响较大。

成本因素

从人力成本角度来看,整体投入不大,主要是由厂商提供。自有人员主要是完成审核、评估等工作。从财务成本分析,是几个方案中,相对最高的一种。经常见到“某国有银行,年度数据库采购xxxx万元的新闻”见诸报端。

正因为财力投入较大,这种方式也一般仅限于大中型企业或某些特殊行业要求。对时间成本而言,是相对较少的。选择商业数据库+服务,也就是看重其多年产品研发技术积累和成熟的商业交付能力。无论是产品成熟度、稳定性;还是服务支持方面等,一般都是可在较短时间内交付的。

风险分析

  • 技术风险:技术封闭、不开放;不符合自主可控要求。
  • 政治风险:如是外商产品,还易受到政治环境的影响。
  • 财务风险:容易受到厂商绑架,经济投入上不太可控。
  • 人员风险:受厂商技术人员技术能力水平影响很大,自有人员无法承担,长期得不到成长。
  • 功能风险:成熟商业产品,很难定制化满足客户个性需求;且存在与其他组件集成风险。
  • 转型风险:采用某商业产品后,想转型其他产品较为困难。

其他说明

  • 商业产品,包含国产数据库及新兴数据库厂商。作为商业产品很好的补充,这两类方案在综合成本上是有优势的,但还需要在产品功能及服务能力上进一步加强。毕竟类似国外的商业产品服务,已经有四、五十年的积累。
  • 商业服务,除了原厂服务外,还包括第三方服务支持公司。在后者的选择上,针对国外和国内厂商服务,差异还是比较大的。近期看到国产包括新兴数据库厂商与第三方服务公司之间的合作,动作很多(包括培训、认证、交付等)。

方式2:商业数据库 + 自主服务

这一方式也较为常见。在前一方式中,随着企业使用商业软件的深入,自有服务需求就变得迫切起来。通过建立自有服务体系,可以更好地满足企业自身需求。这种方式,适合有一定技术积累的传统企业。未来发展随着商业数据库的发展而变化,总体相对稳定。

成本因素

从人力成本来看,相较于前者有更多的投入。商业数据库产品推广多年,相关人才保有量很大,因此一般很容易招聘到需要的人才,且往往价格也不太高。这与后面的开源软件,形成鲜明的对比。财务成本投入仍然相对较大,商业软件的采购费用占整体的大头。

从时间成本看,较前者有所增加,但整体仍然偏少。这主要是因为商业数据库成熟的生态,很容易搭建出运维体系;且人才方面,也较容易去补充。

风险分析

在风险方面,与前者类似。其中技术风险上,自有人员对商业产品的把控,较原厂还是有所差距。当然对应人员风险就降低,通过自有人员对产品把控力更大。

其他说明

在某些关键核心领域,仍然建议采用原厂支持,减低技术风险。

方式3:开源数据库 + 商业服务

随着开源数据库的日益成熟,越来越多的企业开始使用开源数据库。但相较于商业数据库,开源方案对企业自有技术能力要求较高。因此,很多考虑搭上开源浪潮的企业,采用这种方式。适用于转型中的企业,从商业走向开源,这种方式可以在一定程度上规避风险。但一般为过渡阶段,长期来看还是要培养企业自有的服务能力。

成本因素

人力成本来看,处于中等水平,相较于商业服务,其综合人力成本有所降低的。财务成本投入大体中等左右,但服务厂商不同差异较大。时间成本投入较少,但相较于商业方案,需要企业对商业服务做更多的技术考察。因此在初始的评测阶段,往往需要投入较多的时间。

风险分析

  • 技术风险:开源数据库自身技术风险、企业技术选型风险及商业服务能力风险。
  • 人员风险:受厂商技术人员技术能力水平影响很大,需要认真评估。
  • 功能风险:一般而言,开源数据库在功能上相较于商业数据库,还是有所欠缺。因此这部分要仔细评估。

其他说明

与商业服务不同,目前在开源服务方面,各厂商能力参差不齐,也没有较为统一的标准。有些开源数据库,是有所谓“原厂”类商业支持,但在国内声小势微。

方式4:开源数据库 + 自主服务

这是典型的“互联网”玩法,也是较为常见的一种方式。适用于规模较大,企业定制化要求较高的场景。发展成熟可考虑向企业内部私有云或数据库产品、方案方向发展,甚至对外赋能。

成本因素

这种方式的人力成本相对较高,但根据企业的使用规模、难度差异较大。开源数据库的发展也经历了一段时间,市场上人才保有量也逐步提升。但对于高端人才,仍然相对稀缺,人才成本也较高。财务方面,主要也表现在人力成本上。

此外,对于基础设施上也需要有一定投入,甚至可能比商业方案投入更大。时间成本较高,企业要建立成熟的开源数据库运维体系,是需要一定时间积累。

风险分析

风险分析与上者类似,突出人员风险,需长期培养投入。

方式5:开源定制数据库 + 商业服务

这是方案3的一种特殊情况。企业不是使用原生开源产品,而是使用第三方公司定制开源方案,可能是纯软件,也可能是软硬一体式。这类方式,会针对开源软件的不足,做定制化改进,满足企业级软件的需求。

但这种方式一般企业无法自己独立运维,需要借助第三方公司的商业支持。对数据库的企业级特性有较高要求,但原生开源数据库又无法满足的情况。对于短期内有去除商业数据库的需求场景,非常适合。随着国内对开源数据库使用水平不断深入,有越来越多的此类初创型企业出现。非常看好这种模式的未来发展。

成本因素

人力成本,主要来自于第三方服务,总体不高。财务成本,主要看方案情况,差异较大。时间成本,可视同纯商业方案。

风险分析

  • 技术风险:定制化部分不开放,企业不可把控;此外,原生开源的版本变化,可能短期无法适用到方案中
  • 人员风险:受厂商技术人员技术能力水平影响很大,需要认真评估。
  • 转型风险:受限于方案,存在一定转型的风险。

方式6:私有云 + 云化服务

最后一种企业私有化部署方案,是一种云化折中方案。受限于一些特殊国情,有些企业无法直接使用公有云,但又急需类似公有云的平台能力。因此,某些云厂商或数据库厂商提供了一种私有云化部署方案。可简单理解为将云搬回家。

过去有种说法,说私有云会逐步萎缩,公有云会一统天下。但从近两年的国内云市场发展来看,私有云的发展速度某些指标甚至超过公有云。当我们现在大谈”toB”市场成为下一个蓝海时,这种模式也是toB服务市场的一个重要组成部分。这种方式,适合于大型企业,长期看好。

成本因素

从成本角度来看,人力成本投入不大,主要取决于厂商人员投入。财力方面,虽然相较于大型商业解决方案,有一定的成本优势,但优势不甚明显。时间成本上,也要长于传统方案,毕竟这不是单一技术平台的更换,而是涉及到Iaas、Paas等诸多层面。

风险分析

其风险点除了在财力方面,更多是考虑在对厂商的技术依赖性。相较于传统方案,这种方式的依赖性甚至更高。厂商一般提供很好的私有云,及对应其自有公有云的打通方案;但对其他公有云或企业自有平台,则较难打通。

方式7:裸云 + 开源数据库 + 自主服务

这是一种上云使用的初级阶段,企业仅使用云的Iaas部分,其余均自建。这种方式可充分利用公有云带来的弹性优势,将企业原有的技术积累延续到云端。对于企业来说,这种方式也是最为“平滑”的,甚至应用可以不做更多感知,仍然像使用企业内部IT资源一样,使用公有云资源。很适合于有多云、跨云需求的场合。但缺点是无法利用云厂商技术能力带来的附加值。

成本因素

从成本角度来看,企业可做到”最优”。仅使用裸机的情况下,完全可以按”价低者得”的策略,优化选择。在一定规模情况下,公有云还是有其价格优势,何况还可以充分利用弹性能力,动态缩减,根据企业发展随时调整IT投入。人员方面,与企业自主运维变化不大。时间方面,因为底层交付速度的提升,还是有一定的提高。

风险分析

风险不大,仅仅是依赖公有云底层,很容易迁移到其他云厂商或迁回自有。

方式8:裸云 + 商业数据库 + 第三方服务/自主服务

这是一种较为特殊的情况。企业选择将商业数据库,构建在公有云上。但其没有选择云厂商提供的,而是自主构建或选择第三方厂商协助完成。这往往是一些中小型的企业,其规模不足以支持私有化部署,而应用又依赖于商业数据库产品。企业想要充分利用云的弹性,因此组合出这种使用方式。

成本因素

财务成本来说,主要是针对基础设施层面,会较自建有所节省。人力、时间方面,差异不大。

风险分析

风险在于,某些商业数据库针对云场景的不予支持,企业有一定技术风险。要么有比较强大的自主技术能力,要么依赖于第三方服务厂商。

方式9:云数据库(开源) + 云平台服务

这是云厂商推出的最为“传统”的数据库服务,也是目前最多的一种选择。云厂商基于开源的数据库版本+自有的平台服务,构建其数据库产品。其核心的数据库与开源的版本,是完全一致的,各家比拼的更多是平台服务能力。这种方式对于企业的运维要求很低,基本可以依赖于云厂商提供的能力(除了个别高可用、容灾需求外)。这一方案比较适合于初期上云企业,可逐步摸索云与原有方式的区别。

成本因素

财务成本来说,与商业方案比较无疑是有优势的,但与自主开源对比,几乎没有优势。其更多的是在快速交付、扩缩容等方面产品特点。此外,对于人力成本来说,因运维类工作大幅度降低,因此是可以节约一定人力,压缩自有人员规模。时间成本方面,也有所提升。

风险分析

数据库自身风险不大,毕竟其使用的与开源同一版本,技术上可迁移至其他云厂商。当数据库版本升级后,也可以享受到对应的技术红利。但对平台服务,是存在一定依赖的,各家能力不同,需要有适应过程。此外,运维依赖云厂商,也存在一定技术风险。自主的技术能力,会逐步丧失。

方式10:云数据库(开源定制) + 云平台服务

云厂商除了提供与开源一致版本外,一般还提供私有定制版本。它往往是基于某开源数据库某一版本的深度定制,针对某些特性做了加强。当然有些以反馈社区的方式,回馈给开源(可能未来会merge入新版),但很多仅存在在”云私有DB”。如企业有针对某一特殊场景(如秒杀)或其他方面(如金融级数据同步)的强需求,可考虑使用此方案。当

然使用也意味着与云厂商深度绑定。此外,在平台服务方面,与上面情况类似。这种方案比较适合于对数据库有一定要求,而原生开源版本又不支持的情况。

成本因素

与上一种方式类似。

风险分析

风险在于绑定单一厂商,一般很难下来。这与使用大型商业数据库的情况类似。当然可以在应用端做个设计,尽量减少对特性的依赖。此外,因为是定制版本,未来开源版本的升级可能不会短时间内支持,甚至可能不会考虑支持,完全走向独立分支的道路。针对这点,企业也是需要关注的。

方式11:云原生数据库(自研) + 云平台服务

某些大的云厂商,除了上述两种外,可通过自研数据库方式,增加未来的产品竞争力。从最新的Gather报告来看,更多的云厂商加入进来,这也给数据库整体市场带来了活力。从预测来看,均一致看好云原生数据库的未来发展。相较于前两种方式,这类数据库更是诞生于云,从设计之初就更多考虑了云化环境特点,因此极具竞争力。

当然,从目前来看,现有云原生还处于”初级”阶段,未来在解决了更大规模扩展性、多读多写能力等后,其将真正进入井喷式发展。现有各大厂,在这一领域纷纷重点布局,加大投入。对企业而言,无疑又多了一种选择,特别是某些场景(如海量数据等),原生开源、扩展开源产品均无法满足。

成本因素

目前各厂商都在不遗余力地推广,因此从成本上企业还是可以受益的;但从长期来看,还需要进一步观察。从人员来说,企业也是需要一定投入,毕竟这是一种全新的数据库,虽然云厂商提供了很好的交互平台,但还是需要企业做一定的技术储备,因此人员上还需要些投入。时间上来看,对于这个比较新的产品,还需要做更多的测试评估工作,因此也是需要多些投入。

风险分析

风险类似上面,甚至有过之。企业应用将完全依赖于厂商产品。尽管很多是宣传兼容开源或商业数据库,但毕竟不是同一产品。这点还需要企业仔细评估。此外,针对兼容性、备份恢复、高可用、数据同步、跨云容灾等,都是值得投入研究的。

方式12:云数据库(自研) + 云服务 + 云托管平台

这是一类小众的方案,其背景是缘起于数据库厂商与云厂商的蛋糕划分问题。有些数据库厂商(如MongoDB)不希望将云数据库市场由云厂商主导,而是希望可由自身主导,构建不依赖于云厂商的独立生态。目前这种方式国内见得不多,此处暂不评论了。

作者:韩锋

首发于作者个人公号《韩锋频道》。

来源:宜信技术学院

原文地址:https://blog.51cto.com/14159827/2433280

时间: 2024-10-13 21:03:18

企业使用数据库的12种姿势的相关文章

高效率完成工作的12种热门编程语言,你会用几个?

编程语言不仅仅面向程序员.如果你是网络工程师.系统管理员.存储管理员或其他基础设施专业人员,知道一种(或两三种)编程语言,都能在工作中派上用场. 软件定义基础设施正在迅速进入数据中心,为了管理这种基础设施,用你自己编写的脚本定义网络或软件定义存储软件,会对工作很大的帮助. 此外,由于更多的企业采用开发运维的方法,许多公司力求加大使用自动化的力度.虽然现有的自动化工具可以为你处理其中一些工作,但是管理员能够自己编写脚本是个好主意.而实际上,一些雇主要求任何优秀的系统管理员或其他基础设施专业人员都要

程序员想玩转大数据:需要知晓的12种工具

转自 :http://www.csdn.net/article/2012-12-20/2813054-Database 无论是在构建大数据的应用程序,还是仅仅只想从开发的移动应用中得到一点点启发,程序员现在比以往任何时候都需要数据分析工具.这绝对是一个好东西,所以很多公司从程序员的需求和技能出发,构建了一些数据分析工具.GigaOm的记者Derrick Harris列举了十二个工具,CSDN进行了编译整理: 在过去的几年里,Derrick看到了很多初创公司,各类项目以及开发工具等等,它们都旨在为

HDU 2089 不要62(数位DP,三种姿势)

HDU 2089 不要62(数位DP,三种姿势) ACM 题目地址:HDU 2089 题意: 中文题意,不解释. 分析: 100w的数据,暴力打表能过 先初始化dp数组,表示前i位的三种情况,再进行推算 直接dfs,一遍搜一变记录,可能有不饥渴的全部算和饥渴的部分算情况,记录只能记录全部算(推荐看∑大的详细题解Orz) 代码: 1. 暴力 (以前写的) /* * Author: illuz <iilluzen[at]gmail.com> * File: 2089_bf.cpp * Create

SQL Server 中可以被锁住的 12 种资源

第1种: DB 整个数据库 第2种: file 数据库文件 第3种: table 第4种: hobt(堆)BTree(B树) 第5种: extent 一个区(8个8KB页面) 第6种: page 数据页面 . 第7种: rid 行标识符. 第8种: key 用于防止幻读的索引行索. 第9种: object 数据库对象. 第10种: application 应用程序专用资源. 第11种: metadata 系统元数据 第12种: allocateion unit 一系列根据类型分组的相关页面,如数

最新、程序员应该具备的12种能力!

  下面是我总结的一个合格程序员应该具备的 12种能力.中国软件行业的崛起,靠的是合格的程序员.任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基 础.写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考.我一直以为,当程序员是很辛苦的,如果不是真正的喜欢,很难坚持下去.如果真的不喜欢 这个职业,也该尊重这个职业,尊重自己,赶紧改行. 1. 编程语言能力 不用多说,作为合格的程序员,精通一门语言是必须的.这种精通,不是说看了一本<24小时精通XXX>

PHP连接MySQL数据库的几种方式

PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi :MySQLi 只针对 MySQL 数据库,MySQLi 还提供了 API 接口. PDO (PHP Data Objects):PDO 应用在 12 种不同数据库中. 共同点: 1. 两者都是面向对象 2. 两者都支持预处理语句. 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的. 确保wamp里已经安装好了MySQLi或PDO,查看方式:echo phpinfo(); 接下来将会使用以下三种方式

【bzoj3224】Tyvj 1728 普通平衡树 平衡树的三种姿势 :splay,Treap,ScapeGoat_Tree

直接上代码 正所谓 人傻自带大常数 平衡树的几种姿势:  AVL Red&Black_Tree 码量爆炸,不常用:SBT 出于各种原因,不常用. 常用: Treap 旋转 基于旋转操作和随机数堆 但不支持区间操作. 非旋转 基于随机数堆和拆分合并操作 常数较大 Spaly 完全基于旋转 各种操作 ScapeGoat_Tree 基于a权值平衡树和压扁重构 无旋转 但不支持区间操作 PS:非旋转可以实现平衡树的可持久化,从而来套一些东西 splay #include<cstdio> #de

玩转JavaScript OOP[4]&mdash;&mdash;实现继承的12种套路

概述 在之前的文章中,我们借助构造函数实现了"类",然后结合原型对象实现了"继承",并了解了JavaScript中原型链的概念. 理解这些内容,有助于我们更深入地进行JavaScript面向对象编程. 由于JavaScript是一门基于对象和原型的弱语言,灵活度非常高,这使得JavaScript有各种套路去实现继承.本篇文章将逐一介绍实现继承的12种套路,它们可以适用于不同的场景,总一种套路适合你. (亲:文章有点长,请点击右侧的「显示文章目录」按钮,以便导航和阅读

springmvc和servlet下的文件上传和下载(存文件目录和存数据库Blob两种方式)

项目中涉及了文件的上传和下载,以前在struts2下做过,今天又用springmvc做了一遍,发现springmvc封装的特别好,基本不用几行代码就完成了,下面把代码贴出来: FileUpAndDown.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"%> <html> <head> <title>using commons Uplo