Статьи

Meet Fabric8: платформа интеграции с открытым исходным кодом на основе Camel и ActiveMQ

Fabric8

Fabric8 — лицензированное сообщество Apache 2.0 для продукта JBoss Fuse от Red Hat .

Это интеграционная платформа, основанная на Apache ActiveMQ , Camel , CXF , Karaf , HawtIO и других.

Он обеспечивает автоматизированное управление конфигурацией и развертыванием, чтобы сделать развертывание простым, воспроизводимым и менее подверженным человеческим ошибкам.

Последняя версия GA JBoss Fuse (v6.1 ), выпущенная недавно, основана на v1.0 Fabric8 :

fabric8_logo

Fabric8 объединяет и упаковывает эти проекты с открытым исходным кодом, чтобы помочь вам построить интеграцию между системами, а также справиться с нефункциональными требованиями, такими как управление развертыванием, обнаружение служб, отработка отказа, балансировка нагрузки, централизованная настройка, автоматизация и многое другое! Он также дает четкий путь к облачным развертываниям, таким как на PaaS. Самое приятное, что он знаком людям, которые уже используют Camel или ActiveMQ, которые являются наиболее популярными библиотеками интеграции с открытым исходным кодом и платформами обмена сообщениями соответственно.

Вы можете получить больше информации из документации сообщества , пообщаться с разработчиками в IRC на freenode и в списке рассылки в google-groups .

Круто, так что мне дает Fabric8?

Fabric8 предоставляет ОЧЕНЬ много функциональности … но есть пара ключевых функциональных возможностей, которые я хотел бы упомянуть в этом сообщении в блоге. В противном случае вам придется создавать свои собственные элементы, если вы будете напрямую использовать составляющие проекты:

1
2
3
4
5
6
7
* Automated deployment and provisioning
* Polycontainer support
* Centralized management
* Service discovery
* Load balancing
* High availability
* Master/slave failover coordination

Ткань-схема,

С Fabric8 вы создаете свои части интеграции, разворачиваете их и управляете ими (вместе это создает «фабрику»), где узлы представляют контейнеры с предоставленными частями вашего программного обеспечения (развертывания), а конечные точки (HTTP, MQ, SOAP / REST) ​​зарегистрированы. в хранилище для динамического поиска.

История DevOpsy

Подумайте немного о том, как выглядит ваш текущий процесс сборки и выпуска…

Для магазинов Java у вас, вероятно, есть Maven, который собирает ваш исходный код, subversion или git для обеспечения контроля версий и управления изменениями вокруг вашего исходного кода, и, возможно, Jenkins для управления вашими сборками, верно? И это очень мощный набор инструментов для разработчиков Java.

Но процесс сборки и выпуска — это больше, чем просто использование нескольких инструментов независимо от их мощности.

Передача вашего кода в производство требует гораздо большего от операционной стороны, которую разработчики либо не получают, либо не замечают. В каких контейнерах работает ваш код? Какие операционные системы? Какое вспомогательное программное обеспечение должно быть рядом? Эти среды тщательно обработаны и настроены вручную с помощью гигантских контейнеров, которые хрупки для изменения, отличаются в зависимости от среды, в которой они работают (DEV / QA / UAT / PROD и т. Д.), ??

Успешные ИТ-магазины используют движение DevOps и его принципы коммуникации и автоматизации, чтобы создать среду, которая легко программируется / автоматизируется, воспроизводится и устраняет как можно больше человеческих и ручных настроек.

Разработчик мыслит с точки зрения кода и серверов приложений.

Сотрудник может думать об управлении виртуальными машинами, серверами, ОС, сетью и т. Д.

Но в этом и заключается пробел. Какие инструменты нужны разработчикам для автоматизации развертывания контейнеров, подготовки их приложений, настройки этих приложений и визуализации / управления этим из центрального местоположения?

Специалисты знакомы с Puppet / Chef / Ansible / MCollective / capistrano … и использование этих инструментов совместно с Fabric8 даст вам очень глубокий и мощный стек для автоматизации и управления конфигурацией, чтобы помочь вам добиться согласованного и воспроизводимого развертывания в производство для реализации модель непрерывной доставки .

Так какова ценность, которую добавляет Fabric8?

Согласованность между контейнерами

Непротиворечивый способ настройки ваших развертываний с помощью профилей, который работает в Java-контейнерах ( Karaf , Tomcat , Wildfly , TomEE ), микросервисных инфраструктурах ( Dropwizard , Spring Boot , Vert.x ) и простой Java-системе Java (PJJM, TM) основанные приложения.

Зрительные

Унифицированная веб-консоль на основе HawtIO для управления вашими профилями, развертываниями, брокерами, сервисами и т. Д. Есть даже богатая визуализация ваших маршрутов Camel, а также отладка и трассировка при возникновении проблем.

