白癜风治疗目标 https://m.39.net/disease/a_6195089.html阅读本文你可以了解到多个知名的“无服务器”数据库产品以及它们的优缺点。初识无服务器架构无服务器架构是云计算的一种运行模型,其含义是由云服务商动态地管理计算资源的分布。我们宝贵的计算资源的消费者本质上讲是函数执行。如果你用基于函数运行所消耗的内存和执行时间(四舍五入到ms为单位)来计费,AWS和Azure会带来极大的成本开销。AWSLambda当前的价格是0./GB-秒,而Azurefunction是0./GB-秒。了解这些数据之后你就可以预估成本上升的的速度。因为分配的内存量是可以在MB-1.5GB之间可配置的,函数执行的具体花费会根据你配置的不同而不同。每ms执行时间的开销其最大配置可能是基本配置(MB)的12倍多。无服务器计算(serverless)仍然是需要服务器的,这也是无服务器数据库的切入点。先了解自身的需求无疑会让你更加容易地选择合适的数据库服务,也更加容易地使用当今最先进的技术方案。各种无服务器数据库市面上已经有了多个知名的数据库服务,比如AzureDataLake。(Azure是微软的公有云服务)GoogleCloudStore**GoogleCloudStore**是一个面向文档的数据库方案,作为一个独立服务给GoogleAppEngine提供数据库组件。Google还提供有一个Firebase服务,这项服务提供给客户两种支付方式:固定付费或者按量付费。而且Firebase也包含有一个层次化的数据库。FaunaDB**FaunaDB**是全球分布式的最大的事务性数据库服务。它的技术是基于twitter。AmazonAuroraServerlessAmazonAuroraServerless在年的最后一个季度发布了技术预览版。它有两个不同版本分别与MySQL和PostgreSQL兼容,但是它也与其他的知名数据库系统兼容,比如MariaDB,Oracle等。AmazonAuroraserverlessdatabase是完全云端管理并可以自动扩展到64T的数据库存储。DynamoDBAmazon还提供了另一个服务,DynamoDB,是一个完全云端管理的数据库服务。它可以提供可预测的高速的性能且支持无缝扩展。使用DynamoDB创建数据库和表的操作变得相当简单直接,你可以存储和查询任意数量的数据,并且DynamoDB也能服务于任意量级的请求流量。MongoDBMongoDB虽然不是一个无服务器数据库,但是我们还是要提一下,因为它也有一个数据库即服务(DatabaseasaService)的产品,名字叫MongoDBAtlas。MongoDB是免费开源的,发行许可证是GNUAfferoGeneralPublicLicense。MongoDB在存储数据(JSON这样的文档数据)方面非常灵活,这样它每个文档的列都是不同的,而且数据结构也会随时间而变化。我继续回来说MongoDBAtlas,它是一个DBaaS工具。它有很多特别强大的功能,比如自动化运维,你可以在几分钟内创建和部署集群并且保证你的集群宕机时间为0。它也提供基于角色的访问控制来对你的数据做保护。同时支持加密和网络隔离,当然还有认证服务。MongoDBAtlas的另一个强大功能是它简化了垂直扩展和水平扩展操作,支持一键触发。你也可以跨多个区region来部署集群来提供更好的读性能和数据保证。这些集群是地理上分布式的,支持自愈,并且有优秀的容错性。MongoDBAtlas的持续性备份提供了基于时间点恢复和快照(可查询)的能力。搜索任何细节都十分轻松而且查看的性能是实时的。你可以自定义报警,优化的面板会突出显示关键的历史度量值。使用服务器数据库的优势成本效率采购一定数量的服务器会在很长时间内资源得不到充分利用,算起来比使用无服务器数据库更昂贵。除了省钱之外,部署一套自动扩展组也会跟有效率,因为对计算机资源的装箱优化更加高效。最直接的成本优势包括没有操作系统的成本(许可证,安装,维护,支持,修复补丁)。通常的描述会被理解为一种按使用量付费的计算模式,因为你只会为你代码执行时所使用的内存和时间付费。运维,可扩展性和产出无服务器架构意味着开发人员和运维人员不用再搭建环境,调优自动化扩展策略或者系统而节省时间。是云服务提供商为我们根据需求来无缝地扩展容量。小的开发者团队可以独立的运行代码,而不需要另外找基础设施的运维支持团队。更多的开发人员会掌握DevOps,这样一个传统的软件工程师与一个DevOps工程师现在也没啥区别了。无服务器数据库的缺点性能和资源限制采用无服务器的数据库常常会导致数据库遭受比传统的独立数据库多得多的响应延迟,这里传统数据库是表示一个专用数据库服务器,或者虚拟机,或者容器。这背后的原因是如果你的无服务器数据库没被使用的话,云服务提供商会把库给“停掉”,这样如果此时程序运行时需要一定的时间来启动的话,这会带来非常多的延时。无服务器计算对类似于高性能计算这样的负载是不合适的。这个限制的原因一方面来自于云服务提供商,他们对资源使用做了限制;另一个原因是,你在某个特定的时期按照实际需求来批量部署服务器可能更加的划算。监控和调试相比传统的数据库结构,诊断无服务器架构下的性能问题或者资源超量使用问题变得异常的困难。尽管完整的函数可以被计时,但是我们没办法对它使用探针,调试器或者其他AMP工具下钻得到更多细节。我们必须清楚无服务器架构的运行环境通常不是开源的,这也意味着我们很难在本地环境来精确的复现其性能。幸运的是,市面上已经有一些不错的无服务器监控工具供你使用了。安全无服务器数据库有时会被错误地认为比传统服务器更加安全。在某个程度上是对的,因为云服务提供商会负责OS级别的漏洞。但是攻击量也会高一些因为对比传统的架构他们用的组件要多得多,每个元素都是无服务器应用的一个入口。客户用来保护他们云端负载的安全手段就变得不那么重要了因为他们在endpoint和网络层(比如IDS/IPS的控制和部署)上不能做任何事。原文连接:
转载请注明:http://www.aierlanlan.com/cyrz/8195.html