As someone working at an early stage company, your ability to focus on the things that matter is the most important thing you can do. After going through multiple startups, I can tell you that the list of things that matter is very short, and can be summed up as:
- Talking to your customer, and
- Building your product
While building your product involves deploying code to a production environment, everything related to setting up, configuring, and troubleshooting your environment is something you should not be focussing on. Leave the devops work to the experts at Engine Yard, and trust me, you will see significant improvements in velocity.
Over the past five years, we’ve used Engine Yard for two companies. In both cases, they have exceeded all of our expectations for what a cloud deployment provider should do. And in both cases, we started with different deployment providers and eventually made the wise choice of switching over to Engine Yard.
Here are some of the ways Engine Yard can help your company focus on building your product and business, while they take care of the rest.
Proactive Technical Support
Engine Yard’s technical support team is by far the best feature of the platform.
If you’ve faced downtime in a production environment, you’ll know the pain of trying to reach a technical support person, and feeling helpless while you watch your product churn users and dollars.
With Engine Yard, the support team will reach out to you before you even know a problem exists! I can’t tell you the number of times the Engine Yard team has proactively reached out to us to prevent downtime and future failure points in our system. Their willingness to dive into application code with you and help you debug issues is another thing that really makes them really stand apart. In most cases, our Engine Yard support person has been able to spot the specific line of code causing a problem before even we did.
For example, one time, we realized that something was acting up with Delayed Jobs (DJ) during our launch (which happens to have been last week). DJ is our background processor responsible for processing critical tasks like emails to gift recipients. Looking at the DJ records, there were hundreds of jobs backed up and a few failed jobs that were holding up the queue for some unknown reason. The errors were not being saved in the DJ database, which meant Engine Yard support had to dig into the DJ system logs to identify the root cause.
Within minutes, the Engine Yard support team spotted the errors and told us, specifically, which jobs that were causing the problem. I can tell you after looking at the logs myself, I was not able to spot the issues until the Engine Yard team told me what to look for. Delayed Jobs was back up and running smoothly within 30 minutes.
(Special thanks to Ralph Bankston and Kevin Rutten from the support team who have helped us countless times over the years. This is just one such example!)
We live in a world today where you can plug in a third-party gem or library for just about every part of the experience that is not core to your product. From handling payments, logging, SMS messaging, transactional and marketing emails, performance monitoring, user management, and push notifications. In fact, if you are building any of these things on your own, you are probably not focussing on the things that matter.
While most Ruby on Rails deployment platforms support a variety of add-ons through Bundler, Engine Yard excels goes further than this by seamlessly supporting custom libraries and packages. For example, we use specific video and image processing libraries to power our video greeting card feature. Adding libraries like FFMPEG and ImageMagick can be a painful experience with other other providers, but with Engine Yard it can be accomplished in 5 minutes with one line of code in a Chef recipe and a redeploy. The same applies for a performance monitoring tool like New Relic, where the integration is seamless and data can be accessed right from your Engine Yard dashboard.
Flexibility and Control
In the end, I’ve learned that scaling an application is a combination of art and science. It’s never as simple as “add more boxes”, although that can alleviate a number of issue in the short-term. At some point in the growth of your company, you will learn the application specific bottlenecks causing you problems, and you will need full control over your environment if you want to scale it accordingly.
Engine Yard makes things seamless and easy, while still providing you with root access to your instances. Engine Yard doesn’t make you trade control for automation & ease of use.
I may be biased but I’ve tried other platform providers and I can tell you,without a doubt, that I am an Engine Yard customer for life.
Whether you have serious devops skills or not, Engine Yard is a great platform for helping you focus on the things that matter as you build your product.