将 Drupal Cloud Native 引入云端
Posted: Thu Dec 26, 2024 10:34 am
存储
让我们继续我们的旅程吧。我们必须记住,容器本质上是短暂的,而不是持久的。它有自己的生命周期,这会导致它死亡并被从同一镜像构建的另一个容器所取代。然而,在 Drupal 上,我们有必须保留的信息:用户数据。数据库和文件存储是支持服务,我们可以通过将它们连接到容器来管理它们。因此,数据不会保存在容器中,而是驻留在安装在容器本身上的持久卷中。
当我们发现自己处于云中时,最方便的做法就是依赖供应商提供的服务之一。关于存储,强烈建议的一项更改是切换到对象存储,它与标准 Drupal 文件存储不同。那么本地呢? MinIO 的使用非常有用:由于已经提到了环境变量,我们将拥有相同的 Drupal 配置,而与它所在的环境无关。但是我们应该完全抛弃标准文件存储吗?没有说。它可能很有用,因为也许我们有一个遗留应用程序需要这种支持,因此尽管对象存储是尽可能推荐的解决方案,但它不一定是唯一的解决方案。
通过日志,我们可以利用容器的一项功能来发 墨西哥电报数据 挥我们的优势。如果以前不将日志保存到数据库是一个好的做法,那么现在我们不必再担心它了,因为 Drupal 将以这样的方式进行配置:将日志直接写入容器的标准输出。然后,我们将根据我们所处的环境决定如何访问这些日志以及如何管理它们(例如根据我们的需要聚合和过滤它们)。
我们正处于旅程中的一个重要时刻,因为我们的应用程序已有效准备就绪 - 它是云原生的! - 但它还没有在云端。我们使用管道来做到这一点,即用于持续集成和持续交付的自动化脚本,它对我们存储库中的特定事件执行自动任务。一旦我们选择了我们喜欢的提供者,操作本质上是相同的:我们要求我们的管道按特定顺序执行特定任务。我们肯定会要求管道执行两个基本操作:根据存储库中的说明构建镜像并执行部署,即更新我们应用程序的指定环境,在 Drupal 的情况下显然是更新代码库、数据库更新、配置导入等。但这一切都将是自动的,我们将不再需要手动完成,我们将可以自由地添加一系列其他活动,例如代码质量控制、各种类型的自动测试(end-2-end、视觉回归) , ETC。)。我们在这些操作上做得越好,也就是说,用测试覆盖我们的应用程序并在最合适的时间运行测试,我们就越能放心,因为管道在遇到错误时会阻塞,防止我们将不符合我们意愿的东西投入生产(从而避免回滚)。配置管道后,我们最终必须定义我们的云提供商以及要使用的服务。作为一个一般概念,我们可以说我们将拥有一个或多个必须编排的容器,并且我们可以解决已经提供很多开箱即用功能的自定义解决方案和托管解决方案。
让我们继续我们的旅程吧。我们必须记住,容器本质上是短暂的,而不是持久的。它有自己的生命周期,这会导致它死亡并被从同一镜像构建的另一个容器所取代。然而,在 Drupal 上,我们有必须保留的信息:用户数据。数据库和文件存储是支持服务,我们可以通过将它们连接到容器来管理它们。因此,数据不会保存在容器中,而是驻留在安装在容器本身上的持久卷中。
当我们发现自己处于云中时,最方便的做法就是依赖供应商提供的服务之一。关于存储,强烈建议的一项更改是切换到对象存储,它与标准 Drupal 文件存储不同。那么本地呢? MinIO 的使用非常有用:由于已经提到了环境变量,我们将拥有相同的 Drupal 配置,而与它所在的环境无关。但是我们应该完全抛弃标准文件存储吗?没有说。它可能很有用,因为也许我们有一个遗留应用程序需要这种支持,因此尽管对象存储是尽可能推荐的解决方案,但它不一定是唯一的解决方案。
通过日志,我们可以利用容器的一项功能来发 墨西哥电报数据 挥我们的优势。如果以前不将日志保存到数据库是一个好的做法,那么现在我们不必再担心它了,因为 Drupal 将以这样的方式进行配置:将日志直接写入容器的标准输出。然后,我们将根据我们所处的环境决定如何访问这些日志以及如何管理它们(例如根据我们的需要聚合和过滤它们)。
我们正处于旅程中的一个重要时刻,因为我们的应用程序已有效准备就绪 - 它是云原生的! - 但它还没有在云端。我们使用管道来做到这一点,即用于持续集成和持续交付的自动化脚本,它对我们存储库中的特定事件执行自动任务。一旦我们选择了我们喜欢的提供者,操作本质上是相同的:我们要求我们的管道按特定顺序执行特定任务。我们肯定会要求管道执行两个基本操作:根据存储库中的说明构建镜像并执行部署,即更新我们应用程序的指定环境,在 Drupal 的情况下显然是更新代码库、数据库更新、配置导入等。但这一切都将是自动的,我们将不再需要手动完成,我们将可以自由地添加一系列其他活动,例如代码质量控制、各种类型的自动测试(end-2-end、视觉回归) , ETC。)。我们在这些操作上做得越好,也就是说,用测试覆盖我们的应用程序并在最合适的时间运行测试,我们就越能放心,因为管道在遇到错误时会阻塞,防止我们将不符合我们意愿的东西投入生产(从而避免回滚)。配置管道后,我们最终必须定义我们的云提供商以及要使用的服务。作为一个一般概念,我们可以说我们将拥有一个或多个必须编排的容器,并且我们可以解决已经提供很多开箱即用功能的自定义解决方案和托管解决方案。