открытие

Для всех развертываний в Fabric Fabric8 может не только управлять ими, но и регистрировать их в реестре времени выполнения, который клиенты могут использовать для автоматического поиска нужного им набора конечных точек HTTP (SOAP / REST и т. Д.) Или служб MQ ( брокеры, пары мастер / раб, сеть брокеров и т. д.). Кроме того, внешние клиенты также могут использовать реестр для обнаружения служб.

Глубокое понимание ваших текущих услуг

Хотя знакомые инструменты Ops, такие как упомянутые выше, отлично подходят для переноса программного обеспечения на диск для наборов компьютеров, они не могут дать глубокого понимания о том, какие службы работают. Например, с помощью плагина Camel для Fabric8 вы можете отслеживать количество выполненных обменов, количество неудачных обменов, количество времени, которое требуется конечной точке для завершения обменов и т. Д. С помощью плагина ActiveMQ вы можете визуализировать свои очереди / производителей / потребителей, отправлять сообщения в очереди, перемещение сообщений из DLQ и т. д. Кроме того, для ElasticSearch / Kibana есть плагины для еще более глубокого понимания бизнес / интегрированной обработки, реализованной вашим кодом / верблюжьими маршрутами.

фамильярность

Fabric8 использует инструменты, которые уже знакомы разработчикам Java, пишущим службы или приложения распределенной интеграции. Например, все конфигурации (профили) хранятся в git. Механизмы обеспечения используют Maven. Координационные службы используют [Apache Zookeeper] [zk] и т. Д.

Управление развертыванием в облаке или в гибридных облаках

Fabric8 имеет встроенную поддержку для развертывания и подготовки к IaaS или PaaS из коробки. Есть даже поддержка контейнеров на основе Docker, которые вы можете затем отправить и использовать в любой среде!

Что насчет ServiceMix?

ServiceMix также является ESB с открытым исходным кодом на основе Apache Camel и ActiveMQ. Так как это связано с Fabric8?

ServiceMix — это происхождение текущего JBoss Fuse / Fabric8. Он начался около 9 лет назад как реализация EnterpriseServiceBus (ESB) на основе спецификации Java Business Integration . Его целью было создание архитектуры подключаемых компонентов с нормализованной магистралью обмена сообщениями, которая соответствовала бы стандартным интерфейсам и каноническим форматам данных XML. ServiceMix приобрел большую популярность, несмотря на то, что JBI был чрезмерно церемониальной спецификацией (множество XML-дескрипторов, требования к упаковке и т. Д.). Но, несмотря на то, что большинство продуктов / проектов, предлагающих услуги интеграции в виде большого, сложного контейнера, необходимость маршрутизации, преобразования, интеграции с внешними системами и т. Д. Также проявляется вне этой сложной среды «ESB»!

В период SMX 3.x и 4.x проект подвергся серьезному рефакторингу. Реализация JBI была разорвана и упрощена с помощью DSL маршрутизации / посредничества, который впоследствии стал Apache Camel . Таким образом, «сердце» «ESB» может быть использовано в других проектах (ActiveMQ, автономно и т. Д.). Кроме того, основной контейнер также переместился от JBI к OSGi. Еще позже, фактический контейнер OSGi был преобразован в его собственный проект, теперь известный как Karaf . Таким образом, ServiceMix стал менее собственным проектом и действительно упаковкой других проектов, таких как ActiveMQ, Karaf (который раньше был основным SMX) и Camel (который раньше был основным SMX). Более старые версии JBoss Fuse (Fuse ESB / Fuse Enterprise), где в основном укреплялся SMX, который уже был переупаковкой некоторых проектов Apache. Кроме того, многие разработчики ядра, работающие над SMX, также стали вносить вклад в создание составляющих частей, а не обязательно ядра SMX.

Fabric8 использует дух «ESB» или «интеграция» ServiceMix и добавляет удобный интерфейс управления ( HawtIO ) и все вещи DevOpsy, о которых я упоминал выше, и прокладывает четкий путь к крупномасштабным развертываниям и даже к облачному / гибридному облачные архитектуры .

Если вы хотите больше информации от сообщества, Клаус Ибсен написал хороший пост в блоге .

И довольно длинное обсуждение в сообществе SMX найдено здесь :

Следующие шаги

Если вы разрабатываете системы / корпоративные интеграции с Camel , CXF или ActiveMQ и внедряете их в OSGi ( karaf ), Servlet ( Tomcat ), Java EE ( Wilffly ) или автономно ( Vert.x , Spring Boot , DropWizard ), то вам определенно следует взгляните на Fabric8 .

Начните с загрузки последней версии и оставьте свой отзыв !

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