Skip to main content

Quick Start

Use this guide to get up and running on Cycle:

  1. Make An Account
  2. Create A Hub
  3. Import An Image
  4. Create An Environment
  5. Deploy A Container

Creating an Account#

Navigate to the Cycle portal and click on "Sign Up".

To complete signup, a user needs to add a valid email address, their name, and a password. Cycle will send a verification code to the email entered. Once the account is verified the user can log in and create their fist hub or join an existing hub.

Hub Create#

Once logged into the new account, a hub can be created.

Hub Name#

A hub is used as a way to show that a space is fully isolated from another. Naming a hub should reflect that. For example: SaaS products will generally use the name of the product as the hub name, where-as, developement teams completing projects as third party contractors will often times use the client name for some hubs, while using their company name for their main workspace.

Hub Tier#

Hub tiers are how you define how much storage and RAM your hub will need. Each tier is tailored towards a hub size. If you choose a tier with too many resources Cycle will automatically scale your billing to a lower tier at the end of the month. Click here to find out more about tiers.

SLA

For businesses needing an SLA agreement please contact our Director of Customer Success, Chris Aubuchon at chris@cycle.io.

Select Provider#

On this step simply select the initial provider(s) to be set up for this hub. Every hub must set up at least 1 provider in order to meet the hub create requirements.

Add API Keys#

In order to add a provider to Cycle, certain resources are needed from each provider. On this page the resources needed are listed.

Also, for each provider there is a helpful guide shown on the hub create step where resources are added. Just click the dropdown under the resource form for any provider to engage with the guide.

Billing Information#

For paid tiers there will be a billing page asking for the user to set a primary payment method.

Enter the credit card information you want to use for this hub. Your card will be charged at the end of your billing cycle, every 28 days.

info

If you need to arrange alternate payment methods, please reach out to our support team.

Deploy#

The final step is to deploy infrastructure. This is the most important step because without running infrastructure there will be no resources available to run containers.

Luckily, with Cycle, this is incredibly simple. Just select a provider from the Providers dropdown menu, then select a location for the server.

On the next page add server(s) to your order summary and then click Deploy This Infrastructure.

Hold To Deploy

Many buttons in the Cycle portal are "Hold to Use". This means its required that a user hold the click until the circle on the button completes. This is meant to safeguard users from accidentally clicking on things that can drastically change the state of a program or cost money.

Whats A Cluster?

Wondering what the "Cluster" setting is for? After finishing this guide, checkout our page on Clusters to learn more.

Create An Image Source#

Now that the hub has been created and a server is online (give it a few minutes if its not online already) - the next step is to create an image source.

Navigate to the images dashboard by clicking on Images in the left hand navigation, then select "Add Image Source" in the top right of the screen.

For this quick start, the image to use will be the DockerHub type. Name the image whatever you'd like and in the Image Name field enter cycleplatform/getting-started. The tag can stay as latest, as that is the desired tag for this image.

Click Create Source to continue and on the next screen press the Import Image button. The getting started image will import from DockerHub and show in the list of images created from this image source.

Create Environment#

An environment is a private network group for your containers, that includes 3 preconfigured services:

  1. A Loadbalancer
  2. A Discovery service
  3. A VPN

To create and environment:

  • Click the Environments tab on the navigation menu to the left.
  • In the top right corner, select the Create Environment button.
  • In the form, enter a name for this environment (usually the name of your application you are building) and an optional description.
  • Click Create Environment. You will be taken to the environment dashboard.

Default or Stack#

When creating a stack there is an option to create the environment with a stack. Selecting this option will prompt the user to select both a stack and a stack build to use for the initial deployment of the stack to the environment upon environment creation.

Selecting Default will create the environment without any initial user containers.

Legacy Networking#

If legacy networking is selected during environment create, Cycle will give each container instance an IPv4 address alongside the default IPv6 address. These addresses have a maximum of 255 per container as the reserved space is a /24 on the 10.* IPv4 address space per container.

The discovery service in a legacy environment will still return IPv6 addresses for lookups if they are requested, so containers listening on IPv6 can still be reached. However, Cycle does not exclude them from the IPv4 allotment and as such the maximum of 255 instances is still in place.

Deploy A Container#

The final step is to deploy a container to your environment. Cycle's intuitive container deploy wizard makes this a simple task.

From the dashboard of the environment that was just created click on the Deploy Container button in the top right of the screen.

Container Name#

The name of a container is for user purposes only, and doesn't affect any other aspect of the container. However, on this form, Cycle will automatically prefill the hostname of the container with a formatted version of the name for convenience. You are free to change the hostname without affecting the name.

State#

Choose Stateful or Stateless for your container.

Stateful containers use a mounted volume to persist data between restarts. Stateless containers do not persist any applications generated state between restarts.

Initial Instances#

The instance slider tells Cycle exactly how many copies of the container you want to run when it starts. Based on the deployment strategy you set, Cycle will automatically balance the instances across your cloud.

Deployment Strategy#

Depending on the tier you've chosen you may have access to different advanced deployment strategies. Choose a deployment strategy for the container. Each time an instance of the image is created Cycle will follow the deployment strategy when choosing a server to start the container on.

Platform Default#

The platform default is currently Resource Density, but by choosing Platform Default you are saying that you would like Cycle to decide what the deployment strategy will be going forward.

Resource Density#

The Resource Density deployment strategy looks at the servers and deploys instances based on the resource usage of servers that match tag constraints.

High Availability#

The High Availability deployment strategy will spread out the instances as much as possible across the infrastructure.

Manual#

The manual deployment strategy give you full control over where your instances are deployed an unlocks the ability for a user to delete individual instances.

First Available#

The First Available deployment strategy will deploy the instances to the server that is available first.

Tags#

If you want to be descriptive about which servers this container will be deployed to use tags.

Any Tags- Instances will deploy to any server with at least one of the tags listed.

All Tags- Instances will only be deployed to a server that has every tag listed here.

Image Select#

In the Image section of the deploy container form, the user will choose to use an existing image source or select a recently imported image.

In a previous step, the getting-started image was created and imported. Click the Recent Imports box and select that image from the dropdown.

Network Settings#

The network fields describe the network settings preferred for the container instances.

Public Network#

There are three types of network privilege a container can have:

  • Disabled - Public internet access is completely disabled for this container. It may only communicate with other containers within the same environment. This is ideal for sensitive things, such as databases.
  • Egress Only - The container may initiate connections over the internet, but all incoming connections will be blocked. This is ideal for things that require fetching data from the web, but do not need to respond to inbound requests, such as web scrapers.
  • Enabled - The container is able to both start and accept connections over the internet. This is a must for websites, APIs, and other services where clients may not be known ahead of time.

Hostname#

The hostname is the string that all other containers within the same environment can refer to it by. It must be lowercase, and only contain letters, numbers, and hyphens.

For the getting started image change the Public Network field to Enabled. The hostname and port mappings will be automatically filled in.

Click Create Container to continue.

Starting The Environment#

Press the esc key to exit the container modal from the getting started container that was just created. This lands on the environment's dashboard. In the top right corner of the screen find the start button (looks like pressing play) and hold that down to start all containers in the environment

To visit the running container, click Containers from the horizontal navigation and then the name of the container to open the container modal. On the container modal dashboard there is a value called domain. Copy that url and paste it into a browser to view the getting started with Cycle page.

Global Vs. Single

The start and stop container(s) button can start both "all" containers in an environment and a single container depending on the current scope. If you are in a container modal, the start and stop will start and stop the specific container displayed in that modal. Outside of the modal, the start and stop acts as a global environment start and stop and will effect all containers in the environment.