本文转载自公众号“读芯术”(ID:AI_Discovery) 共享数据库范式是再无之地一种常见的开发工作流程,即团队中的立锥所有开发人员都共享某一个数据库的访问权限,都使用该数据库来支持应用程序开发。说共式 这一工作流程很简单,享数无需为每个工程师配置基础架构,据库使安装成本降至最低,已成因而人们愿意选择它。过去但由于工程师做出改变的再无之地同时不得不承担着影响其他人工作的风险,它也会给工程师造成痛苦和瓶颈。立锥 Spawn使我们能够轻松进行数据库配置,说共式并使每个工程师都拥有自己专用的享数数据库环境,而无需配置任何额外的据库基础架构。 共享数据库 共享数据库通常包含一个生产数据库的已成副本(适当地被屏蔽以删除敏感数据,并且可能被子集化以缩小其规模),过去该副本由团队中的再无之地所有开发人员共享。共享数据库的好处是管理的基础架构更少,开发人员只需将连接字符串插入共享数据库即可快速启动并运行。 尽管这种设置对一个很小的团队或很少进行数据库更改的团队颇有作用,但它很快会遇到一些问题: 共享数据库模式日益落后,因为容器化使得数据库供应比以往任何时候都更容易,消除了基础设施供应的开销。 每个开发人员一个数据库 在这种模型下,团队中的每个开发人员都有自己的(隐藏的)生产数据库副本,可以根据该副本进行工作。这使开发人员可以单独更改其数据库副本,从而解决了由于争用共享数据库而引起的问题。 这在过去比较困难,因为我们必须为每个开发人员提供类似于生产的应用程序数据库的副本。但是,通过使用Spawn,我们可以从命令行配置临时数据库实例,而无需设置或托管任何其他基础架构: 使用Spawn,我们可以每天从生产环境中创建一个数据映像(作为计划构建管道的高防服务器一部分),并使此映像对开发人员和CI系统都可用——所有这些都使用Spawn CLI。可以从备份文件或脚本创建映像。 然后,每个开发人员都可以基于此映像配置自己的数据库,而不必像运行spawnctl create data-container 那样轻松地离开命令行。 Spawn在幕后Kubernetes集群中创建并托管一个容器化的数据库实例,将开发团队从管理自己的数据库基础设施的负担中解脱出来,并获得专用数据库进行开发的所有好处: 还等什么呢?是时候上手Spawn啦!