了解托管数据库

开发托管数据库是为了减少通常与数据库管理相关的痛点。这篇概念性文章概述了托管数据库是什么,它们如何对开发团队有益,以及在构建应用程序之前应该做出的一些实际考虑。

介绍

安全可靠的数据存储是几乎所有现代应用的必备条件。 但是,对于许多团队而言,自我管理的本地数据库所需的基础架构可能非常昂贵。 同样,拥有有效维护生产数据库所需技能和经验的员工也很难获得。

云计算服务的普及降低了与配置数据库相关的入门门槛,但许多开发人员仍缺乏管理和调整数据库以满足其需求所需的时间或专业知识。 出于这个原因,许多企业正在转向托管数据库服务,以帮助他们根据增长情况构建和扩展数据库。

在这篇概念性文章中,我们将介绍托管数据库是什么以及它们如何对许多组织有益。 我们还将介绍在托管数据库解决方案之上构建下一个应用程序之前应该做出的一些实际考虑。

坚果壳中的托管数据库

托管数据库是云计算服务,其中最终用户向云服务提供商付费以访问数据库。 与典型的数据库不同,用户不必自己设置或维护托管数据库; 相反,提供商有责任监督数据库的基础设施。 这允许用户专注于构建他们的应用程序,而不是花时间配置他们的数据库并使其保持最新。

供应托管数据库的过程因提供商而异,但通常与任何其他基于云的服务类似。 注册帐户并登录仪表板后,用户将查看可用的数据库选项(例如数据库引擎和群集大小),然后选择适合他们的设置。 在配置托管数据库之后,您可以通过GUI或客户端连接到该数据库,然后可以开始加载数据并将数据库与您的应用程序集成。

托管数据解决方案简化了配置和维护数据库的过程。 您只需在浏览器中点击几下即可部署生产就绪数据库,而无需从终端运行命令来安装和设置命令。 通过简化和自动化数据库管理,云提供商可以让任何人(甚至是新手数据库用户)更轻松地构建数据驱动的应用程序和网站。 这是数十年来简化,自动化和抽象各种数据库管理任务的趋势的结果,这本身就是对数据库管理员长期以来感受到的痛点的回应。

内部部署和自我管理数据库的痛点

在云计算模型兴起之前,任何需要数据中心的组织都必须提供设置一个的所有时间,空间和资源。 一旦他们的数据库启动并运行,他们还必须维护硬件,保持软件更新,雇用团队来管理数据库,并培训员工如何使用它。

随着云计算服务在2000年代日益普及,配置服务器基础架构变得更容易,也更便宜,因为它所需的硬件和空间不再需要由使用它的人拥有或管理。 同样,完全在云中建立数据库变得困难得多; 企业或开发人员只需要申请服务器,安装和配置他们选择的数据库管理系统,然后开始存储数据。

虽然云计算确实使设置传统数据库的过程更加容易,但它并没有解决所有问题。 例如,在云中,在开始收集数据之前,仍然很难确定数据库基础设施足迹的理想大小。 这很重要,因为云消费者会根据他们消耗的资源收取费用,如果他们提供的服务器大于必要的价格,他们支付的费用超出了他们的要求。 此外,与传统的本地数据库一样,在云中管理一个数据库可能是一项代价高昂的工作。 根据您的需要,您可能仍需要聘请经验丰富的数据库管理员,或花费大量时间和金钱培训现有员工,以便有效地管理您的数据库。

对于较小的组织和独立开发人员来说,其中许多问题更加复杂。 虽然大型企业通常能够雇用对数据库有深入了解的员工,但较小的团队通常拥有的资源较少,只留下他们现有的机构知识。 这使得复制,迁移和备份等任务变得更加困难和耗时,因为它们可能需要大量的在职学习以及反复试验。

托管数据库有助于解决这些难点,为企业和开发人员带来诸多好处。 让我们来看看它们中的一些好处以及它们如何影响开发团队。

托管数据库的好处

托管数据库服务有助于减少与配置和管理数据库相关的许多麻烦。 首先,开发人员在托管数据库服务之上构建应用程序,以大大加快配置数据库服务器的过程。 使用自我管理的解决方案,您必须获取服务器(在本地或在云中),从客户端或终端连接到服务器,配置和保护它,然后安装和设置数据库管理软件,然后才能开始存储数据。 使用托管数据库,您只需决定数据库服务器的初始大小,配置任何其他特定于提供程序的选项,并且您将准备好与您的应用程序或网站集成的新数据库。 这通常可以通过提供商的用户界面在几分钟内完成。

托管数据库的另一个吸引力是自动化 自我管理的数据库可能会占用大量组织的资源,因为其员工必须手动执行每个管理任务 - 从扩展到执行更新,运行迁移和创建备份。 但是,对于托管数据库,这些和其他任务可以自动或按需完成,这显着降低了人为错误的风险。

