首页 存档 技术 查看内容

微软发大招了!DocumentDB 直接兼容 MongoDB ,无需改代码即可迁移

2018-3-30 13:00 |来自: 互联网 326 0

摘要: 首先,安全是我们的优先事项。 从代码开发到事件响应,微软将安全视作每个步骤的优先事项。Azure代码开发严格遵循微软的安全开发生命周期(SDL)——这套软件开发方法可以帮助全体开发人员构建更安全的软件,满足安 ...

首先,安全是我们的优先事项。

从代码开发到事件响应,微软将安全视作每个步骤的优先事项。Azure代码开发严格遵循微软的安全开发生命周期(SDL)——这套软件开发方法可以帮助全体开发人员构建更安全的软件,满足安全合规方面的需求,同时降低开发成本。Azure安全中心(Azure Security Center)将Azure作为唯一持续性监测安全健康状况的公共云平台。Azure无所不在,遍布全球,覆盖近40个地理区域,还在不断扩大版图。由于覆盖全球,Azure提供的差异化功能之一就是,能够轻松地构建、部署和管理全球分布的、安全的数据驱动型应用程序。


Azure DocumentDB是微软的一种采用多租户模式、全球分布的数据库系统,旨在让开发人员能够构建全球规模(planet scale)的应用程序。DocumentDB让你可以跨众多的地理区域,灵活地扩展吞吐量和存储资源。该服务提供P99级别的保证低延迟:99.99%高可用性、稳定的吞吐量以及多种明确定义的一致性模型,它们都得到全面的企业服务级别协议(SLA)的支持。由于与模式无关的、针对写入操作优化的数据库引擎,DocumentDB在默认情况下就能够为它获取的所有数据编制索引,并且以一种与规模无关的方式,处理整合SQL、MongoDB和JavaScrip等语言的查询。


