Contents

Overview

This document provides a step-by-step guidance on how a GridGain cluster can be deployed and used in a Microsoft Azure environment. In Microsoft Azure Marketplace, you can only deploy the GridGain Enterprise Edition which includes valuable features added to Apache® Ignite™. These features make deploying and maintaining a high-performance in-memory computing environment easier.

Microsoft Azure Cluster Deployment

If you want to deploy your application code and configurations automatically (at the same time when the cluster is being deployed), then please refer to the Custom Application Deployment section first.

Prerequisites

  1. An existing Microsoft Azure account. This account should have an active Azure subscription.
  2. Sufficient cores quota.

    Note that the default Microsoft Azure quota is low at only 10-20 cores per subscription. You can refer to the Microsoft Azure documentation for more details.

Steps

  1. In Microsoft Azure Marketplace, use search to find and select the desired GridGain offer.
  2. Click the Create button.
  3. Wait until your Microsoft Azure portal opens and loads the deployment configuration page.
  4. Set the following parameter values and click OK at the respective settings’ screens:
    • Configure basic settings, including (but not limited to):
      • Region (location)

        Note that if you decide to use the custom storage account, then the region should be the same as that of the account.

      • Resource group

        It is recommended that you create a new group. The system allows you to reuse an existing group, but you should avoid this unless you fully understand what the group is for and why it should be reused.

    • GridGain cluster settings, including (but not limited to):
      • Cluster size

        Note that the value of the cluster size should not exceed 200. Also note that this is the limit of hosts and that one host can run more than one GridGain node.

      • Storage account prefix

        This parameter must be changed from default and should not be empty. It provides a unique namespace for storing various resources used by the cluster.

        Note that this does not relate to custom storage.

    • Custom storage settings (optional, used in cases where the application data will be deployed as well, see Custom Application Deployment)
      • Custom storage account name
      • Custom storage share name
      • Custom storage account key
  5. After previous configuration sections are completed, the portal moves to the "Summary" screen.

    At this screen, the configuration is being validated and you may need to wait for some time.

  6. Wait until the Purchase window opens and preloads the content.

    Review Legal Terms and Privacy Policies and if you agree with them, click on the Purchase button.

    Wait until the cluster deployment is completed. This may take up to 10-20 minutes, depending on the size of your GridGain cluster.

After Deployment

After the cluster is deployed on Microsoft Azure, you will find the following directories on the hosts:

  • The GridGain content used in deployment is in the folder /usr/local/bin/gridgain/downloads
  • The GridGain installation is in the folder /usr/local/bin/gridgain/gridgain-enterprise-fabric-{version}

Accessing Deployed GridGain Cluster

SSH Access

In the deployed resource group, VM "gtwvm" has a public IP address (shown in the Microsoft Azure portal):

  • ssh to this public IP address using the credentials that were provided at Cluster Deployment Stage above.
  • sudo su if needed.
  • From gtwvm ssh to other cluster hosts in "nodvm*" VMs with the same credentials.

    You can find private IP address of the host (10.0.0.*) in Microsoft Azure portal in the settings of the VM under sub-section Network Interface.

Launching a GridGain Node

After connecting to the Azure cluster nodes, you can start a GridGain node. For that,

  1. Go to /usr/local/bin/gridgain/gridgain-enterprise-fabric-{version}/bin
  2. Start the node using ./ignite-azure-example.sh command. After that, you should see that the GridGain node is up and running.
  3. To allow GridGain nodes to discover each other and form a cluster, refer to the Cluster Configuration page that can help you setup Static IP based Discovery, JDBC Based Discovery or other type of discovery for your Azure deployment.

Custom Application Deployment

