在 Kubernetes 下创建、复制和删除命名空间的便利性大大减轻了之前保留多个环境副本以复制底层基础设施的负担。您可以利用它来发挥自己的优势。
基于我们前面提到的 GitOps 原则,我们可以定义新的命名空间来生成新的集群。我们可以使用另一个分支(例如,对生产集群使用 master 分支和 demo 对于演示集群)或复制包含集群定义的文件并更改命名空间。
You can use different physical Kubernetes clusters for different purposes. It's better to leave the production cluster as not being shared with any other environment to reduce risks. However, every other environment could live in the same cluster, which won't affect external customers.
一些功能请求足以证明开发团队将确切地知道要做什么,例如错误报告。但是,其他人在开发过程中可能需要更多的测试和沟通,以确保满足要求。当我们检查新功能是否对预期的外部用户真正有用时,可能就是这种情况,或者可能是更具探索性的功能。在这种情况下,我们需要调用外部方,即功能的最终批准者:利益相关者。
利益相关者是项目管理中的一个术语,它指定第三方,即产品的最终用户或受产品影响的用户。在这里,我们使用该术语来指定对某个功能感兴趣但在团队外部的人,因此他们无法从内部定义功能需求。例如,利益相关者可以是经理、客户、公司 CEO 或内部工具的用户。
任何必须处理来自利益相关者的模糊定义请求(例如允许按名称搜索)的开发人员都必须对其进行调整:不,不是按名字,而是按姓< /em>。
Ensure that you define a proper end to these kinds of tasks. Stakeholder feedback can be endless if it's allowed to run without limits. Define what is and is not included in it, as well as any deadlines, beforehand.
要运行测试并确保正在开发的功能朝着正确的方向发展,您可以创建一个或多个演示环境,您将在其中部署正在进行的工作,然后再将其合并到主分支中。这将帮助我们与利益相关者分享这项工作,以便他们可以在功能完成之前给我们反馈,而无需我们在生产环境中发布它。
正如我们在前几章中看到的,在 Kubernetes 中生成一个新环境很容易。我们需要创建一个新的命名空间,然后复制集群的生产定义,从而改变命名空间。这将创建环境的副本。
更改正在开发的微服务的特定版本将允许我们创建它的工作版本。可以在此演示环境中照常部署较新的版本。
This is a simplified version. You may need to make changes between the production environment and demo environments, such as the number of replicas, and database setup. In such cases, a
template environment could be used as a reference so that it's ready to be copied.
其他环境(例如登台)可以以类似的方式创建,目的是创建测试以确保部署到生产中的代码将按预期工作。这些测试可以是自动的,但如果我们想检查用户体验是否足够,它们也可以是手动的。
暂存环境是作为副本工作的设置,它尽可能忠实于生产环境,这意味着我们可以运行测试以确保生产中的部署能够正常工作。分阶段通常可以帮助我们验证部署过程以及任何最终测试是否正确。
暂存环境的运行通常非常昂贵。毕竟,它们是生产环境的副本。使用 Kubernetes,您可以轻松复制生产环境并减少所需的物理基础设施。您甚至可以在不使用时启动和停止它以降低成本。
您可以使用多个环境以类似的方式创建级联部署结构。这意味着需要将标签部署到暂存环境中并在进入生产环境之前获得批准。
现在让我们从开发人员的角度来看看如何处理这种结构。