Jump to content

Кваркус

Кваркус
Разработчик(и) Красная шляпа
Первоначальный выпуск 20 марта 2019 г .; 5 лет назад ( 20.03.2019 ) [1]
Стабильная версия
3.13.0 [2] / 31 июля 2024 г .; 1 день назад ( 31.07.2024 )
Репозиторий Репозиторий Кваркуса
Написано в Ява
Платформа Ява
Тип Платформа приложения
Лицензия Лицензия Апач 2.0
Веб-сайт кваркус .что

Кваркус [3] [4] [5] — это Java- фреймворк, предназначенный для развертывания в Kubernetes . Ключевыми технологическими компонентами, окружающими его, являются OpenJDK HotSpot и GraalVM . Цель Quarkus — сделать Java ведущей платформой в Kubernetes и бессерверных средах, одновременно предлагая разработчикам единую модель реактивного и императивного программирования для оптимальной работы с более широким спектром архитектур распределенных приложений.

История версий [6]

[ редактировать ]
Версия Дата Примечания
0.12 20 марта 2019 г. Первоначальный выпуск
1.0 ноябрь 2019 г.
2.0 июнь 2021 г.
3.0.1 март 2023 г.
3.2.6 октябрь 2023 г. ЛТС (3.2)
2.16.12.Final 17 октября 2023 г.
3.2.7.Final 19 октября 2023 г.
3.5.0 25 октября 2023 г.
3.2.9.Final 17 ноября 2023 г.
3.6.0 29 ноября 2023 г.
3.2.10.Final январь 2024 г.
3.7.1 январь 2024 г.
3.8.1 февраль 2024 г. ЛТС (3,8)
3.10.0 апрель 2024 г.
3.13.0 июль 2024 г.

Quarkus предлагает быстрое масштабирование и высокую плотность использования на платформах оркестрации контейнеров, таких как Kubernetes. При тех же аппаратных ресурсах можно запустить гораздо больше экземпляров приложений. После своего первоначального дебюта в течение следующих нескольких месяцев Quarkus претерпел несколько усовершенствований, кульминацией которых стал выпуск версии 1.0.0 в сообществе открытого исходного кода в ноябре 2019 года. [7]

Распределения

[ редактировать ]

GraalVM Community Edition (CE) и GraalVM Enterprise Edition (EE)

[ редактировать ]

GraalVM — это виртуальная машина Java для компиляции и запуска приложений, написанных на разных языках, в двоичный файл собственной машины. GraalVM Community Edition имеет различные требования к поддержке и лицензированию.

Mandrel — это последующий дистрибутив GraalVM CE, поддерживающий те же возможности для создания собственных исполняемых файлов, но на основе OpenJDK с открытым исходным кодом . Целью Mandrel является упрощение использования GraalVM приложениями Quarkus за счет включения только тех компонентов GraalVM CE, которые необходимы Quarkus. Red Hat начала коммерческую поддержку использования Mandrel для создания собственных приложений Quarkus с момента выпуска Quarkus 1.7 в октябре 2020 года. [8]

Столпы дизайна

[ редактировать ]

Сначала контейнер

[ редактировать ]

контейнеров и Kubernetes С самого начала Quarkus был разработан на основе философии , оптимизируя низкое использование памяти и быстрое время запуска.

Максимально возможный объем обработки выполняется во время сборки, включая использование подхода «закрытого мира» к созданию и запуску приложений. Эта оптимизация означает, что в большинстве случаев весь код, у которого нет пути выполнения во время выполнения, не загружается в JVM.

В Quarkus классы, используемые только при запуске приложения, вызываются во время сборки и не загружаются в JVM среды выполнения. Quarkus также избегает отражения максимально , вместо этого отдавая предпочтение статической привязке классов. Эти принципы проектирования уменьшают размер и, в конечном итоге, объем памяти приложения, работающего на JVM, а также позволяют Quarkus быть нативным .

Дизайн Quarkus с самого начала предусматривал нативную компиляцию. Он был оптимизирован для использования встроенных возможностей образа GraalVM для компиляции байт-кода JVM в машинный двоичный файл. GraalVM агрессивно удаляет любой недоступный код, обнаруженный в исходном коде приложения, а также любые его зависимости. В сочетании с контейнерами Linux и Kubernetes приложение Quarkus работает как собственный исполняемый файл Linux, исключая JVM. Собственный исполняемый файл Quarkus запускается намного быстрее и использует гораздо меньше памяти, чем традиционная JVM.

  • Быстрый запуск (десятки миллисекунд) позволяет автоматически масштабировать микросервисы в контейнерах и Kubernetes, а также выполнять FaaS на месте.
  • Низкое использование памяти помогает оптимизировать плотность контейнеров в развертываниях архитектуры микросервисов, требующих нескольких контейнеров.
  • Меньший размер образа приложения и контейнера

Живое кодирование [9]

[ редактировать ]

Одной из основных проблем производительности, с которой сталкивается большинство разработчиков Java, является традиционный рабочий процесс разработки Java. Для большинства веб-разработчиков это обычно будет:

Написать код Компилировать Развернуть Обновить браузер Повторить.

Это может серьезно снизить производительность, поскольку цикл компиляции + повторного развертывания часто может занимать минуту или больше. Quarkus стремится решить эту проблему с помощью функции Live Coding . При работе в режиме разработки рабочий процесс выглядит просто:

Написать код Обновить браузер Повторить

