Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Cartridge Agent is a component that resides within a cartridge instance and handles the communication between the cartridge and Stratos. Cartridge Agent communicates with Message Broker to publish its state and manage the cartridge lifecycle. Furthermore, it talks to Complex Event Processor (CEP) to send health statistics of the cartridge. Cartridge Agent is generic and can be used in any  cartridge. A Cartridge Agent comprises of the following components as illustrated in the following diagram: Instance Notifier Event Receiver, Health Statistics Publisher, Artifact Deployment Synchronizer and Instance Status Event Publisher. For more information on what Cartridge Agent does and the protocols it uses to communicate with components, see Cartridge Agent Lifecycle.

The Instance Notifier Event Receiver will subscribe to the " Graceful Shutdown " and " DepSync " events that are published to the Instance Notifier topic in Message Broker. Thereby, the Instance the Instance Notifier Event Receiver will assist in the Graceful Shutdown and Deployment Synchronization process. The use of the other components in Cartridge Agent have been explained as follows in the key functionalities that are handled by Cartridge Agent:

  • Application health monitoring
    Health Statistic Publisher will publish the health statistics of the application to application to the real time processing engine, namely Complex Event Processor (CEP). The health The health statistics of the application will include the the current state of the application ports   (e.g., active and inactive).
     
  • Artifact deployment synchronization
    Artifact Deployment Synchronizer will synchronize the cartridge Git repository with the remote Git repository. 
     
  • Cartridge heath publishing
    Health Statistic Publisher will publish the health statistics of the cartridge, which include the memory consumption and load average,   to the real time processing engine, namely Complex Event Processor (CEP).
  • Updating instance status
    The Instance Status Event Publisher will publish events (e.g., member started, member activated etc.) in each boot up instance to the Instance Status topic in Message Broker, which will indicate the current status of the cartridge. As Cloud Controller has subscribed to Message Broker, Cloud Controller will receive these events. Thereafter, Cloud Controller will update the cartridge status (e.g., member started) in the Topology, which is within Message Broker.
     
  • Anchor
    GracefullyShutdown
    GracefullyShutdown
    Gracefully shutdown

    When When Auto-scaler decides to scale down, it will publish the Graceful Shutdown event to the Instance Notifier topic, which is in Message Broker. After the Instance Notifier Event Receiver receives the Graceful Shutdown event, the cartridge instance will gracefully shut down its applications and the Instance Status Event Publisher will notify Message Broker that it is ready to shut down. The following diagram explains the diagram explains the latter mentioned message flow in detail:
    Image Modified

In addition, Cartridge Agent has some extension points: Instance Started Extension, Start Servers Extension, Artifacts Updated Extension, Instance Activated Extension and Clean Extension. Cartridge developers can use these extension points to extend the cartridges in in Apache Stratos. For example, the Instance Started Extension can be used to customize the cartridge at the point an instance has started.