微服务架构的零停机部署

Ser*_*lov 5 java database docker spring-boot microservices

目前我正在开发一个基于Micro Service架构的应用程序.作为主要技术,我们计划为每个Micro Service开发使用Spring Boot和Docker.其中一个目标是为用户提供零停机部署功能.

我花了一些时间试图找到一些解决方案并了解Blue Green Deployment (BGD)但有些方面对我来说仍然不明确.主要问题是DataBase状态和版本兼容性.

例如,如果BGD使用了如何在成功部署后如何将所有数据更改从绿色迁移到蓝色轮廓?

我在Spring的零停机部署中发现了一个有趣的方法,其中包含一篇数据库文章,但我认为这种方法的应用程序版本和版本的过程和过程兼容性要求过于复杂.

所以我想问下面的问题:

  1. 有关零停机部署流程概念的任何建议,以实际使用经验为后盾吗?
  2. 是否有开箱即用的解决方案(付费或免费)为具有关系数据库的应用程序提供零停机部署功能?

PS

有趣的是Zero Downtime Deployment如何在StackOverflow.com中运行?

Mik*_*sen 1

摘自那篇文章:

\n\n
\n
    \n
  • 维护生产环境的两个副本(\xe2\x80\x9cblue\xe2\x80\x9d 和 \xe2\x80\x9cgreen\xe2\x80\x9d)
  • \n
  • 通过将生产 URL 映射到蓝色环境,将所有流量路由到蓝色环境;
  • \n
  • 在绿色环境中部署并测试对应用程序的任何更改;
  • \n
  • \xe2\x80\x9cflip 通过将 URL 映射到绿色并将它们从蓝色取消映射来翻转开关\xe2\x80\x9d。
  • \n
\n
\n\n

如果您有设备并设置了良好的部署流程,实际上并不那么困难。如果您已经设置了安全机制,以便用户不需要在蓝色环境中启动新会话,则痛苦几乎完全在于配置并确保蓝色环境处于与您一样完美的状态希望如此。之后,只需进入负载均衡器的配置并将设置翻转为指向蓝色环境即可。

\n\n

但是,一旦“绿色”和“蓝色”启动并运行,您就可以来回翻转。理想情况下,一旦验证蓝色,立即升级绿色。另外,请确保在两个环境之间共享数据库操作,以便在蓝色失败时绿色也可以作为蓝色的后备。

\n\n

诚然,我在 Hadoop 上规划和帮助这方面的经验是在 Hadoop 上,您通常有一个正式的数据摄取管道,可以轻松配置该管道以将所有新数据提供给两个完全独立的环境。

\n