在将数据库环境迁移到云之前,你应该首先考虑一些注意事项。云具有吹捧的一些优点的同时,也带来了一些风险和负面影响。让我们来看看其中一些事项。
首先,要考虑你是否会被供应商锁定。很多人选择开源数据库就是为了避免这一点。然而,有趣的事实是,实际上你可能在毫无意识的情况下被锁定。许多云供应商都有自己的数据库平台版本,例如MySQL、PostgreSQL、MongoDB 等。这些版本可能正在使用经过对这些数据库系统精心设计的版本。
虽然将数据迁移到云环境中通常很容易,但通常要修改应用程序以适应这些数据库平台的独特方面。在某些情况下,这可能会利用添加的特殊功能,而其他时候它甚至可以通过额外的开发来处理缺乏功能。之所以会发生这些,是因为云版本通常可能基于较旧的代码库,这些代码库可能不包含DBMS的所有最新功能集。这使得从云端迁移更具挑战性,因为它可能需要更改代码。从这个意义上说,你可能会被锁定在特定的云数据库中,甚至没有意识到这一点。
此外,如果需要重新设计应用程序以使用云平台,请考虑额外的时间和资源成本。它可能不像简单地迁移那么简单。相反,你将需要进行广泛的测试,并可能重写代码以使其一切正常工作。许多人迁移到云的一个常见原因是为了节省成本。由于不需要太多的基础设施、员工等,一些云提供商强调节省了50% 或更多。这当然是可能的,但成本也可能会增加。通过轻松创建和配置新服务器,可以轻松快速地启动更多实例。当然,这些实例中的每一个都会增加你的成本。如果没有适当的监督和管理支出的人,每月的账单可能会很快引起冲击!
除了纯粹的服务器实例数量之外,存储和网络是很容易增加成本的领域。尽管现在存储成本相对便宜,但想想当团队设置额外的测试服务器并留下大量备份和数据集时会发生什么。而且,当然,你还必须支付网络成本,因为这些大型数据集从服务器传输到服务器。曾经在你的本地数据中心中基本上“免费”的服务器互连网络现在正在产生成本。网络成本增长很快的。
此外,由于“便宜”的存储成本,归档变得不再那么被关注。这是一把真正的双刃剑,因为当数据集未正确归档时,不仅成本会增加,而且性能也会下降。数据库通常会在查询这些庞大的数据集时失去性能,并且更新索引的额外时间会对性能产生负面影响。
另外,考虑控制权力失去的问题。在你的本地数据库中,可以完全控制数据。安全完全是你的责任。毫无疑问,云提供商已经围绕安全控制构建了他们的系统,这可能是一个巨大的优势。你必须要考虑到的是,你真的不知道谁在管理存储数据的系统。你失去了对人性方面的洞察力,这是不容忽视的。
此外,如果你的应用程序组件将位于另一个云中或将保留在本地,你必须考虑网络延迟对应用程序的影响。不同的组件不再位于同一个数据中心。它们可能在地理上分散在全球各地。同样,这可能是一个好处,但它也带来了性能成本。
你还需要考虑是否需要对员工进行再培训。当然,今天大多数人都熟悉云,但几乎可以肯定的是,你将有一些不支持你管理服务器方式的改变。毫无疑问,他们的日常工作方式将会改变。如果做得好,这种转变可以证明是有益的,因为它允许你的DBA 更多地关注数据库性能,而不是设置和配置服务器、管理备份、监控等。
迁移到云现在风靡一时,本文当然不是要劝阻您这样做。相反,我们的想法是在采取行动之前考虑一些后果,以确定它是否真的符合你的最大利益并帮助你避免一些陷阱。