3.1. Installation

Overview

Mission Control consists of a Java backend server accessed via a web front end. Data is stored in a PostgreSQL database. Mission Control has to run on the same cluster and infrastructure used for the Starburst Enterprise Presto installation it controls.

Installation on AWS

We provide an Amazon Machine Image (AMI) for Mission Control. You can get the latest release in the AWS Marketplace or from Starburst.

With the AMI available to you, launch your EC2 instance and ensure you keep the following requirements in mind:

  • Select your region and other account parameters as desired for the deployment of Mission Control, as well as the overall Presto deployment with coordinator and workers running in one or more clusters.
  • Instance type of t2.small is sufficient.

Alternatively you can use our Cloud Formation template file cft.yml and create the stack in the web interface or from the command line:

aws cloudformation create-stack \
--stack-name "mission-control" \
--template-body "file://cft.yaml" \
--parameters \
    ParameterKey=Vpc,ParameterValue="vpc-123" \
    ParameterKey=Subnet,ParameterValue="subnet-456" \
    ParameterKey=SecurityGroups,ParameterValue="sg-xyz" \
    ParameterKey=KeyName,ParameterValue="MyMCKey" \
    ParameterKey=AppInstanceType,ParameterValue=t2.small \
    ParameterKey=DBInstanceClass,ParameterValue=db.t2.micro \
    ParameterKey=EphemeralDatabase,ParameterValue=yes \
    ParameterKey=AuthenticationTypes,ParameterValue=INTERNAL \
--capabilities CAPABILITY_IAM

Once your Mission Control instance is up and running, note down the fully qualified domain name (host name) and navigate to it in a browser at port 5042 - http://hostname:5042. Now you are ready to proceed to log in and get started.

Mission Control can now manage your data sources and clusters, which replaces the traditional management with configuration files. Our Presto AWS documentation contains more detailed information about connecting to the Presto dashboard and other aspects.

Installation on Kubernetes

Mission Control can be run on any Kubernetes cluster, including Azure Kubernetes Service AKS and Google Kubernetes Engine GKE. It can also be run on other Kubernetes deployments run and managed by your infrastructure team or from other public providers.

We provide a Kubernetes operator that includes references to the necessary Docker containers, helm charts and other resources.

Ensure you have the following files from Starburst at hand:

  • postgres.yaml
  • missioncontrol.yaml

Now start your Kubernetes cluster, which you want to use for Mission Control and your Presto deployment and connect to it with kubectl.

Deploy and start the PostgreSQL backend database.

kubectl apply -f postgres.yaml

Deploy and start the Mission Control server:

kubectl apply -f missioncontrol.yaml

After a short while everything is up and running. Confirm the details of the service with kubectl.

kubectl get service/mission-control-service

Once the server is up and running, take note of the server URL or IP, and proceed to log in and get started.

Mission Control can now manage your data sources and clusters, which replaces the traditional management with configuration files. Our Presto Kubernetes documentation contains more detailed information about connecting to the Presto dashboard and other aspects.

Configuration

The Mission Control application is automatically configured with reasonable default values, as part of the installation process on AWS and Kubernetes.

The configuration can be updated, and is controlled in two separate files:

  • general server configuration in etc/config.properties
  • Java runtime configuration in etc/jvm.properties

Server Configuration in config.properties

The installation methods for Mission Control automatically include a suitable configuration file. Following is list of used properties.

aws.*

The AWS parameters define the AWS system to use.

aws.workspace = s3://example/app/workspace
aws.default-vpc = vpc-123
aws.default-subnet = subnet-456

storage.jdbc.url, storage.jdbc.username and storage.jdbc.password:

The URL, username and password to the PostgreSQL database used by Mission Control for configuration and other storage.

authentication.type and authorization.type:

The sequence of authentication and authorization systems to use. Possible values are INTERNAL, LDAP and GOOGLE. More information can be found in the security section.

environment.type:

Determines the environment used for the Presto deployment. Currently needs KUBERNETES for Kubernetes-based systems and can be omitted for AWS deployments.

LdapServerHost, LdapServerPort, LdapsEnabled and LdapUserBindPattern:

Parameters to define the LDAP server connection to use for LDAP authentication and authorization.

Java Runtime Configuration in jvm.config

The default configuration for the Java Virtual Machine running the Mission Control backend is sufficient. If desired it can be adjusted. Changes require a restart of the application.

-server
-Xmx1G
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseGCOverheadLimit
-XX:+ExitOnOutOfMemoryError
-Djdk.attach.allowAttachSelf=true