2.4.1 服务装配:打包和部署微服务

从DevOps的角度来看,微服务架构背后的一个关键概念是可以快速部署微服务的多个实例,以应对变化的应用程序环境(如用户请求的突然涌入、基础设施内部的问题等)。
为了实现这一点,微服务需要作为带有所有依赖项的单个制品进行打包和安装,然后可以将这个制品部署到安装了Java JDK的任何服务器上。这些依赖项还包括承载微服务的运行时引擎(如HTTP服务器或应用程序容器)。
这种持续构建、打包和部署的过程就是服务装配(图2-6中的步骤1)。图2-7展示了有关服务装配步骤的其他详细信息。
幸运的是,几乎所有的Java微服务框架都包含可以使用代码进行打包和部署的运行时引擎。例如,在图2-7中的Spring Boot示例中,可以使用Maven和Spring Boot构建一个可执行的Java JAR文件,该文件具有嵌入式的Tomcat引擎内置于其中。以下命令行示例将构建许可证服务作为可执行JAR,然后从命令行启动JAR文件:
 
  1. mvn clean package && java ¨Cjar target/licensing-service-0.0.1-SNAPSHOT.jar 
 
对某些运维团队来说,将运行时环境嵌入JAR文件中的理念是他们在部署应用程序时的重大转变。在传统的J2EE企业组织中,应用程序是被部署到应用程序服务器的。该模型意味着应用程序服务器本身是一个实体,并且通常由一个系统管理员团队进行管理,这些管理员管理服务器的配置,而与被部署的应用程序无关。
在部署过程中,应用程序服务器的配置与应用程序之间的分离可能会引入故障点,因为在许多组织中,应用程序服务器的配置不受源控制,并且通过用户界面和本地管理脚本组合的方式进行管理。这非常容易在应用程序服务器环境中发生配置漂移,并突然导致表面上看起来是随机中断的情况。
将运行时引擎嵌入可部署制品中的做法消除了许多配置漂移的可能性。它还允许将整个制品置于源代码控制之下,并允许应用程序团队更好地思考他们的应用程序是如何构建和部署的。
 
 
原文地址:https://www.cnblogs.com/mongotea/p/11973156.html