Рубрики
Без рубрики

Легкие бессерверные Java-функции с кварками

Quarks – это “собственный Java-фреймворк следующего поколения Kubernetes”, доступный с открытым исходным кодом. Quarks обещает быстрое время загрузки и низкое использование памяти. Это делает Quark u s идеально подходящим для рабочих нагрузок Java, выполняемых как бессерверные функции. Помеченный как java, бессерверный, кварки, с открытым исходным кодом.

Quarks – это “собственный Java-фреймворк следующего поколения Kubernetes”, доступный с открытым исходным кодом. Quarks обещает быстрое время загрузки и низкое использование памяти. Это делает Quark u s идеально подходящим для рабочих нагрузок Java, работающих как микросервисы в Kubernetes, а также для рабочих нагрузок Java, работающих как бессерверные функции.

Читайте статью Почему кварки чтобы узнать, как работает Кваркус. В двух словах Quartus компилирует исходный код Java в собственные двоичные файлы с помощью Graal VM . Платформа Quarks framework помогает разработчикам легко создавать приложения, которые могут использовать преимущества Graal VM.

Большинство разработчиков используют JavaScript/Node.js для создания бессерверных функций в наши дни. Одна из причин заключается в том, что Node.js приложения обычно (раньше?) запускаются быстрее и потребляют меньше памяти. Поскольку вы обычно платите за память и время в облаке, Node.js часто экономит ваши деньги и обеспечивает лучший опыт.

Сегодня я кратко рассмотрел, как использовать Quarks для создания легких и быстрых образов Docker, которые можно запускать как бессерверные функции на платформах Apache OpenWhisk , таких как IBM Cloud Functions . Одной из замечательных особенностей Open Whisk является то, что вы можете использовать Docker для разработки функций.

Я собрал небольшой образец на GitHub.

Вот как вы можете попробовать Quarks в IBM Cloud Functions. Все, что вам нужно, – это бесплатная учетная запись IBM Cloud lite и ibm cloud CLI.

Сначала загрузите код:

$ git clone https://github.com/nheidloff/openwhisk-quarkus-starter.git
$ cd openwhisk-quarkus-starter

Перед созданием фактического образа Docker создается собственный двоичный файл. Следуйте инструкциям на веб-сайте Quark, как настроить GraalVM, Java JDK и Maven.

Затем создайте образ (замените ‘nheidloff’ на ваше имя Docker).

$ mvn package -Pnative -Dnative-image.docker-build=true
$ docker build -t nheidloff/quarkus-serverless:1 .
$ docker push nheidloff/quarkus-serverless:1

Чтобы вызвать функцию локально, выполните следующие команды:

$ docker run -i --rm -p 8080:8080 nheidloff/quarkus-serverless
$ curl --request POST \
  --url [http://localhost:8080/run](http://localhost:8080/run) \
  --header 'Content-Type: application/json' \
  --data '{"value":{"name":"Niklas"}}'

Чтобы изменить реализацию примерной функции, используйте свой любимый Java IDE или текстовый редактор. Когда вы запустите следующую команду, приложение будет автоматически обновляться каждый раз, когда вы сохраняете файл:

$ mvn compile quarkus:dev

Функцию Open Whisk можно создать в IBM Cloud с помощью следующих команд:

$ ibmcloud login
$ ibmcloud fn action create echo-quarkus --docker nheidloff/quarkus-serverless:1 -m 128

Примечание: Развернутая функция Quarks потребляет всего 128 МБ памяти. Я думаю, что это довольно удивительно.

Самый простой способ вызвать команду – через ibm cloud CLI:

$ ibmcloud fn action invoke --blocking echo-quarkus --param name Niklas

Далее я хочу подробнее рассмотреть скорость функций кварков.

Оригинал: “https://dev.to/nheidloff/lightweight-serverless-java-functions-with-quarkus-4ejd”