DocumentDB本身内置了许多强大的安全功能/特性。为了保护存储在Azure DocumentDB数据库帐户中的数据,DocumentDB提供了这个功能:支持一种基于密钥(secret-based)的授权模式,而该模式使用了一种强大的基于哈希的报文鉴别码(HMAC)。除了基于密钥的授权模式外,DocumentDB还支持策略驱动的、基于IP的访问控制机制,从而实现入站防火墙支持。这种模式非常类似传统数据库系统的防火墙规则,为DocumentDB数据库帐户提供了一道额外的安全性。有了这种模式,现在你可以配置DocumentDB数据库帐户,以便只可以从一组事先批准的机器及/或云服务来访问。一旦实施了这种配置,从该许可列表之外的机器发出的所有请求将一律被服务器拒绝。从这些事先批准的机器和服务访问DocumentDB资源仍需要访问者出示有效的授权令牌(authorization token)。DocumentDB中集群里面的所有通信(比如复制流量)使用SSL。从Mongo(或其他任何客户端)到DocumentDB服务的通信始终使用SSL。若想进一步了解保护针对DocumentDB中数据的访问,请参阅《保护针对DocumentDB数据的访问》(https://docs.microsoft.com/en-us/azure/documentdb/documentdb-secure-access-to-data)。


下表把目前的DocumentDB功能特性与MongoDB所推荐的安全核对表中的核对项目逐一对应。

核对表项目

状态

启用访问控制和执行验证

默认情况下已被启用。

验证前,只有像IsMaster/GetLastError/WhatsMyUri这些发现/验证命令得到支持。

配置基于角色的访问控制

每个数据库帐户都有自己的密钥。

支持只读(ReadOnly)密钥,以限制访问。

没有默认的用户/帐户。

加密通信

我们不允许非SSL通信——与服务之间的所有通信始终通过SSL来进行。

DocumentDB需要TLS1.2,TLS1.2比TLS1和SSL3来得安全。

加密和保护数据

静态加密

限制网络暴露

IP过滤

审计系统活动

我们审计所有API和所有系统活动,打算很快将该功能

提供给使用Portal的客户(现在客户若有要求,我们已经在提供给他们)。

使用专用用户运行MongoDB

DocumentDB是一种采用多租户模式的服务,所以任何帐户都无法直接访问核心的操作系统资源。

使用安全配置选项运行

MongoDB

DocumentDB只支持MongoDB Wire协议,并不启用HTTP

/JSONP端点。



DocumentDB提供的功能并不仅限于“单一站点”数据库提供的传统地理灾难恢复(Geo-DR)具有的功能。提供Geo-DR功能的单一站点数据库是全球分布式数据库的严格子集。由于DocumentDB的交钥匙全球分布(turnkey global distribution),开发人员没必要通过针对数据库日志采用Lambda模式(比如AWS DynamoDB复制),或者跨多个地区执行“两次写”(double write),构建自己的复制脚手架(scaffolding)。我们之所以不建议采用这些方法,是因为不可能确保这种方法的正确性,不可能提供可靠的SLA。


DocumentDB让你能够拥有基于策略的地理围栏(geo-fencing)功能。地理围栏是一项重要的功能,确保了数据治理和合规方面的限制,还可以防止将某个特定的地区与你的帐户关联起来。地理围栏的例子包括(但不仅限于):将全球分布的范围限定在主权云(sovereign cloud)里面的地区(比如中国和德国),或者是政府税收体系里面的地区(比如澳大利亚)。策略是使用你订购的Azure的元数据来加以控制的。


至于故障切换方面,你可以指定:如果发生跨多个地区的故障,地区故障切换按明确的顺序执行,可以将优先级和与数据库帐户有关的各个地区联系起来。DocumentDB将确保故障切换按照你指定的优先顺序自动执行。


我们还致力于静态加密和传输中加密。客户能够加密DocumentDB中的数据,符合保护机密性和数据完整性的最佳实践。这方面敬请关注。


其次,你没必要重写应用程序


改用DocumentDB不需要你重写应用程序,或者扔掉现有的工具。DocumentDB在协议方面支持MongoDB,这意味着DocumentDB数据库现在可以用作为MongoDB编写的应用程序的数据存储区(data store)。这还意味着,如果使用MongoDB数据库的现有驱动程序,你为MongoDB编写的应用程序现在可以与DocumentDB进行联系,可以使用DocumentDB数据库,而不是MongoDB数据库。在许多情况下,你只要改变一个连接字符串,就可以由使用MongoDB换为使用DocumentDB。使用这项功能,你可以在Azure云端轻松构建和运行MongoDB数据库应用程序——充分利用DocumentDB的全面管理、可扩展的NoSQL数据库,同时继续使用MongoDB方面熟悉的技能和工具。此外,我们针对Mongo仅仅支持SSL(而不是支持http),这对所有用户都有好处。你立马可以获得、从别处无法获得的其他好处包括如下:


  • 无需服务器管理——DocumentDB是一项全面管理的服务,这意味着你没必要自行管理任何基础设施或虚拟机。DocumentDB还出现在所有的Azure地理区域(AzureRegion)中,那样你的数据能做到立即全球可用。

  • 无限制的规模——你可以独自扩展吞吐量和存储资源,这种扩展还具有弹性。你可以轻松添加容量,处理每秒数百万个请求。

  • 企业级——DocumentDB支持多个本地副本,那样一旦遇到本地故障和地区故障,可提供99.99%可用性和数据保护。你自动获得企业级合规认证和安全功能。

  • 与MongoDB兼容——DocumentDB在协议方面支持MongoDB,旨在确保与MongoDB兼容。你可以使用现有的代码、应用程序、驱动程序和工具,与DocumentDB协同运行。



第三,我们这么做出于钟爱……


现代开发人员依赖众多不同的技术来构建应用程序,依赖的技术在不断增多。这些应用程序常常是关键任务型,需要最佳的工具和技术,不管是哪家供应商。这就是为什么我们在努力找到优雅、创意、简单的方法,让我们的客户能够使用任何一种模型,任何一种语言(比如Node.js、Java、Python、JavaScript、.NET、.NET core或SQL),针对DocumentDB构建任何应用程序。这就是为什么有成千上万的应用程序是在DocumentDB的基础上构建的,应用于从物联网、广告、营销、电子商务、客户支持、游戏到电网监测的各个领域。我们全心全意致力于让你们在DocumentDB上的使用体验异常出色!我们提供的一种平台可以把每个部分结合成一个整体,从而简化构建全球规模的分布式应用程序这个过程。我们苦苦思索什么才是为开发人员提供最佳体验的最佳方法,确保我们的服务与Azure中的其他所有服务无缝地协同运行,比如Azure Search、Azure Stream Analytics、Power BI、Azure HDInsight及更多服务。我们力求几乎立即对你们在网上提出的关于DocumentDB的每次询问都做出满意的回应。对于我们来说,这是份内事,这就是我们一贯的服务方式。



欢迎亲临全球规模NoSQL掀起的革命!


我们为你们将帮助我们定义NoSQL产品(决定添加哪些功能、支持哪些API以及如何整合其他产品和服务),从而让我们的服务变得更完善而感到激动。DocumentDB支撑众多行业:银行及资本市场、专业服务及离散型生产企业、初创公司以及医疗保健解决方案。它用于全球的每个地方,我们刚开始上路。我们开发了客户和开发人员都非常钟爱的系统,这也是我们引以为豪的系统!促使成千上万开发人员涌向Azure DocumentDB的革命刚开始拉开帷幕,推动这场革命的是极其深层的力量,而绝不仅仅是我们产品的功能特性。构建一种便于对开发人员构建现代应用程序的方式大幅改进的产品,就需要深思熟虑、高超技术以及同情开发人员以及他们所经历的事情。我们深知这点,因为我们自己就是开发人员。


我们希望让开发人员能够通过他们开发的应用程序,真正改变我们所置身的这个世界,这比我们添加到DocumentDB的一项项功能特性来得更重要。开发应用程序很难,而开发具有这种特点的全球规模分布式应用程序更是难上加难:快速、可扩展、弹性、始终可用,又很简单。不过,这是在现代世界吸引全球所有人的一个基本前提。我们每天花大量的时间与客户交流,适时地改动调整DocumentDB,让体验真正很出色很流畅。建立在DocumentDB基础上的应用程序具有的敏捷性、高性能和成本效益绝非偶然。每一个很小的细节都有很大的影响。


那么,接下来你应该采取什么步骤?下面是我们想到的几个步骤:


  • 首先,参阅《创建协议方面支持MongoDB的DocumentDB帐户》教程(https://docs.microsoft.com/en-us/azure/documentdb/documentdb-create-mongodb-account),创建一个DocumentDB帐户。

  • 其次,阅读《连接到协议方面支持MongoDB的DocumentDB帐户》教程(https://docs.microsoft.com/en-us/azure/documentdb/documentdb-connect-mongodb-account),了解如何获得帐户连接字符串信息。

  • 之后,参阅《使用MongoChef,连接到协议方面支持MongoDB的DocumentDB帐户》教程(https://docs.microsoft.com/en-us/azure/documentdb/documentdb-mongodb-mongochef),了解如何使用MongoChef,在你的DocumentDB数据库与MongoDB应用程序之间建立连接。


要是你觉得受到鼓舞(你会受到鼓舞的!),不妨探究协议方面支持MongoDB的DocumentDB示例(https://docs.microsoft.com/en-us/azure/documentdb/documentdb-mongodb-samples)。



云头条编译|未经授权谢绝转载


相关阅读:

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部