The Best Way to Deploy and Maintain a Rails Application

Cloud 66 is how the worlds best Rails companies deploy and maintain their applications.

Deployments Built for Rails

Secure, Scalable and Easy to Manage

Rails is an great framework to build web applications. It set strong conventions that make it easy to build apps.

Instead of building a generic deployment tool for all frameworks, Cloud 66 for Rails is built specifically for Rails and its needs, using the same conventions and patterns that Rails uses.

Over the past 12 years, we've built all the features you need to deploy, scale and manage a secure Rails application on any cloud.

River Island
Disney
CareerBuilder
Epic Games
Timbuk2
Discovery Channel
Glossier
Canva
Ardan Labs
RedwoodJS
River Island
Disney
CareerBuilder
Epic Games
Timbuk2
Discovery Channel
Glossier
Canva
Ardan Labs
RedwoodJS
Descartes Systems
Lufthansa
UC Berkeley
Northwestern University
George Mason University
Ritual
Spoon University
Web Summit
Usborne
Pixar
Descartes Systems
Lufthansa
UC Berkeley
Northwestern University
George Mason University
Ritual
Spoon University
Web Summit
Usborne
Pixar

Packed with features for Rails

Secure and Scalable Rails deployments on any cloud

Rails specific requirements for a production ready environment include support for Asset Pipeline Compilation, ActionCable (websocket) ready proxy, support for upgrades for Ruby and NodeJS, database migrations and more.

Here are a few of the features that make Cloud 66 the best way to deploy and manage your Rails applications:

Deployments

Different methods of deployment for different use cases, supporting fast and safe deployments.

SerialSerial
Serial Deployment deploys your code one server at the time. This is the safest way to deploy your code, but it takes longer to complete. You can define tests to ensure each server is healthy before moving to the next one.
ParallelParallel
Parallel Deployment deploys your code to all servers at the same time. This is the fastest way to deploy your code, and combined with code and endpoint tests, it is a zero-downtime deployment method.
RollingRolling
Rolling Deployment deploys your code to a subset of servers at the same time. This is the safest way to deploy your code, and it is faster than Serial Deployment. You will need at least 3 servers to use this deployment method.

Rollout Strategies

Experiment with different versions of your code before rolling out to all servers. The most simple way to use a Blue/Green or Canary deployment strategy without any additional tools.

NoneNone
This strategy rolls out the latest code to your servers, sends new traffic to the new code and drains the old code from any existing traffic.
Blue/GreenBlue/Green
Blue/Green deployment deploys your code but keeps a copy of your old code serving traffic. You can choose to send new traffic to the new code or keep sending traffic to the old code and switch when you are ready.
CanaryCanary
Canary deployment deploys your new code and sends a small percentage of your traffic to the new code. You can choose to increase the percentage of traffic to the new code or roll back to the old code if you are not happy with the results.

Autoscaling

Respond to changes in traffic with automatic scaling of your web servers and reduce costs by scaling down when traffic is low.

Autoscaling

Cloud 66 can automatically scale your web servers based on real user experience metrics like HTTP Response Time or conventional metrics like the CPU or Memory usage of your servers.

Setting up an Autoscaling rule is as simple as declaring your desired value for a specific metric. This metric will be calculated across all your servers to drive automatic scaling decisions.

All scaling decision are logged and audited so you can debug and see your Autoscaling rules in action.

Preview Deployments

Deploy a new instance of your code every time you push a new commit to your repository so your team and clients can preview the changes you're making.

BranchBranch
Branch deployments are triggered when you push a new branch to your git repository. This is useful for testing your code before merging it to your main branch.
Pull RequestPull Request
Pull Request deployments are triggered when you open a new pull request on your git repository. This is useful for approvals of your code before merging it to your main branch.
TagTag
Tag deployments are triggered when you push a new tag to your git repository. This is useful for deploying a specific version of your code or for deploying a release.

Security Updates and Patches

We automatically patch your servers and deployed components with the latest security updates so you can focus on building your product.

Security Patching

