GridGain Developers Hub

Code Deployment

You may want to deploy dependencies to your GridGain nodes.

With GridGain Nebula, you can quickly deliver all dependencies you need to your cluster by using Deployment units. Each deployment unit contains a list of dependencies that is passed to the cluster and stored in the metastorage. When you deploy a version, all nodes in the cluster receive the list of dependencies and download them from the specified repository or URL.

For code deployment to work on attached clusters, make sure to provide ADMIN_OPS permissions on them.

How to Start With Code Deployment

  1. Enable the event driven service processor on every node in the cluster. To do this, set the IGNITE_EVENT_DRIVEN_SERVICE_PROCESSOR_ENABLED to true:

    export IGNITE_EVENT_DRIVEN_SERVICE_PROCESSOR_ENABLED=true
  2. Configure ManagedDeploymentSpi in your project. This will allow Nebula to deploy code to your cluster:

    <bean class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="deploymentSpi">
            <bean class="org.gridgain.control.agent.processor.deployment.ManagedDeploymentSpi"/>
        </property>
    </bean>
    IgniteConfiguration cfg = new IgniteConfiguration();
    
    ManagedDeploymentSpi deploymentSpi = new ManagedDeploymentSpi();
    
    cfg.setDeploymentSpi(deploymentSpi);
    
    try (Ignite ignite = Ignition.start(cfg)) {
        //execute the task represented by a class located in the "user_libs" directory
        ignite.compute().execute("org.mycompany.HelloWorldTask", "My Args");
    }