Getting started with Maestro

Maestro is a full container management service. Once your images are ready we'll take care of deploying and managing your containers and infrastructure (servers, load balancers, etc).

What you’ll need

Before you start, please check you have the following:

An account with your cloud provider of choice. Cloud 66 supports AWS, Google Cloud, Azure, Linode, DigitalOcean, Packet, Rackspace and Cloud A.

Lets Get Started

This guide assumes that you already have container images that you want to deploy. If you need to learn how to build images or pull existing images from a repo please read Getting started with Skycap.

Deployment Setup

To get started with your deployment—drill down to your app's overview page and click Setup a Deployment.

Start a new Maestro Deployment

The first step involves choosing an environment for your application.

Select an environment for your new Maestro Deployment

Please choose from the standard list of environments:

  • Development
  • QA
  • Staging
  • Production

Configuring Services

In the example below the application is composed of a single Rails service. This is a web app so we need to configure the Rails service to handle web traffic.

Click the connector to configure networking

At the moment 0 services are connected to the Internet. We need to change that so click on the plug icon circled in red.

Container Network Configuration

The Rails service will run inside a container, we need to configure the container to respond to web traffic. A standard web server listens on port 80 for HTTP traffic and 443 for HTTPS traffic.

The Rails app listens to port 3000 so we should map the container port 3000 to the public Internet ports 80 and 443.

To accomplish this we enter the following information:

Configuring docker container and public ports

Containers can also serve non HTTP traffic. TCP and UDP protocols are also supported. Learn more about advanced Container Port Mapping

Adding Data Sources

The Rails application also needs a database. This is a production app so we'll deploy the database to a separate MySQL server.

Add a new database server to your stack

Add another server

Click the Add Another Server button and a new data source server will appear above.

Next click the Add Data Source link.

Adding data sources to your stack

Adding Data Sources

Select the data source you need to install on this server. In this case select MySQL.

PostgreSQL, MongoDB, Redis, Elasticsearch, RabbitMQ, GlusterFQ, InfluxDB are all supported as data sources.

Now the Rails app is configured to run in a container and we've setup a separate MySQL database server. All that remains is to decide what cloud provider to use and what server size and region we should deploy to.

Choosing a Cloud

Choose a cloud and region

Now we need to choose a cloud provider for the deployment. We'll use DigitalOcean and deploy the application to the London, UK region.

You can also deploy to your own servers. First you need to add them as registered servers.

Configuring Server Size

The server size can be set by clicking on the cog at the top right of each server.

Configure Server Size
Configure Server Size

In production environments we suggest using a server with at least 1GB of memory and 4 cores. Learn more about choosing the right size for your servers.

Deployment

Now everything is ready to go, just hit the Deploy Stack button.

If this is your first deployment you'll be prompted to enter your cloud key credentials, once you've added these the deployment will begin.

During the build and deployment process you can view the log to see what's happening behind the scenes.

Deploying your application

Advanced Features

Information that defines how your application is deployed is accessible from manifest.yml. You can edit this file directly if you need to access advanced deployment features. For example advanced configuration of Cross-Origin Resource Sharing or Amazon Virtual Private Cloud and more.