Run your applications in Karaf Runtime

Karaf Runtime is a modulith runtime. It's a lightweight, powerful, and enterprise ready.
Karaf supports several frameworks and programming model: REST/API, web, Spring Boot, ...
Karaf can be use as a standalone immuatable runtime, or in a mutable runtime that you can manage remotely.

Download » Documentation » View on GitHub »

Architecture

Enterprise Features
WebContainer (Pax Web)
Instance
JMX
ConfigAdmin
Security
Shell / SSH
Logging
Deployers
Provisioning
Programming Model (Spring / BluePrint / DeclarativeService)
OSGi Framework (Apache Felix / Eclipse Equinox)
JVM

Key features

Hot deployment

You can directly drop your applications in the Karaf deploy folder, they will be directly deployed for you. You can also create your own deployer.

Since 4.x

Dynamic configuration

All configurations (for Karaf itself and applications) are located in the Karaf etc folder. All changes in the configuration files are taken on the flyv: no need to restart.

Since 4.x

Logging system

Karaf uses a centralized logging back end, supporting popular frameworks (log4j, slf4j, logback, ...).

Since 4.x

Provisioning

Karaf provides a very convenient way to provision applications: the Karaf Features.

Since 4.x

Shell Console

Karaf provides a complete Unix like shell console, allowing to manage your container and applications. This shell supports completion, contextual help, key bindings, and much more.

Since 4.x

Remote management

Karaf embeds a SSH server allowing you to remotely access the shell using any SSH client. On the other hand, Karaf also provides JMX MBean server allowing to manage the container using any JMX client.

Since 4.x

WebConsole

In addition of ssh and JMX, you can also manage Karaf Runtime using a simple browser thanks to the Karaf WebConsole.

Since 4.x

Security

Karaf fully supports JAAS based security framework. It also supports a complete RBAC system for shell commands and JMX objects. You can directly use this security layer in your own applications.

Since 4.x

Instances management

You can manage several children instances inside the Karaf Runtime root instance. It's a very convenient way to test applications or configurations without impacting your existing running instances.

Since 4.x

Docker & Cloud ready

Manage your Docker containers and images via Karaf shell console, provisionning a running instance in the simpliest way.

Since 4.x

Manage bunch of clustered instances with Karaf Cellar

You have bunch of Karaf Runtime instances running ? You want to manage those instances as one, spreading the configuration, deployment, etc ? Karaf Cellar is for you.
Karaf Cellar is a clustering solution for Karaf. It allows you to manage multiple instances, with synchronization between the instances.

Download » Documentation » View on GitHub »

Architecture

Discovery
Cluster groups
Sync and distribute resources
DOSGi

Key features

Discovery

Each Karaf node is discovered automatically by the others, supporting different mechanisms (multicast, unicast, whiteboard, ...).

Since 4.x

Cluster groups

You can target the synchronization on a subset of nodes using cluster groups.

Since 4.x

Sync and distribute resources

Cellar is able to synchronize and distribute applications (features, bundles, non-OSGi application), configuration, or local event.

Since 4.x

DOSGi

Cellar support DOSGi (Distributed OSGi), allowing you to implement remote call between your applications.

Since 4.x

Extras

Monitoring, alerting, and BAM with Karaf Decanter

You need a monitoring solution for Karaf and related ? You need a BAM (Business Activity Monitoring) platform for your application ? Karaf Decanter can be very convenient for you !
Decanter provides ready to use monitoring solution. It's also completely extensible and customizable.

Download » Documentation » View on GitHub »

You can learn more about Karaf Decanter in this ApacheCon talk slideshow by Jean-Baptiste Onofré : View presentation

Architecture

Collectors
Dispatcher
SLA
Appenders

Key features

Collectors

The collectors harvest the monitored data (JMX metrics, log messages, ...).

Since 1.x

Dispatcher

A dispatcher (powered by OSGi EventAdmin) forwarding the collected data to the appenders and SLA.

Since 1.x

Appenders

The appenders receive the collected data and store data into a back end (elasticsearch, cassandra, JDBC, ...).

Since 1.x

SLA

SLA (Service Level Agreement) is a special kind of appender, checking the collected data, and eventually raising an alert (to a back end).

Since 1.x