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”