Technology stack built through continuous integrationEngine Yard Cloud is based on open source technologies and automates the deployment and configuration of applications. Various software components are optimized and continuously managed to ensure stack consistency, quality and ongoing compatibility with applications. Engine Yard Cloud delivers:
- Pre-integrated, pre-tested technology stack, including web, application and database servers, built-in monitoring and process management, an Engine Yard optimized Linux distribution (Gentoo), in-memory caches and more
- Databases such as PostgreSQL, MySQL and hosted options
- Wide range of Application Server and Framework choices for Ruby, Node.js and PHP applications. Visit the Engine Yard Cloud Technology Stack page for detailed version support
Dedicated tenancyYour environment is isolated from other customers, is self-contained and includes dedicated compute, storage and database services. Unlike other PaaS providers, Engine Yard gives you full control over your instances. When you request an environment, Engine Yard Cloud:
- Boots one or more fresh AWS instances (virtual machines)
- Automatically provisions and configures the instance(s) with your application code and the platform components you have configured
- Deploys the instance(s) independently of Engine Yard Cloud, such that in the event that Engine Yard Cloud becomes inaccessible, your instances will continue to run. In other words, Engine Yard never gets in between your app and your users
Self service provisioningThe Engine Yard Cloud dashboard allows you to add and remove instances on demand. Our Cloud dashboard makes it easy to:
- See the status of your application
- Add and remove capacity
- Deploy new application versions
Fine grained control over your environmentEngine Yard Cloud offers a wide range of control over the configuration, deployment, and management of your application environment. You control everything from where your application is deployed to configuring the software stack.
- Install or configure custom software via Chef recipes (e.g. MongoDB, Riak, Solr, Sphinx)
- Customize deployment of your application (during or post) with Deploy Hooks
- Access command-line tools for deployment and get full SSH access control to run any Unix command, access logs, ets
- Choose from eight Amazon regions and nine instance sizes across three categories (normal, high memory, high CPU)
- Customize your environment by choosing from a variety of runtimes, app servers, databases (PostgreSQL or MySQL), Unix packages and Ruby gems
- Configure and tune performance parameters at layers of the stack
- Deploy from any Git repo (included self-hosted)
- Control when Engine Yard Cloud updates are applied to your software stack
Database ReplicationReplicate your master databases on both PostgreSQL and MySQL. You can create database slaves with smaller or larger instance sizes. For guidance on database replication in basic and custom clusters, visit our documentation.
ScalingConfiguring new applications capacity used to be a multi-hour task—now it’s a single click. With Engine Yard Cloud, horizontal and vertical scaling is easy. Add additional instances easily to your application tier and that instance will automatically deploy with the correct application configuration and join your load-balanced group.
Monitoring and AlertingEngine Yard Cloud allows you to track all the essential resource utilization for your application, including storage, CPU and memory utilization levels, and alerts you when you need additional capacity, or when your latest application may be behaving poorly.
- Storage, CPU and memory utilization levels are all tracked for conformance to pre-configured thresholds, and email alerts provide timely warnings
- Through our premium support option, you have the ability to define your custom call escalation path, where you can determine the best path for members of your team to get notified
CloningWith Engine Yard Cloud, you can maintain an on-demand staging environment. With a single click, you can clone your full production environment even if your application is running across many different instances with multiple volumes and databases.
Snapshots and BackupsApplication code and databases are written out to persistent storage volumes. Engine Yard Cloud automatically mounts these volumes and creates backups. Both the /data mount on the application master instance and the /db mount on the database master instance(s) are persistent
- Engine Yard Cloud takes advantage of Amazon’s EBS storage allowing for regular disk snapshots of both of these volumes
- If the need arises to ever rebuild instances from scratch, the customer has the ability to restore both of these volumes from previous snapshots
- Engine Yard Cloud utilizes Amazon’s S3 service for backups. By default, database backups are taken daily and are rotated every 10 days
- However, customers can customize their backup schedule to meet their needs within the dashboard. If it is a requirement, backups can be stored PGP encrypted
Business ContinuityThe Engine Yard Cloud architecture provides automatic failover that can replace a failed master application instance with an existing application slave. “Takeover” is the Engine Yard failover process for recovering an application master instance from failure. It occurs automatically when Engine Yard Cloud detects an application master is unable to reliably respond to requests. For example, this can happen because of an Amazon EC2 issue or because the instance froze. If the instance does not recover within a short time, Engine Yard Cloud does the following:
- Terminates the problem instance
- Promotes an application slave to master
- Assigns the old master’s IP address to the new master
- Replaces the application slave instance that was promoted. The new application slave uses the same version of the stack as the other instances in that environment
High AvailabilityEngine Yard Cloud helps ensure your application is fault tolerant and highly available. This is delivered at two levels:
Platform level: All Engine Yard Cloud supporting infrastructure is located in multiple Amazon Web Services’ availability zones. In addition, your environments run independently from Engine Yard Cloud. If Engine Yard Cloud experiences an outage, existing applications will continue to run Application level: Within the dashboard, developers can select from a variety of regions to establish their computing clusters. The Engine Yard Cloud provisioning system then distributes the instances across Amazon availability zones such that applications could continue to run even during infrastructure outages.
In the event of an outage:
- Outages specific to Engine Yard: Customer applications will continue to serve web requests without interruption
- Outages specific to infrastructure (e.g. AWS): Customer uptime is dependent on what (if any) parts of their app were on affected infrastructure