这与托管数据库服务有助于简化数据库扩展过程的事实有关。 扩展自我管理的数据库可能非常耗费时间和资源。 无论您选择分片,复制,负载平衡还是其他作为扩展策略,如果您自己管理基础架构,那么您有责任确保流程中没有数据丢失并且应用程序将继续正常运行。 但是,如果将应用程序与托管数据库服务集成,则可以按需扩展数据库集群。 您无需事先计算出最佳服务器大小或CPU使用率,而是可以快速配置更多资源。 这有助于您避免使用不必要的资源,这意味着您也不会为不需要的资源付费。

托管解决方案往往具有内置的高可用性。 在云计算的背景下,如果服务稳定且可能长时间无故障地运行,则称该服务具有高可用性 大多数信誉良好的云提供商的产品都附带服务水平协议(SLA) ,这是提供商与其客户之间的承诺,保证了其服务的可用性和可靠性。 典型的SLA将指定客户应该期望的停机时间,并且许多还定义了如果不满足这些服务级别的客户补偿。 这为客户提供了保证他们的数据库不会崩溃的保证,如果确实如此,他们至少可以期望从提供商处获得某种补偿。

通常,托管数据库简化了与配置和维护数据库相关的任务。 根据提供商的不同,您或您的团队仍可能需要一定程度的数据库使用经验,以便在构建和扩展应用程序时配置数据库并与之交互。 但最终,管理托管数据库所需的特定于数据库的体验将远远低于自我管理的解决方案。

当然,托管数据库无法解决所有问题,对于某些人来说可能被证明是一个不太理想的选择。 接下来,我们将介绍在配置托管数据库之前应考虑的一些潜在缺点。

实际考虑因素

托管数据库服务可以减轻部署和维护数据库的压力,但在提交数据库之前还需要记住一些事项。 回想一下,托管数据库的主要绘制是它们抽象出数据库管理的大多数繁琐方面。 为此,托管数据库提供程序旨在提供满足最常见用例的基本数据库。 因此,他们的数据库产品不会包含大量的自定义选项或更专业的数据库软件中包含的独特功能。 因此,您将没有足够的自由来定制数据库,并且您将受限于云提供商提供的内容。

托管数据库几乎总是比自我管理的数据库更昂贵。 这是有道理的,因为您需要为云提供商付费以支持您管理数据库,但这可能是资源有限的团队关注的一个原因。 此外,托管数据库的定价通常取决于数据库使用的存储量和RAM量,处理的读取量以及用户创建的数据库备份量。 同样,使用托管数据库服务处理大量数据或流量的任何应用程序都比使用自我管理的云数据库更昂贵。

还应该考虑切换到托管数据库对其内部工作流程的影响,以及他们是否能够适应这些变化。 每个提供商都有所不同,并且根据他们的SLA,他们可能只承担一些管理任务的责任,这对于寻求全方位服务解决方案的开发人员来说是个问题。 另一方面,某些提供商可能会受到限制性过高的SLA或使客户完全依赖于相关提供商,这种情况称为供应商锁定

最后,也许最重要的是,应该仔细考虑他们正在考虑使用的任何托管数据库服务是否满足其安全需求。 所有数据库(包括本地数据库)都容易受到某些安全威胁,如SQL注入攻击或数据泄漏。 但是,云中托管的数据库的安全动态差别很大。 托管数据库用户无法控制其数据的物理位置或有权访问它的人,也无法确保符合特定的安全标准。 如果您的客户有更高的安全需求,这可能会特别成问题。

为了说明这一点,假设您被银行雇用来构建一个应用程序,其客户可以访问财务记录并进行付款。 银行可能会规定应用程序必须具有静态数据加密和适当范围的用户权限,并且必须符合某些监管标准,如PCI DSS 并非所有托管数据库提供商都遵守相同的监管标准或维护相同的安全实践,并且他们不太可能仅针对其中一个客户采用新标准或实践。 因此,确保您依赖此类应用程序的任何托管数据库提供程序能够满足您的安全需求以及客户的需求至关重要。

结论

托管数据库具有许多吸引各种业务和开发人员的功能,但托管数据库可能无法解决所有问题或满足每个人的需求。 有些人可能会发现托管数据库的有限功能集和配置选项,增加的成本以及降低的灵活性超过了它的任何潜在优势。 但是,易用性,可扩展性,自动备份和升级以及高可用性等令人信服的好处使得各种行业中托管数据库解决方案的使用率得以提高。

如果您有兴趣了解有关DigitalOcean托管数据库的更多信息,我们建议您查看我们的托管数据库产品文档


分享按钮