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:
A Cloud 66 Account — If you don't already have one, sign up for a Cloud 66 account. There is a free community plan and you'll get full unlimited access to all products free for 14 days.
Container Images to deploy — These can be images you've built with Skycap or your own pre-built images that are hosted in an image repository.
A Cloud Account or Your Own Servers — See below.
An account with your cloud provider of choice. Cloud 66 supports AWS, Google Cloud, Azure, Linode, DigitalOcean, Packet, Rackspace and Cloud A.
Registered servers are a great way for operations teams to manage and allocate physical server resources for consumption by dev teams. Registered servers are essentially a pool of your own servers on a private or public cloud that can be used on any stack and configuration. For more information on how to add your own registered servers, we recommend this tutorial.
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.
To get started with your deployment—drill down to your app's overview page and click Setup a Deployment.
The first step involves choosing an environment for your application.
Please choose from the standard list of environments:
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.
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:
- Container Port: 3000
- Public Internet Port: http:80, https:443
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 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
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
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.
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.
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.
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.