Your application may need additional configuration files, libraries, and scripts to be deployed on the GridGain cluster nodes. There are two ways to provide these:

  1. By manually copying the required files to the nodes (which are remote Linux hosts) after the cluster is deployed to Microsoft Azure. This way, you do not have to define the parameters for custom storage account when configuring the GridGain deployment.
  2. By automatically copying the required files from your storage account at Microsoft Azure, when the GridGain cluster is deployed. For this, you need to create a Microsoft Azure storage account, upload the files intended for copying to that account, and configure GridGain deployment to use it with the custom storage account settings.

The instructions below describe the deployment procedure in case you choose to use the custom storage account to deploy your application files.

This option allows you to override the default configuration libraries and scripts in GridGain deployed on Microsoft Azure using a Microsoft Azure storage account. Note that this is completely optional. If no storage account is provided (configured), GridGain will deploy using all the default settings and configuration.

Prerequisites

  1. Microsoft Azure storage account.
  2. Storage account region should be the same as that of the planned GridGain cluster deployment.

Steps

  1. Create file share in the Microsoft Azure storage account.
  2. Create "gridgain-custom" directory at the top level of the file share.
  3. In the gridgain-custom directory, create sub-folders config, libs, bin, and ssh_keys as necessary. All folders are optional. Note that these folders are named the same way as they are named in the standard GridGain Enterprise Edition distribution.
  4. Upload your application files in the respective subfolders listed above.

    Note that the files from config, libs, and bin are copied to the respective GridGain installation folders during deployment.

    Also note that the files from the libs are added to classpath.

    Optional file bin/ignite-azure.sh, if present, will be automatically invoked after the deployment is completed.

    In the config folder, if a non-standard GridGain configuration is provided, the IgniteConfiguration entry must contain the following user attribute for correct licensing:

    <property name="userAttributes">
    <map>
    <entry key="iaas.vendor" value="azure"/>
    </map>
    </property>

    Files from ssh_keys are copied into /home/gridgain/*.ssh folders on all hosts in the cluster. Files authorized_keys, id_rsa, and id_rsa.pub get specific permissions allowing them to ssh between hosts without prompting for a password. Note that if you pick a username other than gridgain you will have to take care of copying the ssh keys yourself.

  5. Write down your Microsoft Azure storage account name, share name, and account access key. These will be deployment parameters:
    • Custom storage account name
    • Custom storage share name
    • Custom storage account key

    Refer to section Microsoft Azure Cluster Deployment that describes cluster deployment process after the custom storage with application data is ready.

Note that Microsoft Azure provides two access keys. Your GridGain deployment assumes that you use key1.

During deployment, the custom storage file share (if provided) is mounted to /mnt/gridgain-custom-storage/gridgain-custom

Application Usage Notes

  • Note that the deployment of the cluster nodes may take quite a long time and nodes can start at different times. It is only when the cluster deployment is completed that you can be sure that all the nodes have started. This needs to be taken into account if you are using Custom Application Deployment. In particular, if you intend to run the application only after all nodes are up, you must refrain from automatically launching the user application from a custom script that executes at the time of deployment, and instead start it manually after the deployment is completed.
  • If needed, your scripts can use ${HOSTNAME} to determine which host they are running on. "gtwvm" is the name of the gateway host. Other hosts have names "nodvm0", "nodvm1" etc.
  • Environment variables that are necessary for GridGain to run on cluster nodes are as follows (make sure to apply the correct version in the paths of your custom scripts if any):

    export JAVA_HOME=/usr/lib/jvm/java-8-oracle
    export IGNITE_HOME=/usr/local/bin/gridgain/gridgain-enterprise-fabric-{version}
    export GRIDGAIN_HOME=${IGNITE_HOME}

Deploying GridGain Using Docker

For information on deploying GridGain using Docker, refer to the following sections of the GridGain documentation:

Troubleshooting Your Azure Deployment

GridGain Systems offers 14 days of free GridGain Standard Enterprise Support to new organizations that deploy the GridGain Enterprise Edition on Microsoft Azure through the Azure Marketplace. This offer is limited to one 14-day period of free support per organization. Our standard annual support subscriptions are available at any time. Just complete the form to register for your 14 days of complementary support services.