微软公司将针对下一代应用程序通过新的迁移功能、开源支持以及全球化可扩展数据库来升级其云数据库服务。
微软已经开始实施其下一代云数据库服务的战略,这个战略的主要目标旨在更广泛地将Azure推广至更多类型的工作负载和位置。
但是需要质疑的是,本周在微软Build开发者大会上推出的***云服务——微软Azure Cosmos DB是一个完全托管的NoSQL云数据库服务,它可在Azure全球区域范围内横向地扩展吞吐量和存储空间。这个服务主要以下一代应用程序为目标,例如主要依赖于物联网(IoT)和人工智能的移动应用程序或工作负载,而这正是微软公司针对其他主要公共云厂商进入这一领域的响应,即亚马逊Aurora和谷歌云Spanner。
这些数据库服务并不适用于对公共云的扩展与迁移方法,而是适于具有巨大横向规模需求的较新应用程序,最终用户越来越需要与客户实现全球性的连接。很多企业可能不需要这些类型的产品,但显而易见,在传统企业中有公司需要更好地使用公共云。而诸如微软和谷歌这样的厂商就可以实现这类能够在全球范围内解决他们自己问题的内部工具的产品化。
Cosmos DB是云如何重新打造数据库市场的***佐证,总部位于英国伦敦Ovum的分析师Tony Baer说。
“由于云具有弹性原理、廉价的存储以及可跨多个区域进行复制的功能,这意味着用户可以再看一下建立数据库的接受原则,”他说。“你基本上就可以抛开规则手册并重新开始。”
专为写操作进行优化的 Cosmos DB提供了个位数毫秒的延迟并确保一致性和高可用性符合SLA。客户们可以通过简单点击操作增加或删除区域、复制无论在何处的用户数据,并使用单个API调用在每一秒钟内处理数以亿计的请求。客户只需为所使用的存储资源和吞吐量支付费用,只需简单点击操作就可增加或删除区域 。
这里没有模式或索引管理,而Cosmos DB旨在支持几乎所有的数据模式,其中包括图表、键值和文档等模式。它还提供了五个可供从中选择的一致性模式:强一致性、最终一致性、限制陈旧一致性、会话一致性以及前缀一致性。
每一家厂商的下一代数据库都有着其各自的优缺点,而Cloud Spanner被认为在一致性方面是超前的,特别是因为它遵循了关系型数据库模式的事实标准。尽管如此,虽然非关系型更倾向于破坏一致性和结构,但Cosmos DB是厂商为能够克服这些限制所作出的***努力。
“我们开始看到一些诸如Cosmos DB这样的用例,它宣称他们支持ACID的遵从性(原子性、一致性、隔离性以及耐用性)和强大一致性,”Gartner公司的研究总监 Adam Ronthal说。“它扩展了用户案例的类型,用户可以使用新的编程范例和新的API以更适合开发人员的方式来考虑这些问题。”
Cosmos DB来源于DocumentDB 并比后者更通用,它可能更适用于依靠图形数据来确定节点和对象是如何相关的应用,例如社交网络, Ronthal说。云数据库服务可能不太适合金融交易或分析等应用,但是它能够作为一个稳健运行的数据库,Baer说。尽管如此,微软公司似乎也通过这一全球化的方法投入了广泛的网络,这种方法提供了许多方法来进行配置以实现一致性。
Cosmos DB并不是微软公司在推出的唯一一个数据库新闻。Azure 数据库迁移服务(目前为受限制的预览版)可自动化完成内部部署数据库至Azure的评估、模式转换和数据传输。这项数据库迁移服务可用于SQL Server、Oracle和MySQL数据库,并以Azure虚拟机中的SQL Database、Azure SQL Database Managed Instance或Microsoft SQL Server为目标。
推出的另外两个托管数据库服务是Azure Database for MySQL和Azure Database for PostgreSQL,它们都是微软公司正试图赶上竞争对手的产物,这也重申了微软转而采用开源的态度。MySQL 和PostgreSQL 都是流行的开源数据库选项,但是PostgreSQL支持是最接近Oracle数据库的事物。亚马逊网络服务在去年也增加了类似的功能,而甲骨文公司则通过对在AWS和Azure上运行其数据库进行加价来做出响应,因为它试图让更多的客户使用它的重构公共云。
但是,Ronthal表示了怀疑,他认为这样的迁移服务是否能够解决在不同数据库之间进行迁移的三个主要方面:模式转换、数据迁移与应用程序转换。
“正如微软公司之前公布的那样,大多数迁出亚马逊的数据迁移事实上只是在任何有意义的方面擅于跟风呢,”Ronthal说。“你仍然有大量的工作要做,需要重写应用程序并让新的应用程序能够在新平台上正常运行。”
使用Azure扩展物联网和无服务器
微软公司还推出了一些其他的服务,以支持Azure并模糊其公共云与更广泛范围之间的界限。其中所包括的Azure IoT Edge扩展了公共云直接连接物联网设备的一些功能,然后在Azure中编写的代码将扩展至周边设备。它还可与Azure机器学习、Azure Stream Analytics、Azure Functions、Azure 物联网集线器和微软Cognitive Service集成。
年在大会上推出的Azure Functions功能也在本周有所扩展。在这些更新中,Azure Functions可扩展至 Visual Studio 2017 和Azure Functions Runtime,这是在内部部署中使用该服务的另一种方法。