Бессерверные вычисления: Diego Elastic Runtime от Cloud Foundry


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

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

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

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

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

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

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

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

0 ответов

Другие вопросы по тегам