何谓短缺和过剩
最近参加JavaZone时,我参加了Neal Ford的演讲。 坦白地说,这次演讲并不令人惊讶,他展示的许多工具要么过时,要么不是最好的,但他指出了一个非常重要的事实:应用服务器旨在通过共享资源来解决资源短缺的问题,在这个时代不再稀缺。
实际上,这完全符合我的经验。 还记得10年前我们必须提前6个月订购硬件吗? 当时,所有Web应用程序都部署在同一应用程序服务器上-并不总是群集的。 几年后,我注意到应用程序服务器的数量有所增加。 有些甚至需要集群,因为我们负担不起关闭服务的费用。 正是由于人们特定的负载配置文件,人们才开始考虑在哪个应用程序服务器上部署哪个应用程序。 在最近几年中,出现了一种新的行为:将单个Web应用程序部署到单个应用程序服务器,因为它被认为过于关键,以至于可能不受同一应用程序服务器上其他应用程序的影响。 有时这导致了针对每个应用程序执行此操作的实践,无论该应用程序是否关键。
如今,任何数量的硬件都可以立即使用,而无需支付任何费用:他们将其称为“云”。 那为什么我们仍在使用应用程序服务器? 我认为Spring框架背后的人们问了同样的问题,并提出了一个激进的答案:我们不需要它们。 当JavaEE(当时称为J2EE)仍然是一个big肿的标准,充斥着野蛮的首字母缩略词和在开发时遇到的真正痛苦时(记住EJB 2.0?),Spring一直是实用的开发。 。 Spring重视完全兼容的JavaEE服务器上的简单JSP / Servlet容器,现在由于不再需要任何外部应用程序服务器,它们最终跨越了Rubicon。
当我第一次听说这件事时,我感到非常惊讶,但是在微服务时代,我想这很有意义。 想象您刚刚完成了应用程序的开发。 无需创建WAR,EAR或通常执行的任何程序包,只需推送到Git存储库即可。 然后,挂钩将代码推送到服务器,停止现有应用程序,然后再次启动它。 那不仅会很有趣,而且真的很敏捷/开发/想要的任何酷概念吗? 我认为可以,这正是Spring Boot的一种部署。 这不是Spring Boot的唯一功能,它还提供了有关配置的实际约定,有用的Maven POM,开箱即用的度量标准和运行状况检查等等,但是嵌入Tomcat是最重要的一项(IMHO) 。
相反,诸如IBM,Oracle,甚至Red Hat之类的大商店仍然投入大量资金来开发其完全符合Java EE规范的应用服务器。 有趣的是,为了符合JavaEE,您必须实现“有趣的”功能,例如Java Connector Architecture ,这是我在职业生涯的早期仅连接一次CICS的一次。 有趣的是,Web Profile定义了一个轻量级标准,省略了JCA ...以及JavaMail。 但是,它采用了轻量级的方式。
现在,只有未来会告诉我们接下来会发生什么以及如何发生,但是我可以看到那里形成了一种趋势。
翻译自: https://blog.frankel.ch/on-resources-scarcity-application-servers-and-micro-services/
何谓短缺和过剩