在之前的文章中,我们探讨了使用称为“插入点”的概念将应用服务添加到不断变化的应用架构中的想法。 对于那些还没有关注的人来说,插入点是代码到客户数据路径中架构上不同的位置,在该位置添加通常超出开发范围或操作效率更高的功能是有意义的。
一组强大的功能可以添加或增强代表当今业务活动的applications。
插入点包括客户端、基础设施和应用程序本身。 在平衡运营和成本效率时,每一点都有其优点和缺点。 例如,将以网络为中心的 DDoS 应用服务插入客户端或应用在操作上或成本效益上可能不高。这是因为插入点都无法访问基础设施选项提供的硬件加速功能,也不具备做出准确判断所需的可见性。
因此,我们所寻找的是在插入点上既具有操作效率又具有成本效益的应用服务;在这种情况下,我们专注于应用服务器(平台)本身。
一开始,这个插入点可能看起来像是一个奇怪的选择。 应用服务器托管和交付应用程序,而不是应用服务。 但如果你考虑NGINX和其他应用服务器今天所扮演的角色,你会发现它们通常同时扮演基础设施和服务器的角色。 例如,一些应用服务器可以并且确实充当 SSL 终止点。 SSL 终止是一项应用服务,通常与 SSL 卸载(硬件加速)结合使用。 Web 应用防火墙服务也经常通过插件与应用服务器耦合。
使用应用服务器作为插入点既不是什么新鲜事,也不是什么新鲜事。 在我们的2020 年application服务状况研究中,我们询问了有关部署应用服务的此选项。 我们发现人们对这个插入点很感兴趣。 约有6%的受访者愿意使用应用服务的“插件”。 另外 9% 的人更喜欢“即服务”,这需要一段配套代码(注入或包含)来调用。 少数人(4%)希望使用库来包含应用服务。 我们看到最后一个选项经常用于将功能插入无服务器(功能即服务)applications中。
在许多情况下,在应用服务器上部署应用服务具有良好的操作意义。 由于这些服务通常配置为服务单个应用程序,因此它们可以由同一团队打包和部署。 应用服务器方面的专业知识可确保更大的信心和更轻松地集成到生态系统和部署管道中。
在某些情况下,在单个应用服务器的同一实例上将应用程序和应用服务一起部署是有意义的。 例如,通过特定于应用程序的策略进行的应用程序保护可以作为处理请求和响应的一个步骤插入和执行。 从服务器内部调用该功能是有意义的,如果在本地执行检查,则可以通过消除额外的跳跃和由环境之外托管的服务进行处理来提高性能。 这可以使其在运营和财务上都更加高效,特别是如果您按小时或按调用次数付费服务。
无论应用服务器是用于托管独立的应用服务还是作为应用程序和应用服务的主机,应用服务器无疑是正确的应用服务的良好插入点。