Cloud foundry 无服务器计算:CloudFoundry';s迭戈弹性运行时

Cloud foundry 无服务器计算:CloudFoundry';s迭戈弹性运行时,cloud-foundry,serverless,faas,diego,Cloud Foundry,Serverless,Faas,Diego,我试图理解无服务器体系结构,它说了两件截然不同的事情: 作为一名应用程序开发人员,您只考虑自己的功能,而不考虑服务器的责任。好吧,服务器还必须在某个地方。说到服务器,我理解这意味着: 在基础架构端,物理服务器/VM/容器 还有软件方面的问题:比如,Tomcat 现在,我在Cloud Foundry工作,研究了Cloud Foundry的ER即Diego体系结构和Cloud Foundry的buildpack和open Service Broker API工具。实际上,Cloud Found

我试图理解无服务器体系结构,它说了两件截然不同的事情:

  • 作为一名应用程序开发人员,您只考虑自己的功能,而不考虑服务器的责任。好吧,服务器还必须在某个地方。说到服务器,我理解这意味着:

    • 在基础架构端,物理服务器/VM/容器
    • 还有软件方面的问题:比如,Tomcat
    现在,我在Cloud Foundry工作,研究了Cloud Foundry的ER即Diego体系结构和Cloud Foundry的buildpack和open Service Broker API工具。实际上,Cloud Foundry也已经在一个“类似”的模型上工作,应用程序开发人员在buildpack的帮助下专注于他的代码和部署模型,准备一个包含所需Java运行时和Tomcat运行时的水滴,然后使用它创建一个花园容器来服务用户请求。因此,开发人员不必担心Tomcat服务器或VM/容器来自何处。那么,我们不是已经在CloudFoundry中完成了这项任务了吗

  • 您的代码在执行期间开始存在,然后消失。我同意这与我们在CloudFoundry中编写的应用程序/微型设备不同,因为它们是长时间运行的服务器进程。现在,如果我要开发一个Java webapp/microservice,可能在Tomcat Web服务器上有3个REST端点(myapp/resource1、myapp/resource2、myapp/resource3),我需要:

    • 物理机器、虚拟机或容器
    • Java运行时
    • Tomcat容器可以运行我的war文件
    按照Serverless的建议,我推断我应该只关注非常具体的功能,比如处理对myapp/resource1的请求。现在,在这种情况下:

    • 我对应的Java类应该是什么样子
    • 从哪里可以访问由Tomcat运行时创建的J2EE对象,如HttpServletRequest或HttpServletResponse对象以及其他http或servlet或JAX-RS或SpringMVC提供的对象
    • 我的Java类是否在一个容器中执行,该容器在执行期间创建,然后在执行后销毁?如果是,由谁管理此类容器的创建/销毁
    • 甚至需要Tomcat吗?是否有一种完全不同的通用方式来处理对这三个REST端点的请求?它是否有点像使用python/JavaCGI脚本处理http请求的httpd服务器