解读无服务器数据库优缺点,选择哪些解决方案?

无服务器计算是一种云计算执行模式,这意味着云提供商动态管理计算机资源的分配。通过函数执行(function execution)获取宝贵的计算资源。如果你拥有分配的内存和函数执行时间的组合,则像AWS和Azure都会收取更多费用,该时间会四舍五入为100毫秒。AWS Lambda的当前每GB-second使用价格为0.00001667美元,而Azure的每GB-second使用费用为0.000016美元。这可以让你了解成本上涨的速度。考虑到分配的内存量可以在128 MB和1.5 GB之间配置,函数执行的价格可以根据你的设置而变化。大功率配置的执行时间每100ms的成本将比基于128 MB的选项贵12倍左右。

解读无服务器数据库优缺点,选择哪些解决方案?

无服务器计算仍然需要服务器,这就是无服务器数据库所在的地方。知道你的需求无疑会使你轻松选择正确的数据库服务,以决定使用怎样的技术解决方案。

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

成本效益

购买固定数量的服务器通常需要很长时间才能充分利用,并且比使用无服务器数据库要昂贵得多。除了更具成本效益之外,由于机器资源的更高效的装箱(bin-packing),它还可以比提供自动缩放组更具成本效益。立即获得成本效益,实现了不存在操作系统成本,包括许可,安装,维护,支持和修补。它是随需随付费(pay-as-you-go)的计算,因为你只需要在运行代码时分配需用时间和内存。

解读无服务器数据库优缺点,选择哪些解决方案?

运营,可扩展性和生产力

无服务器架构意味着开发人员和运营商可以通过不设置和调整自动缩放策略或系统来节省时间。云提供商责任扩展容量以无缝地满足需求。小型开发团队现在可以独立运行代码。没有必要寻找基础设施和工程师的支持团队。而且更多的开发人员可正成为DevOps的娴熟技术人员。软件开发人员和DevOps工程师之间的差异现在无法区分。

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

性能和资源限制

与在专用服务器,虚拟机或容器中运行的数据库相比,不经常使用数据库可能导致数据库受到更严重的响应延迟。发生这种情况的原因是,如果云服务提供商没有使用服务器数据库的需求,则它会“完全停止”无服务器数据库,这意味着如果运行时需要一段时间才能启动,会造成延迟。无服务器计算也不适用于高性能计算等一些计算工作负载。这种资源限制的原因来自于施加这些资源限制的提供者。另一个原因是,在任何特定时期批量提供你需要的服务器数量,可能会更具成本效益。

监控和调试

使用无服务器架构来诊断性能或过度使用资源的问题,比传统服务器脚骨要困难得多。尽管可以对完整的函数进行定时,但是不可能通过附加探查器,调试器或APM工具来深入了解更多细节。请注意,无服务器架构运行的环境通常不是开源的,这意味着其性能特征不易在本地环境中精确复制。幸运的是,市场上已经有一些非常棒的无服务器监控工具可供你使用了。

解读无服务器数据库优缺点,选择哪些解决方案?

安全

无服务器数据库有时被认为比传统数据库更安全。在某种程度上,这是事实,因为云供应商正在关注操作系统的漏洞。因为与传统架构相比,应用程序的组件更多,并且每个元素都是无服务器应用的入口,所以攻击的可能性会提升。客户对必须保护其云工作负载的保证变得不在那么重要,因为他们无法在端点和网络级别(如IDS/IPS)上执行关于控制或安装的任何操作。

不同的无服务器数据库

有几个已知的数据库已经可用。比如Google云商店,FaunaDB,亚马逊Aurora无服务器,DynamoDB,MongoDB。

Google云商店

Google云商店是一个面向文档的商店,提供Google App Engine的数据库组件作为独立服务。Firebase也由Google拥有,可提供两种不同的支付方案供客户选择。有一个固定的计划或随收随付费的计划。Firebase还包含分层数据库。

FaunaDB

FaunaDB分布于全球各地,提供重要的交易数据库服务。它的技术基于Twitter。

亚马逊Aurora无服务器

Amazon Aurora Serverless的预览版于2017年的最后一个季度推出。它有两种不同的兼容MySQL或PostgreSQL的版本,但它也与MariaDB,Oracle等其他已知系统兼容。Amazon Aurora无服务器数据库完全兼容管理并自动扩展到64 TB的数据库存储。

DynamoDB

这是另一项亚马逊服务。DynamoDB是完全托管的NoSQL数据库服务,能够提供具有无缝可伸缩性的、可预测和高速性能。使用DynamoDB,创建数据库表很简单,可以存储和检索任意数量的数据,并且还可以为任何级别或请求的流量提供服务。

MongoDB

尽管不是无服务器数据库,但MongoDB仍然值得一提,因为它们提供了数据库即服务产品,称为MongoDB Atlas。MongoDB是免费且开源的,由GNU Affero通用公共许可证发布。它在存储数据方面非常灵活,类似JSON的文档,这意味着该字段在文档和文档之间是可变的,并且数据结构将随着时间而改变。

转到MongoDB Atlas,正如我所说,他们的DBaaS工具。它具有一些强大的功能,例如能够进行自动化操作,这意味着你将能够在几分钟内创建和部署集群,并确保集群的停机时间为零。基于角色的访问控制可以保护你的数据。它也被加密并且网络被隔离。身份验证只是提供的另一部分保护。

MongoDB Atlas的另一个强大功能是,只需按下一个按钮,就可以轻松扩展或伸缩。你还可以在多个地区部署集群,以获得更好的读取和保证。这些集群是地理分布的,它们可以自我修复,并且具有出色的容错性。MongoDB Atlas附带的连续备份解决方案具有可查询的时间点恢复和快照选项。查找任何细节都非常舒适,并且视图性能是实时的。你可以自定义警报,优化的仪表板突出显示关键的历史指标。

相关推荐