Cloud 66 automatically patches your OS and packages with the latest security updates. You can also choose to patch your servers during a deployment.

If you have more than one server, the patching and restart will ensure zero downtime by applying the patches one server at the time and running various checks on the servers before putting them back online.

Deploy Your First Application Today

Monitoring and Health Checks

Cloud 66 monitoring and health checks, check the health of your servers during and after each deployment and contiously monitor them from different locations around the world.

During deployment your defined tests run to ensure your application is healthy before moving to the next server. This guarantees that your application is healthy before it starts receiving traffic and there is no downtime as a result of a failed deployment.
During Deployment Health Check

Environment Variables and Secrets

A central place to manage your environment variables, configuration parameters and secrets for your applications, that comes with team access control.

Auto GeneratedAuto Generated

All needed environment variables for the deployed components are automatically generated. For example if you have MySQL as your database,MYSQL_ADDRESS, MYSQL_USERNAME, MYSQL_PASSWORD and other variables are automatically generated for you.

Version ControlledVersion Controlled
Environment Variables are version controlled and any changes to their value will is tracked and can be reverted using the API and the CLI toolbelt.
EncryptedEncrypted
Environment Variables are encrypted during transit and at rest using the latest encryption standards and can only be decrypted by with your account's private key.

Version Controlled Configuration

All components deployed by Cloud 66 on your servers are the ones your team would have picked if you wanted to manage them manually. They also come with a git backed version control for your configuration files so you can make changes confidently.

Sometimes you need to make changes to your configuration files. We don't want to take that away from you. We also want to make it easy for you and your team to make those changes in a controlled and safe way and across all your servers at the same time.

All components installed and configured by Cloud 66 on your servers have their configuration files accessible via a git backed version control. Any changes you make will be sent to the server and tested before going live, and you can always rollback to a previous version.

All configuration files also benefit from ongoing security updates and patches, applied by Cloud 66.

We call this CustomConfig

SSL Certificates

Managed CertificatesManaged Certificates

All endpoints of your application and API are automatically protected by SSL certificates issued by Let's Encrypt for your domain. These certificates are automatically renewed and managed by Cloud 66.

Wildcard CertificatesWildcard Certificates

Wildcard Certificates are automatically issued for your domain and all subdomains. These certificates are automatically renewed and managed by Cloud 66. We support a wide range of DNS providers.

Bring your own CertificateBring your own Certificate

If you prefer to use your own SSL certificates, you can upload them to Cloud 66 and we will install them on your servers for you. Intermediate certificates are also supported.

Automated Testing (CI) Integration

Pre-CI IntegrationPre-CI Integration

If you have a CI system, like Github Actions, Jenkins, CircleCI, etc, you can configure Cloud 66 to trigger a deployment after your CI pipeline is completed. This is useful for testing your code before merging it to your main branch.

Post-CI IntegrationPost-CI Integration

You can also start your CI flow, after your images are built by BuildGrid. This can be useful when you want to test your application in a production-like environment.

Github IntegrationGithub Integration
While Github is not the only git provider we support, we have a Github app, for better integration. By connecting your account to github, you can see the deployment progress and logs directly on your pull requests.

Failover and Disaster Recovery

The worst time to find out that your failover and disaster recovery plan doesn't work is when you need it the most.

That's why we built FailoverGroups, a feature that lets you deploy the same code across multiple servers, regions or even clouds and switch between them with a single click or API call.

Combined with database replication and monitoring features, FailoverGroups give you the control and simplicity you need during an emergency.

Perfect for Rails

Asset Pipeline CompilationAsset Pipeline Compilation
There are many ways to compile assets in Rails and we support all of them. We also support preferred compilation servers and CDNs like Cloudflare and Cloudfront.
Zero Downtime DeploymentsZero Downtime Deployments
Cloud 66 can deploy your applications without downtime and use user-defined tests to ensure your application is healthy before moving to the next server.
Automatic Database MigrationsAutomatic Database Migrations
Database migrations in Rails are executed and tested automatically before deployments. This can also be combined with specific backup strategies to ensure your database is always in a good state.