Бессерверные вычисления: Diego Elastic Runtime от Cloud Foundry - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь понять архитектуру без сервера, которая говорит о 2 разных вещах:

  • вы, как разработчик приложения, думаете только о своей функции, а не об обязанностях сервера. Ну, сервер все еще должен быть где-то.Под серверами я понимаю, что это означает как:

    • на стороне инфраструктуры Физический сервер / ВМ / контейнер
    • , так и на стороне программного обеспечения: скажем, Tomcat

    Теперь я работал над Cloud Foundry и изучал ER, т.е. Diego Architecture of Cloud Foundry, а также buildpack и открытый API-интерфейс Service Broker в Cloud Foundry.По сути, Cloud Foundry также уже работает над «похожей» моделью, в которой разработчик приложения фокусируется на своем коде, а модель развертывания с помощью buildpack готовит дроплет с необходимой средой выполнения Java и средой Tomcat, а затем использует ее для создания контейнера для сада.который обслуживает запросы пользователей.Таким образом, разработчик не должен беспокоиться о том, откуда поступит сервер Tomcat или виртуальная машина / контейнер. Итак, разве мы не выполняем этот мандат в Cloud Foundry?

  • ваш код появляется на время выполнения и затем умирает .Я согласен, что это отличается от приложений / микросервисов, которые мы пишем в Cloud Foundry, в том, что они представляют собой долго выполняющиеся серверные процессы.Теперь, если бы мне пришлось разработать веб-приложение / микросервис Java с 3 конечными точками REST ( myapp / resource1, myapp / resource2, myapp / resource3 ), возможно, на веб-сервере Tomcat, мне нужно:

    • физическая машина, виртуальная машина или контейнер,
    • среда выполнения Java
    • контейнер Tomcat, чтобы можно было запускать мой war-файл.

    Исходя из того, что предлагает Serverless, я предполагаю, что я должен сконцентрироваться только на очень специфической функции, скажем, обработке запроса к myapp / resource1 .Теперь в таком сценарии:

    • Как должен выглядеть мой соответствующий класс Java?
    • Где я могу получить доступ к объектам J2EE, таким как объекты HttpServletRequest или HttpServletResponse, и другим объектам, предоставляемым http или сервлетом, или JAX-RS или Spring MVC, которые создаются средой выполнения Tomcat?
    • Является ли мойJava-класс выполняется в контейнере, который создается на время выполнения, а затем уничтожается после выполнения?Если да, кто управляет созданием / уничтожением такого контейнера?
    • Потребуется ли вообще Tomcat?Существует ли совершенно другой общий способ обработки запросов к этим трем конечным точкам REST?Это как серверы httpd, использующие скрипты Python / CGI для обработки запросов HTTP?
...