了解托管数据库
介绍
安全可靠的数据存储几乎是所有现代应用程序的必备条件。然而,对于许多团队而言,自主管理的本地数据库所需的基础设施成本高昂。同样,拥有有效维护生产数据库所需技能和经验的员工也难以找到。
云计算服务的普及降低了配置数据库的门槛,但许多开发人员仍然缺乏管理和调优数据库所需的时间或专业知识。因此,许多企业开始转向托管数据库服务,以帮助他们根据业务增长构建和扩展数据库。
在这篇概念性文章中,我们将介绍什么是托管数据库,以及它们如何为众多组织带来益处。我们还将介绍在托管数据库解决方案上构建下一个应用程序之前应该考虑的一些实际事项。
托管数据库简介
托管数据库是一种云计算服务,最终用户需要向云服务提供商付费才能访问数据库。与传统数据库不同,用户无需自行设置或维护托管数据库;相反,托管数据库的基础架构由提供商负责监管。这使得用户可以专注于构建应用程序,而无需花费时间配置数据库并保持其更新。
配置托管数据库的流程因提供商而异,但总体而言与其他云服务类似。注册帐户并登录仪表板后,用户将查看可用的数据库选项(例如数据库引擎和集群大小),然后选择适合自己的设置。配置托管数据库后,您可以通过 GUI 或客户端连接到该数据库,然后开始加载数据并将数据库与应用程序集成。
托管数据解决方案简化了数据库的配置和维护流程。您无需在终端运行命令来安装和设置数据库,只需在浏览器中单击几下即可部署一个可用于生产的数据库。通过简化和自动化数据库管理,云提供商让任何人(即使是数据库新手)都能更轻松地构建数据驱动的应用程序和网站。这是数十年来简化、自动化和抽象各种数据库管理任务趋势的结果,而这本身就是对数据库管理员长期以来所面临的痛点的回应。
本地和自主管理数据库的痛点
在云计算模式兴起之前,任何需要数据中心的组织都必须提供建立数据中心所需的所有时间、空间和资源。数据库启动并运行后,他们还必须维护硬件、保持软件更新、聘请团队管理数据库,并培训员工使用数据库。
随着云计算服务在 21 世纪初的日益普及,配置服务器基础设施变得更加容易且经济实惠,因为所需的硬件和空间不再需要由用户拥有或管理。同样,在云端完全搭建数据库也变得轻松许多;企业或开发人员只需申请服务器,安装并配置所选的数据库管理系统,然后就可以开始存储数据了。
虽然云计算确实简化了传统数据库的搭建过程,但它并未解决所有问题。例如,在云中,在数据库开始收集数据之前,仍然很难确定其基础设施占用空间的理想大小。这一点至关重要,因为云用户是根据其消耗的资源来付费的,如果他们配置的服务器规模超出实际需要,他们就有可能支付超出实际需要的费用。此外,与传统的本地数据库一样,在云中管理数据库可能成本高昂。根据您的需求,您可能仍然需要聘请经验丰富的数据库管理员,或者花费大量时间和金钱来培训现有员工,以有效地管理数据库。
对于规模较小的组织和独立开发者来说,这些问题更加复杂。大型企业通常有能力聘请精通数据库的员工,而规模较小的团队通常资源有限,只能依靠现有的机构知识。这使得复制、迁移和备份等任务更加困难且耗时,因为它们需要大量的在职学习以及反复试验。
托管数据库有助于解决这些痛点,并为企业和开发者带来诸多益处。让我们来了解一下其中一些益处,以及它们将如何影响开发团队。
托管数据库的好处
托管数据库服务可以帮助减少与配置和管理数据库相关的许多麻烦。首先,开发人员可以在托管数据库服务的基础上构建应用程序,从而大幅加快数据库服务器的配置流程。使用自主管理解决方案,您必须获取服务器(本地或云端),从客户端或终端连接到服务器,进行配置和保护,然后安装并设置数据库管理软件,然后才能开始存储数据。使用托管数据库,您只需确定数据库服务器的初始大小,配置任何其他特定于提供商的选项,即可拥有一个可以与您的应用或网站集成的新数据库。这通常只需几分钟即可通过提供商的用户界面完成。
托管数据库的另一个吸引力在于自动化。自主管理数据库会消耗组织大量的资源,因为员工必须手动执行每一项管理任务——从扩展到执行更新、运行迁移以及创建备份。然而,使用托管数据库,这些任务和其他任务都可以自动或按需完成,从而显著降低了人为错误的风险。
这与托管数据库服务有助于简化数据库扩展流程有关。扩展自主管理的数据库可能非常耗时且耗资源。无论您选择分片、复制、负载均衡还是其他扩展策略,如果您自行管理基础架构,则有责任确保在此过程中不会丢失任何数据,并确保应用程序能够持续正常运行。但是,如果您将应用程序与托管数据库服务集成,则可以按需扩展数据库集群。您无需事先计算出最佳的服务器大小或 CPU 使用率,而是可以快速地动态配置更多资源。这有助于您避免使用不必要的资源,这意味着您也不会为不需要的内容付费。
托管解决方案通常内置高可用性。在云计算领域,如果服务稳定且能够长时间无故障运行,则该服务被称为高可用性服务。大多数信誉良好的云提供商的产品都附带服务级别协议 (SLA),这是提供商与其客户之间的承诺,旨在保证其服务的可用性和可靠性。典型的 SLA 会明确客户预期的停机时间,许多 SLA 还会明确如果未达到这些服务级别,客户的赔偿金额。这确保了客户的数据库不会崩溃,即使崩溃,他们至少可以从提供商处获得某种形式的补偿。
一般来说,托管数据库可以简化与配置和维护数据库相关的任务。根据提供商的不同,您或您的团队可能仍然需要一定的数据库使用经验,以便在构建和扩展应用程序时配置数据库并与其交互。不过,最终管理托管数据库所需的数据库特定经验将比自管理解决方案少得多。
当然,托管数据库并非万能,对某些人来说可能并非理想之选。接下来,我们将讨论在配置托管数据库之前应考虑的一些潜在缺点。
实际考虑
托管数据库服务可以减轻部署和维护数据库的压力,但在选择之前仍有一些事项需要注意。回想一下,托管数据库的主要优势在于它们将数据库管理中大部分繁琐的环节抽象化。为此,托管数据库提供商致力于提供能够满足最常见用例的基本数据库。因此,他们的数据库产品不会提供大量的自定义选项或更专业的数据库软件所包含的独特功能。因此,您将无法自由地定制数据库,并且只能使用云提供商提供的服务。
托管数据库几乎总是比自主管理数据库更昂贵。这很合理,因为您需要付费让云提供商为您提供数据库管理支持,但对于资源有限的团队来说,这可能会令人担忧。此外,托管数据库的定价通常取决于数据库使用的存储空间和内存容量、处理的读取次数以及用户创建的数据库备份数量。同样,任何使用托管数据库服务并处理大量数据或流量的应用程序都会比使用自主管理云数据库更昂贵。
还应该反思切换到托管数据库会对其内部工作流程产生的影响,以及他们是否能够适应这些变化。每个提供商的情况各不相同,根据其服务等级协议 (SLA),他们可能只承担部分管理任务,这对于寻求全方位服务解决方案的开发人员来说可能存在问题。另一方面,一些提供商的 SLA 可能过于严格,或者让客户完全依赖于该提供商,这种情况被称为“供应商锁定”。
最后,或许也是最重要的一点,您应该仔细考虑他们正在考虑使用的任何托管数据库服务是否能够满足他们的安全需求。所有数据库,包括本地数据库,都容易受到某些安全威胁,例如 SQL 注入攻击或数据泄露。然而,云托管数据库的安全动态则截然不同。托管数据库用户无法控制其数据的物理位置或谁有权访问数据,也无法确保符合特定的安全标准。如果您的客户有更高的安全需求,这可能会尤其成问题。
举例来说,假设您受雇于一家银行,负责构建一款应用程序,供客户访问财务记录并进行支付。银行可能会规定,该应用程序必须支持静态数据加密和适当范围的用户权限,并且必须符合某些监管标准,例如PCI DSS。并非所有托管数据库提供商都遵守相同的监管标准或维护相同的安全实践,而且他们不太可能只针对某一位客户采用新的标准或实践。因此,务必确保您所依赖的任何托管数据库提供商都能满足您和客户的安全需求。
结论
托管数据库拥有众多吸引各类企业和开发者的功能,但托管数据库可能无法解决所有问题或满足所有人的需求。有些人可能会发现,托管数据库有限的功能集和配置选项、较高的成本以及较低的灵活性抵消了其任何潜在优势。然而,易用性、可扩展性、自动备份和升级以及高可用性等显著优势,已促使各行各业越来越多地采用托管数据库解决方案。
如果您有兴趣了解有关 DigitalOcean 托管数据库的更多信息,我们鼓励您查看我们的托管数据库产品文档。
本作品采用Creative Commons Attribution-NonCommercial-ShareAlike 4.0 国际许可协议进行许可
文章来源:https://dev.to/digitalocean/understanding-management-databases-43a9