Hosting Architecture
24 layers of technology and people that give you business advantages.
In designing Engine Yard, we designed a full stack of services and technology to serve our customers around the clock and for years to come. About half of the 24 separate resources that form an Engine Yard slice are physical components and the other half are business services. The layers shown in purple and red are things you can touch—actual physical resources that you get with each Engine Yard slice. The other layers represent components that customers also value including good security, solid financials, and a respected data center.
Your Rails application runs in your own dedicated Application Servers layer. It runs up to 4 Mongrels devoted to your application and your application only—no databases, no email sending, nothing else. All of the other important resources included in your slice price are provided by completely separate systems devoted to their respective tasks.
In the end, most of our customers find the human side of things even more important than the technology. They know they’ve got some of the best Rails deployment experts working to support their critical applications.
Whether you deploy with two slices, a fractional cluster, or dedicated clusters, your business benefits from Engine Yard’s commitment to excellence in:
Experience
We have been involved in internet infrastructure since 1998 and in Rails since 2004 with a strong focus on deployment.
People
Our staff is genuinely concerned about the performance of your Rails applications. Service and performance is our number one priority. We also offer access to great Rails people through our relationship with Quality Humans, Inc. QHI provides on-site Rails staff and employees.
Cluster Technology
Our cluster architecture provides high availability and long-term scalability. The system is constantly being refined in areas that help your business, such as web server performance, database efficiency, and security.
Data Center
Tier 4, class A data center. 24/7 staff and a robust infrastructure provides a solid foundation for Engine Yard.
Automated Tools
Version control (Subversion), deployment (Capistrano), database management (Migrations), and automatic off-site backups of your database and Subversion repository every 24 hours.
Cluster Technology
Our Rails cluster computing platform was designed by our top three architects: Tom, Ezra, and Jayson. This team has over 30 years of combined practical experience in Internet-focused computer science, from the Linux kernel and networking to Rails deployment and large-scale web scaling.
Each cluster contains fully redundant hardware and software to provide reliability and scalability. Some resources are shared (e.g. the benefit of shared load balancers and SAN storage) while others (e.g. dedicated application servers) are dedicated to each customer (see shaded cell in Diagram #1).
Whether you need a complete cluster dedicated to your apps or you are too early in your app’s life cycle to need a cluster, we can help you. Why pay for a whole cluster when 5% is all you need today? We have slices that are customizable to your needs.
Cluster Slices
One of the technologies used in our cluster architecture allows us to “slice” the cluster into smaller units that are great for deploying most Rails applications.
Each slice includes access to MySQL or Postgres servers elsewhere in the cluster, which are replicated to avoid data loss. The contents are then backed up to Amazon S3. Additionally, we use recognized experts to keep our databases efficient and tuned specifically for Rails applications. Each slice also includes access to SMTP email servers, SAN storage, SVN version control (with included offsite backups of SVN!) and 15 email accounts.
Every slice consists of an average allocation of computing resources that have proven to work well for the majority of our customers. Over time, we adjust resources as needed.
Here are the average resources allocated solely to the application-serving segment of a single slice:
- 100% utilization of 1 CPU core
- 4 Rails application servers (e.g. Mongrels)
- 768 MB RAM
These other resources are allocated at the overall slice level:
- Up to 250 GB/month bandwidth
- Up to 45 GB storage
- Up to 15 email accounts
Slices can be added and removed as your needs change. As you do so, resources change linearly.
Minimum 2 Slices for Multi-Server Redundancy
The application server portion of each slice exists on 1 physical server, so at least 2 slices are required to achieve complete hardware redundancy for a given deployment environment.
Security
Engine Yard's data center is SAS 70 Type 1 compliant. We take several extended security measures outside our data centers' physical access requirements:
- All sysadmins use individually generated public/private key-based authentication which are more secure than passwords.
- Our network is structured in a way that each slice cannot capture traffic destined for other slices. This is a very substantial security benefit.
- We only allow traffic bound for ports required to run your application to reach your slices.
- Customers have full SSH access to their slices via a non-standard port number. Access is also from an alternate IP and subnet rather than the site’s public IPs.
Download our Security Overview (PDF)
Environments
A good web deployment process usually has at least two environments:
- Staging
- Production
Website changes are tested in Staging, and if all goes well, changes are pushed to Production. Public users can see the Production website, but typically not the Staging website. This process allows your development team to roll out application features and changes without disrupting live users on your website.
You can define any number of environments to suit your deployment process. You can name them anything you like and you can allocate one or more slices to each environment. Most customers set up the following 3-slice configuration when they start a new project:
1 Slice → Staging
2 Slices → Production
This provides reasonable resources for their Staging website, and 2X resources plus multi-server redundancy for their public website.
(click for full size PDF)