Это будет работать «из коробки», никакой специальной настройки не требуется. Это работает для исходных файлов приложения, конфигураций и статических ресурсов.

Примечание Когда ты бежишь mvn compile quarkus:dev Quarkus запустится в режиме разработки. Когда он получает HTTP-запрос, он удерживает его и проверяет, не были ли изменены какие-либо исходные файлы приложения. Если они есть, он прозрачно скомпилирует измененные файлы, повторно развернет приложение с измененными файлами, а затем HTTP-запрос продолжится к повторно развернутому приложению. Повторное развертывание Quarkus происходит намного быстрее, чем традиционный сервер приложений, поэтому для всех приложений, кроме самых крупных, это должно занять меньше секунды.

Интерактивный пользовательский интерфейс разработчика (DEV UI)

[ редактировать ]

Quarkus предоставляет интерактивный пользовательский интерфейс разработчика для демонстрации всех добавленных зависимостей, когда разработчик обращается к http://localhost:8080/q/dev конечная точка после запуска режима разработки Quarkus через mvn quarkus:dev командная строка. Разработчики также могут обновлять конфигурации, после чего изменения автоматически синхронизируют файл application.properties .

Нулевая настройка с DevServices [10]

[ редактировать ]

Установка базы данных в локальной среде разработчика — нетривиальная задача, если база данных должна быть такой же, как и производственная версия. Пользователи Linux (разработчики) могут легко запускать базу данных с помощью инструмента командной строки контейнера и механизма контейнера. Они по-прежнему склонны не запускать готовые к использованию базы данных (например, PostgreSQL и MariaDB ) из-за высокого потребления ресурсов компьютера. Вместо этого они предпочитают использовать хранилища данных в памяти, такие как база данных H2 .

Quarkus предоставляет DevServices, созданные на основе тестовых контейнеров, для решения этой проблемы. Например, разработчик может тестировать приложения, если они работают в рабочей базе данных PostgreSQL, а не в хранилище данных H2 в памяти в файле application.properties:

quarkus.datasource.devservices.image-name=postgres:latest

DevServices обычно включен по умолчанию, если не существует существующей конфигурации. Если DevServices включен, Quarkus попытается автоматически настроить и запустить базу данных при работе в режиме разработки или тестирования.

Непрерывное тестирование

[ редактировать ]

Отсутствие тестирования — это не вариант разработки надежных приложений при разработке программного обеспечения, от монолитного приложения до микросервисов. Разработчики, вероятно, думают о внешних инструментах непрерывной интеграции (CI), за проверку тестовых примеров которых, скорее всего, отвечает команда контроля качества.

Что, если разработчикам не нужно интегрировать инструменты CI, а выполнять тестовые сценарии в среде выполнения, в которой разрабатываются и работают бизнес-приложения?

Quarkus предоставляет функцию непрерывного тестирования через интерфейс командной строки, а также пользовательский интерфейс DEV. Эта функция избавляет разработчика от необходимости интегрировать внешний инструмент CI и обеспечивает функциональность при постоянной разработке бизнес-логики. [11] [12]

Построено по стандартам

[ редактировать ]

Quarkus опирается на обширную экосистему технологий, стандартов, библиотек и API. Разработчикам не нужно тратить много времени на изучение совершенно нового набора API и технологий, чтобы воспользоваться преимуществами, которые Quarkus дает JVM или собственным образам. Среди спецификаций и технологий, лежащих в основе Quarkus, — Contexts & Dependency Injection ( CDI ), JAX-RS , Java Persistence API (JPA), Java Transaction API (JTA), Apache Camel и Hibernate , и это лишь некоторые из них. [ нужна ссылка ]

Quarkus — это платформа предварительной компиляции (AOT), оптимизирующая код для JVM, а также компилирующая его в собственный код для повышения производительности. Все базовые технологии поддерживают AOT, и Quarkus постоянно внедряет новые технологии, стандарты и библиотеки с поддержкой AOT. [13]

  1. ^ «Репозиторий Quarkus Github, коммит первого выпуска» . github.com .
  2. ^ «Репозиторий Quarkus Github, коммит последнего выпуска» . github.com .
  3. ^ «LogicMonitor, Quarkus против Spring» . logicmonitor.com . 28 января 2023 г.
  4. ^ «Руководство по QuarkusIO» . Баелдунг.
  5. ^ «Начало работы с QuarkusIO» . mastertheboss.com .
  6. ^ «Кваркус» . конецжизни.дата . 2023-10-02 . Проверено 5 октября 2023 г.
  7. ^ «Репозиторий Quarkus Github, первый крупный выпуск» . github.com .
  8. ^ «Репозиторий Quarkus Github, выпуск 1.7.0.Final» . github.com .
  9. ^ «Режим разработки» . Quarkus.io .
  10. ^ «Обзор услуг для разработчиков» . Quarkus.io .
  11. ^ Дорога к Quarkus 2.0: непрерывное тестирование /
  12. ^ Разработка через тестирование с помощью Quarkus
  13. ^ «Что такое Кваркус?» . Цифровой гид IONOS . 13 января 2022 г. Проверено 22 августа 2022 г.

Библиография

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9108dfe6f66a82f7583ff1cbe6185092__1722420000
URL1:https://arc.ask3.ru/arc/aa/91/92/9108dfe6f66a82f7583ff1cbe6185092.html
Заголовок, (Title) документа по адресу, URL1:
Quarkus - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)