5.1 云原生系统的数据库
数据可以以多种方式存储。传统上,您可能会使用一台大型数据库服务器来保存尽可能多的数据,因为获取一台新服务器既昂贵又耗时。根据您组织的流程,这样的任务可能需要几天到几个月的时间。但在云中不是这样。
云提供了弹性、自助服务和按需配置功能——这些是将数据服务迁移到云中的强大动力。对于您设计的每个云原生应用程序,您应该考虑最适合其产生的数据的存储类型。然后,您的云平台应该允许您通过 API 或图形用户界面来配置它。曾经非常耗时的任务现在只需要几分钟。例如,在 Azure 上部署 PostgreSQL 数据库服务器实例就像运行 az postgres server create 命令一样简单。
云原生应用程序被设计为无状态,这是由云本身的性质决定的。这是一种动态基础设施,计算节点可以分布在不同的集群、地理区域和云中。应用程序存储状态的问题是显而易见的。状态如何能在如此分布式和动态的环境中存活?这就是我们希望保持应用程序无状态的原因。
然而,我们需要在云中实现有状态。本节将介绍云中数据服务和持久化管理的挑战,并根据您是想自己管理数据服务还是依赖云厂商的服务来描述您的选择。然后,我将引导您为本地环境设置一个作为容器运行的 PostgreSQL 数据库实例。