InfoWorld review: Engine Yard Cloud

reviews
Nov 30, 20116 mins

Engine Yard offers fine-grained control over all aspects of the environment, at the cost of speed and ease

Although code deployment might not be as easy with Engine Yard as with Heroku, the Engine Yard platform is dramatically more tunable. In fact, in many ways, Engine Yard is closer to an infrastructure as a service (IaaS) than a platform as a service (PaaS). Engine Yard provides a base infrastructure tuned to run Ruby applications, but the rest is up to you. Engine Yard does offer Git integration; however, deployment is not executed via a push, as in Heroku, but rather via Engine Yard’s suite of tools and its extensive dashboard, which can sync with a Git repository.

With Engine Yard, you’re given fine-grained access to a scalable cloud infrastructure living on top of Amazon’s EC2. For instance, you can deploy an application to a target Amazon global availability zone, and you can schedule backups of an application’s data store — neither of which you can achieve with Heroku. You have full access to the underlying hardware via SSH and root access. With this level of control, you have freedom to tweak various aspects of a Ruby application stack that is not available in Heroku’s sandboxlike environment.

By default, an Engine Yard application has a larger capacity to scale when compared to Heroku; an application deployed to Engine Yard lives on a managed EC2 image with a larger memory and storage footprint, while a deployment to Heroku is provisioned to a smaller abstract slice of computing capacity within a managed EC2 cluster. Further, with Engine Yard, you have total control over how much memory or disk space your application has available to it — details that are hidden in Heroku.

Engine Yard: Under the hood Getting started with Engine Yard is slightly different than with Heroku. With Engine Yard, there is no free model; instead, there is a trial, limited to 500 hours. As with Heroku, there is a default configuration for a trial account. In Engine Yard’s case, trial accounts are provisioned a medium compute instance, which maps to Amazon’s High-CPU Medium instance. In essence, this means a trial account receives a dual-core, 32-bit virtual machine that has 1.7GB of memory and 350GB of storage. Data storage is colocated in Amazon EBS.

Engine Yard supports a wide variety of compute options and corresponding pricing other than the standard medium instance. Naturally, the higher the resource specifications (that is, memory and storage), the higher the hourly cost. For instance, on the low end, a small instance — which is 32-bit, with 1.7GB of memory, 160GB of storage (which isn’t backed by EBS), and essentially a single CPU core — will cost 12 cents per hour. On the high end, a 64-bit instance with 68.4GB of memory, 1,690GB of nonpersistent storage, and 26 CPU cores will cost $2.74 per hour. These instances are Unix-based and specifically tuned to run Ruby applications; thus, the price per hour will be slightly more than if you took the same mapping of a raw AWS EC2 instance.

Scaling up in Engine Yard essentially involves provisioning a cluster of compute instances; however, the platform does allow for custom configurations. Thus, once a trial period completes, running an application on a medium compute instance, for example with a colocated database will run you roughly $180 per month. Prices increase once you begin to provision a cluster or leverage a dedicated database.

12388475709251.png12378743819439.png12383030113415.png12376689766719.png12372119206773.png12355113543399.png
Test Center Scorecard
 
  30% 30% 20% 10% 10%  
Engine Yard Cloud 6 9 6 8 8

7.3

Good

Engine Yard’s documentation is excellent. From extensive tutorials to videos to podcasts, the Engine Yard platform is explained in detail at all levels. For instance, there are detailed sections on the overall platform architecture, troubleshooting, dealing with databases, and migrating to the platform, just to name a few. What’s more, the Engine Yard team’s extensive involvement in the community via projects such as JRuby has yielded a host of resources for all aspects of Ruby and Rails development — webinars that educate developers, for instance, on Ruby dependency management via bundler and even beginning Rails development. In short, Engine Yard provides a path for development teams to grow into Ruby, as well as the Engine Yard platform.

Engine Yard supports Ruby and JRuby, offers a separate PHP platform, and recently announced support for Node.js. Indeed, the best-known lead developer of the JRuby project is an employee of Engine Yard. Because the Engine Yard platform provides a raw computing instance with SSH access and root privileges, you are free to install other applications, packages, and languages. Thus, while Engine Yard doesn’t offer the breadth of language support as Heroku, you could certainly add Python applications to an Engine Yard managed instance, provided you wanted to maintain the infrastructure in that case. Nevertheless, the core competency of application support with Engine Yard is primarily limited to Ruby and JRuby. Note that Heroku does not support JRuby at this point.

Engine Yard: Extensive management The strength of Engine Yard when it comes to infrastructure management lies in its extensive dashboard. Nevertheless, Engine Yard does offer a command-line utility for managing most aspects of application deployment. Via the Engine Yard command-line utility, you can deploy an application, disable an application (and re-enable after maintenance), view logs, and SSH to a running instance, for example.

Applications deployed to the Engine Yard platform can be easily monitored via tools provided by Engine Yard. Not only can Engine Yard’s monitoring suite alert you if a Web application stops responding, but you can also view detailed traffic reports. Engine Yard can monitor almost everything a system administrator would want to keep an eye on, including I/O wait time, memory usage, and disk space. What’s more, Engine Yard offers application monitoring via New Relic, which enables detailed analysis of code.

Applications running on Engine Yard have access to a MySQL database instance that is fully functional and available for all management tasks one could conceive with respect to running an RDBMS. You can access this instance from outside Engine Yard, and you can schedule backups and retrieve those backups on demand.

Engine Yard’s extensive management features and fine-grained control over a deployment offer advantages commensurate with long-term maintenance of enterprise applications. The trade-off is that setup is neither as swift nor as easy as with Heroku. Additionally, you aren’t free to play around with Engine Yard for as long as you like. Once your hours in the trial period expire, you must pay to continue with Engine Yard, albeit with a host of extra features.

Compare Engine Yard Cloud with Heroku

This article, “InfoWorld review: Engine Yard Cloud,” was originally published at InfoWorld.com. Follow the latest developments in application development, Ruby on Rails and cloud computing at InfoWorld.com. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

andrew_glover

When Andrew Glover isn't listening to “Funkytown” or “Le Freak” he enjoys speaking on the No Fluff Just Stuff Tour. He also writes articles for multiple online publications including IBM's developerWorks and O'Reilly’s ONJava and ONLamp portals. Andrew is also the co-author of Java Testing Patterns, which was published by Wiley in September 2004; Addison-Wesley’s Continuous Integration; and Manning’s Groovy in Action.

More from this author