|
|
51CTO旗下网站
|
|
移动端

无服务器数据库的概念、产品及优缺点概述

本文将介绍无服务器数据库的基本概念,其知名的产品,以及各自的优缺点。无服务器计算仍然需要用到真实的服务器来安放其对应的无服务器数据库。

作者:陈峻编译来源:51CTO|2018-05-22 09:00

无服务器数据库的概念、产品及优缺点概述

【51CTO.com快译】引言:本文将介绍无服务器数据库的基本概念,其知名的产品,以及各自的优缺点。

一、了解无服务器架构

无服务器计算是云计算的一种执行模式,即:云服务提供商能做到对计算机资源分配的动态管理。由于服务功能的执行会占用宝贵的计算资源,因此如果您的应用既涉及到内存的分配、又与服务功能的执行时间有关的话,那么AWS和Azure都会以100毫秒为单位向您收取费用。AWS Lambda当前的计价标准为0.00001667美元每GB每秒,而Azure的功能费用则为0.000016美元每GB每秒。您可以籍此来细粒度地掌握成本的上涨速度。考虑到一般应用所能够被分配到的内存量大约在128MB到1.5GB之间,则对应的功能执行的价格也会根据您的设置不同而有所变化。

当然,无服务器计算仍然需要用到真实的服务器来安放其对应的无服务器数据库。所以,只有了解了自己的需求,您才能轻松地去选择合适的数据库服务,并使用那些当今最为先进的技术解决方案。

二、不同的无服务器数据库

当前,市面上有几款知名的数据库产品可供选择,例如:Azure Data Lake(Azure是微软的公有云服务,Data Lake是其中一种类型的服务主机)。

1.Google云端商店

Google云端商店是一个面向文档的商店,它将Google App Engine的数据库组件列为了独立的服务。同样隶属于Google的Firebase,可以为客户提供两种不同的支付方案选项:固定费用的套餐和按使用支付的方案。同时,Firebase也包含了一个分层式的数据库。

2.FaunaDB

FaunaDB分布于世界各地,它是一种最重要的交易型数据库服务,其技术主要是基于Twitter。

3.亚马逊Aurora Serverless

亚马逊Aurora Serverless的预览版已于2017年第四季度推出。它有两种不同的版本:

  • 兼容MySQL与PostgreSQL的版本
  • 兼容MariaDB与Oracle等其他已知系统的版本

Amazon Aurora Serverless数据库可以被完全托管,并且能够自动将数据库的存储容量扩展到64TB。

4.DynamoDB

它是亚马逊的另一项服务。DynamoDB是一种完全托管的NoSQL数据库服务。它的无缝可伸缩性能够提供可预测的高速性能。您可以直接使用DynamoDB来创建数据库的表项,也可以存储和检索任意数量的数据。它还能为任何级别的流量请求提供服务。

5.MongoDB

尽管不属于无服务器数据库,但是MongoDB仍然值得一提。因为它提供了一款数据库即服务(Database as a Service,DBaaS)的产品--MongoDB Atlas。MongoDB是免费且开源的,它由GNU的Affero通用公共许可证(General Public License)所发布。它在数据存储和JSON的相关文档方面非常灵活,因此文档之间的字段可以有所不同,而数据结构也随着应用场景而发生改变。

如上所述,作为一款DBaaS工具,MongoDB Atlas具有强大的功能。它能够进行各种自动化操作,包括在几分钟之内创建和部署群集,并避免您的群集出现宕机。它基于角色的访问控制服务可以保护您的各种数据。同时它也具有加密、网络隔离、和身份验证等保护功能。

MongoDB Atlas的另一个强大功能是:您只需要按下一个按钮,便可轻松实现应用的横向与纵向扩展。为了获得更好的读取性能和服务保证,您还可以在多个地区内部署集群。这些集群虽然在地理上是分布的,但是它们能够自我修复,并且具有出色的容错性。

MongoDB Atlas所带来的连续备份解决方案,能够提供可查询的时间点与快照恢复的选项。您可以方便地查找到任何细节,并能实时获取与性能相关的视图。同时,通过自定义的各种警报参数,您还能通过优化其仪表板,来突出显示各种关键的历史指标。

三、使用无服务器数据库的优点

1.成本效益

预先购买固定数量的服务器,通常会需要花费很长时间才能充分利用到它们,这相对于使用无服务器数据库来说显然是非常昂贵。它对于机器资源的封装能力比购置那些可自动扩容的分组更具有成本效益。另外,由于不涉及到与操作系统相关的许可、安装、维护、支持和修补,因此整体成本也会大幅缩减。由于只对分配给用户代码的内存与时间进行计费,它常被描述为“即付即用(pay-as-you-go)”的模式。

2.运营、可扩展性和生产力

鉴于云服务提供商有责任去扩容、并无缝地满足用户需求,因此无服务器架构能够节省开发人员和运营商,在自动化扩容策略、与系统设置及调优上所花费的时间。籍此,小型开发团队能够独立地运行他们的代码,而无需引入架构师和工程师团队的支持。另外,更多的开发人员也能通过它来更加熟悉DevOps技能,从而使得普通软件开发者与DevOps工程师之间的差异不再明显。

四、使用无服务器数据库的缺点

1.性能和资源限制

与那些在专有服务器、虚拟机或容器中运行的数据库相比,一个不经常被使用的数据库可能会出现严重的响应延迟问题。发生这种情况的原因是:如果云服务提供商发现无服务器数据库未在被使用,则会将其完全地关停。这就意味着:如果数据库需要一段时间才能启动运行的话,则会产生延迟的现象。当然,由于资源提供者在资源上有设限的原因,无服务器计算也不适用于具有高性能计算需求的工作负载。另外,从运维的角度来说,在任何给定的时间内,按需且批量地购置准确数量的服务器,还是更有益于整体架构的规划。

2.监控和调试

相比较传统的服务器而言,对于无服务器架构的性能、以及资源过度使用等方面的问题诊断会困难许多。虽说全面功能提供的服务模式已经过时,但是我们仍旧很难通过对无服务器架构添加探查器、调试器或APM(Application Performance Management)等工具,来深入了解更多的细节。而且无服务器架构的运行环境通常不是开源的,因此我们很难在本地环境中精准地重现其性能特征。不过,如今市场上已经出现了一些非常优秀的无服务器监控工具,可供您挑选。

3.安全

无服务器数据库常被草率地认为比传统数据库更为安全。在某种程度上说的确如此,因为云服务供应商会更加专业地为你关注那些操作系统级别的漏洞。不过,实际上与传统架构相比,由于无服务器架构的应用组件更多,而随着应用入口点的增多,它受到攻击的可能性也会呈指数式增长。由于无法在终端和网络层面上(如IDS / IPS)执行相关控制或安装,用户往往对于其云端的工作负载也是无能为力的。您可以通过如下链接,来了解更多有关无服务器安全风险方面的信息。

https://hackernoon.com/fantastic-serverless-security-risks-and-where-to-find-them-737d2206545a

原文标题: What Is a Serverless Database? (Overview of Providers, Pros, and Cons),作者:Nemanja Novkovic

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 互联网MySQL数据库应用潜规则
  2. 分布式之数据库和缓存双写一致性方案解析
  3. 网站数据库设计应注意哪些问题
  4. 应对GDPR进行数据库审计的原因和好用工具推荐
  5. 如何优雅的解决分布式数据库的复杂故障
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

标准C++开发入门与编程实践

本书着重介绍标准C++语言,即1998年由ISO正式推出的关于C++的国际性标准版本。 本书从最基础的编程语言概念讲起,共分6篇24章。前4篇完整...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