java 服务编排
在这篇文章中,我们拥有一个全面的文章微服务针对Java开发:部署和协调。
1.简介
如今,越来越多的组织依靠云计算和托管服务产品来托管其服务。 这种策略有很多好处,但是您仍然必须为您的微服务团队选择最佳的部署游戏计划。
使用某种PaaS可能是最简单的选择,但从长远来看,由于这种模型具有固有的约束和局限性,因此从长远来看,这是不可持续的。 从另一方面来说,使用IaaS确实可以减轻基础架构管理和维护的成本,但是在部署应用程序和服务并使它们持续运行方面仍需要大量工作。 最后但并非最不重要的一点是,许多组织仍然更喜欢在内部管理其软件堆栈,仅将虚拟(或裸机)计算机管理工作转移给云提供商 。
决定哪种模型适合大多数组织的挑战很长一段时间仍未解决(总体上),等待某种突破发生。 幸运的是,“大爆炸”适时出现了。
目录
2.容器
尽管种子已经播种很久了,但革命是由Docker发起的,它彻底改变了我们用来处理应用程序和服务的分发,部署和开发的方式。 游戏改变者以操作系统级虚拟化和容器的形式弹出。 它是一种非常轻量级的(与传统虚拟机相比 )架构,几乎没有开销,共享相同的操作系统内核,并且不需要特殊的硬件支持即可有效地执行。
如今, 容器映像已成为事实上的打包和分发蓝图,而容器已成为主流的执行和隔离模型。 关于Docker和基于容器的虚拟化有很多话要说,特别是关于JVM平台上的应用程序和服务 ,但是在本教程的这一部分中,我们将重点关注部署和操作方面。
围绕容器的工具几乎可用于任何编程语言或平台,并且在大多数情况下,可以轻松地集成到构建和部署管道中。 例如,对于JCG租车平台, 客户服务部使用jib (更准确地说是jib-maven-plugin )构建了容器映像,该容器映像可以组装和发布该映像,而无需Docker守护程序。
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.3.0</version>
<configuration>
<to>
<image>jcg-car-rentals/customer-service</image>
<tags>
<tag>${project.version}</tag>
</tags>
</to>
<from>
<image>openjdk:8</image>
</from>
<container>
<user>1000</user>
<mainClass>ws.ament.hammock.Bootstrap</mainClass>
</container>
</configuration>
</plugin>
那么我们现在可以用容器做什么? 向基于容器的运行时的过渡催生了基础架构组件的新类别,即容器编排和管理。