在当今技术领域,无服务器架构逐渐成为热门话题。2017年,许多会议和聚会都专注于讨论无服务器架构的优势和挑战。那么,无服务器架构究竟是什么?像许多新技术概念一样,这个问题并没有一个简单的答案。
在定义无服务器是什么之前,先来定义它不是什么,以避免这个术语本身可能引起的混淆。这个术语并不意味着没有服务器,而是指物理和虚拟基础设施对开发者是隐藏的。这意味着开发者基本上使用第三方来处理基础设施问题。开发者期望第三方能够为其应用程序或功能(稍后会有更多介绍)提供必要的资源,以适当的方式执行。
到目前为止,社区已经达成共识,当某个应用程序是无服务器时,它使用以下两种概念之一:
这些概念正在融合。例如,一些最初作为BaaS的解决方案最终变成了FaaS(如Auth0)。此外,BaaS解决方案通常在其架构中集成了FaaS,因为需要创建自定义后端功能。
无服务器架构推动了后端架构的进一步细分。就像微服务将大型单体服务分解为具有特定目的的较小服务一样,无服务器架构的目标是将微服务进一步分解为更小的单元。例如,让看看为前一篇文章提供的解决方案。使用了一个名为“blog”的数据库,其中有一个名为“user”的集合。这个集合包含了每个用户的文档。在这个解决方案中,后端充当了某种服务,为应用程序的前端部分提供了CRUD操作。
无服务器架构将推动将所有这些CRUD功能分离成更细粒度的部分,具有定义的功能。这些功能仍然会暴露API,但将在更小的“服务”中执行。
MongoDB Atlas基本上是MongoDB对这一新兴世界的回应。本质上,它是数据库即服务(DaaS),即托管在云上的MongoDB。总的来说,开发者不再需要管理数据库,也不需要拥有一个操作和分布式数据库集群。此外,这种方式可以在无服务器架构中使用所有MongoDB功能。
在MongoDB Atlas之旅的第一步是在MongoDB云服务上创建一个帐户。一旦这样做,集群创建对话框将自动打开。
在这个过程中,非常受启发,所以将第一个集群命名为“FirstCluster”。由于MongoDB的团队很酷,给了一些免费优惠券,在法兰克福的一台服务器上创建了集群,每小时0.09美元。如果想要测试MongoDB Atlas,有一个免费选项,可以创建一个免费层集群。每个Atlas项目只能部署一个免费层集群。
之后,必须设置集群的节点数量。如果想了解更多关于集群、节点和配置MongoDB的信息,请查看。
最后,要完全部署第一个Atlas集群,必须选择用于管理目的的用户名和密码,然后点击“部署”。瞧,Atlas集群就创建好了:
接下来可能想要做的是连接到新创建的集群。有多种方式可以连接到这个集群,从Mongo Shell或从代码。在这个例子中,将展示如何使用Mongo Shell连接到Atlas集群。在继续之前,有一些任务需要提前完成。第一个任务当然是在计算机上安装Mongo。可以阅读如何做到这一点。
第二个任务是将IP地址添加到集群的白名单。这是通过点击“添加当前IP地址”来完成的。如果想从不同的机器连接到集群,可以点击“添加条目”并输入那台机器的IP。一旦这个问题解决了,点击“使用Mongo Shell连接”。在那里,将获得用于从shell连接的连接字符串。
如果对如何连接到MongoDB服务器有疑问,请查看。需要注意的一点是,必须输入设置集群时创建的密码。以下是是如何做到的:
$ mongo --host "your_connection_string" --username "your_username" --password "your_password"
一旦这样做了,就能像以前一样做任何事情,比如创建数据库、使用它、添加集合,最后向该集合添加文档。