Cloud 66 First Impressions
Primespot Engineering - June 15, 2020
Have you ever deployed software to production?
If so, you know that it’s hard. A lot can go wrong. Sometimes, the software doesn’t behave at all in production like it does in development.
I have had my fair share of deployment difficulties. I remember the first time I tried to deploy a small Meteor.js app. That was NOT a smooth experience. My experience deploying Ruby on Rails isn’t as bad. But it is more difficult, in my experience, than Node.
Now, if you have looked over the Primespot Blog, you will see that there is a comprehensive web server setup guide. Following this guide will get you most of the way to a production deployment on a VPS. But it will still take you a couple of hours to push through it.
Many solutions have been created to address these problems. The most well-known is Heroku. This article summarizes my first impressions dealing with a Heroku competitor--Cloud 66.
First, let me take a step back and address a few things. There are a few nearly automated deployment solutions for Rails applications on the market. A few of them are Heroku, Engine Yard, Hatchbox, and Cloud 66. The differences between them seem to be maturity, feature set, and pricing. Consider this table below comparing them to each other.
Service | Price | Maturity / Age | Feature Set |
---|---|---|---|
Heroku | Medium - High | Mature | High |
Engine Yard | High | Mature | High |
Hatchbox | Low - Medium | Young | Low - Medium |
Cloud 66 | Low | Mature | Medium - High |
While this list is somewhat opinionated, I think it’s reasonably fair.
Looking at the table, it seems that Cloud 66 is without a doubt the best bang for the buck (second place might be Hatchbox). My experience has been limited to Heroku among these options, though. So I decided to give Cloud 66 a try for Primespot’s newly released Groceezy app.
First steps
Cloud 66 has a very user-friendly and excellent website. It was easy to browse around and understand the highlights of the platform. I was left with a few questions that were difficult to answer. In fact, I had to scour the docs before I fully committed to giving them a shot.
Sign up was easy and didn’t require any payment information. They gave me a 14 day free trial which was nice. From there, the platform started to walk me through the process of deploying Groceezy.
Setting up the application
First, I had to link my Git repository to Cloud 66 using an API key. It was more or less point and click to do this. From there, Cloud 66was able to begin scanning the codebase to see what technology was used to build it.
This process took a couple of minutes. But when it was done, I was presented a list of all the services that would need to be installed on a web server to make the application work. This list looked correct to me, so I pushed on.
Preparing for deployment
The next step was to choose where I wanted to deploy the application.Cloud 66 offers a number of options. I chose Digital Ocean since that is my preferred platform.
Once again, I needed to link an account’s API key with Cloud 66. First it was Github, now it was Digital Ocean.
This process was also mostly point and click. Cloud 66 linked me to the exact pages I needed to visit to accomplish this.
From there, I selected the size of the Droplet (Digital Ocean terminology for VPS) and began the deployment.
The Deployment Process
This process took about 35 minutes. The software started from a bare-metal server with only Ubuntu Linux installed. From there, it configured the entire web server. Here is a non-comprehensive list of some of what was installed and set up.
- SSH
- Firewall
- Nginx
- Nodejs
- Ruby
- A deployment account
- The application
Basically, everything necessary to get the software up and running securely was installed and configured for me. I was able to install an SSL certificate with the click of a button as well.
The Drum Roll
Now that Cloud 66 emailed me to tell me that deployment was successful, I was able to go check it out. I was provisioned a subdomain through Cloud 66 that I could use to test it before pointing my official domain to the newly-created web server.
And...
It all worked. It just worked.
I fully expected to have to spend some time tinkering with my code base to get it ready for production. After all, Rails isn’t the easiest framework in the world to deploy.
I was actually kind of shocked at how easy it was. But it was a very pleasant surprise.
A Few More Notes
The process was about as painless as I could imagine. The pricing at $15 bucks a month for a server is generous. I’d have to rate the service an A+ at this point.
But I stumbled upon another handy addition as well. The Cloud 66Toolbelt. This is a small software download that makes it easier to interact with my web servers deployed with Cloud 66 from the command line. Using this tool, I was able to easily SSH into my web server to poke around and see how Cloud 66 configured everything.
This tool can also be used to view log files on the server with a single command. Sweet!
The Verdict
So far, I’m actually quite amazed at how good Cloud 66 is. I really didn’t expect it to be this painless. I’ll have to spend more time with the service to truly understand its value, but as of now, I plan to use it more.