<supportagent>This is the customer-facing version. Support should refer to the source engineering document: trilogy-group/ey-all — docs/kb-stackv8-technology-stack.md</supportagent>
Stack v8 is the Engine Yard managed application stack built on Ubuntu 24.04 LTS ("Noble"). It is the successor to Stack v7, which is built on Ubuntu 20.04 LTS ("Focal"). Stack v8 refreshes the entire runtime to versions that are supported on Ubuntu 24.04, and drops components that no longer build or run on it.
Each component in the stack has been tested and integrated by Engine Yard for reliability, security, and compatibility, so you can confidently deploy and manage your application on Stack v8.
How Stack v8 relates to Stack v7
- Stack v8 is offered alongside Stack v7 in the Environment UI, and moving to it is opt-in. Stack v7 remains the default, and your existing v7 environments are unaffected until you choose to move.
- Stack v8 is enabled per account. Stack v8 and its database engines (PostgreSQL 16 / MySQL 8.4) are turned on for your account by Engine Yard. If Stack v8 or a v8 database engine does not yet appear as an option when you create an environment, contact Engine Yard Support to have it enabled for your account.
- The architecture is the same as v7. Stack v8 keeps the same Chef-based provisioning model, the same instance roles (application, database master/replica, utility, solo), and the same deployment model (
ey deploy). What changes is the operating system and the versions of the components that run on it.
To move an existing environment to Stack v8, see the companion article "Migrating from Stack v7 to Stack v8 (Ubuntu 24.04)."
Component matrix
The table below lists the Stack v8 components compared with Stack v7. Where a specific point release is shown, it may advance over time as upstream updates are published.
| Component | Stack v7 (Ubuntu 20.04) | Stack v8 (Ubuntu 24.04) | Notes |
|---|---|---|---|
| Operating system | Ubuntu 20.04 LTS (Focal) | Ubuntu 24.04 LTS (Noble) | New base image; OpenSSL 3.0.13 is the system baseline. |
| Ruby | 2.4–3.4 | 3.1, 3.2, 3.3, 3.4 | New v8 environments default to Ruby 3.4. Ruby 2.7 and 3.0 are not available on v8. |
| Node.js | 18 | 20 LTS, 22 | Node 18 is end-of-life. |
| MySQL (Percona Server) | 5.7 / 8.0 | 8.4 | 8.4 is the managed MySQL version on v8. Note the authentication change below. |
| PostgreSQL | 14 | 16 | v8 default managed database. |
| Nginx | 1.18 | 1.24 | Web server for Ruby and PHP vhosts. |
| Passenger | 5 / 6 | 6 | Passenger 5 is end-of-life and removed. |
| Python | 3.8 | 3.12 | System Python used by stack tooling. |
| HAProxy | 2.x | 2.8+ | Internal load balancer for multi-app environments. |
| Chef | 17.9.46 | 17.9.46 | Unchanged. |
| Instance architecture | x86_64 | x86_64 and ARM (AWS Graviton) | See the restriction below for managed MySQL. |
Application servers (Unicorn, Puma, Passenger 6), caching (Redis, Memcached), background workers (Sidekiq, Resque, Delayed Job), and monitoring (collectd, Monit) are provided by the same components as v7, updated for Ubuntu 24.04.
Runtime language support
Ruby
Stack v8 supports Ruby 3.1, 3.2, 3.3, and 3.4 (shipped as 3.1.7, 3.2.10, 3.3.11, and 3.4.9). A newly created v8 environment defaults to Ruby 3.4. The common Ruby build dependencies (openssl, mysql2, nokogiri, eventmachine, ffi) build cleanly on these versions.
Ruby 2.7 and 3.0 are not available on Stack v8. They cannot run on Ubuntu 24.04 because of its OpenSSL 3.0.13 baseline: Ruby 2.7.8 will not install, and Ruby 3.0.7's
opensslextension does not work at runtime. If your application runs on Ruby 2.7 or 3.0, you must upgrade it to Ruby 3.1 or newer before opting into Stack v8. This is a hard requirement, not a warning.
Applications already on Ruby 3.1, 3.2, or 3.3 can move to v8 without a Ruby upgrade, though moving toward 3.4 is encouraged.
Node.js
Stack v8 supports Node.js 20 LTS and 22 (shipped 20.20.2 and 22.23.1). Node 18 has reached end-of-life and is not offered. Applications on Node 18 or earlier should move to Node 20 LTS or 22.
Python
The system Python on v8 is 3.12 (v7 shipped 3.8). This is the interpreter used by stack tooling; if your application's build steps depend on a specific Python, confirm they work with 3.12.
Managed databases
MySQL
Stack v8 offers MySQL 8.4 (Percona Server) as its managed MySQL version. There is no v8 option that stays on 5.7 or 8.0, so moving to v8 with a managed MySQL database means moving to 8.4.
Authentication change. MySQL 8.4 changes the default authentication plugin to caching_sha2_password and disables mysql_native_password by default. Any application whose MySQL driver can only use mysql_native_password, or that connects without TLS, will fail to authenticate against a v8 MySQL 8.4 database. This is the single most likely customer-visible change when moving to v8 — the migration guide covers how to prepare for it.
How the database moves. Moving a managed database across a major version (for example, 8.0 to 8.4) is not an in-place conversion. A new v8 database instance is provisioned, your data is loaded into it by a dump and restore, and your existing database instance is retained untouched (so, rollback is simply repointing to it). Contact Engine Yard Support if you need help to plan the move and its maintenance window. For the mechanics of restoring or loading a database, see Restore or Load a Database.
PostgreSQL
Stack v8 offers PostgreSQL 16 as its default managed database (Engine Yard's managed v7 PostgreSQL was 14). As with MySQL, a major-version move (14 to 16) is a dump and restore onto a new instance rather than an in-place upgrade, with your v7 database retained for rollback.
Instance architecture: x86_64 and ARM (Graviton)
Stack v8 base images are published for both x86_64 and ARM (AWS Graviton) in every region where Engine Yard provisions. Graviton instance families (m6g, c7g, t4g and similar) are available on v8 subject to the same per-account enablement that applies on v7.
Managed MySQL cannot run on an ARM instance. If you choose an ARM instance type for a database instance that uses a managed MySQL engine, environment creation is rejected with "ARM instance types are incompatible with MySQL database stacks." This is a long-standing platform restriction, not specific to v8. Note:
- It applies to the database instance and its replicas only — application and utility instances in the same environment may be ARM.
- PostgreSQL 16 is unaffected and runs on ARM database instances.
- Because a cluster preset applies one instance type to every role, choosing an ARM type for a MySQL environment is rejected outright. A custom configuration can combine an ARM application tier with an x86_64 database instance.
In short: PostgreSQL 16 on v8 runs on either architecture; managed MySQL 8.4 requires an x86_64 database instance. If you intend to use ARM database instances, confirm your intended instance type with Engine Yard Support before you provision, since the ARM database path is newer and less widely exercised than x86_64.
Web and application tier
- Nginx 1.24 is the web server for both Ruby and PHP vhosts.
- Passenger 6 (6.1.8) is the Passenger version on v8. Passenger 5 is end-of-life and has been removed; applications pinned to Passenger 5 behavior should be validated on Passenger 6 during staging.
- HAProxy 2.8+ is the internal load balancer for multi-app environments.
- Unicorn and Puma are unchanged in role and run on the supported Ruby versions above.
Provisioning
Stack v8 uses the same Chef-based provisioning model as v7. If you maintain your own custom Chef recipes, review the companion article "Chef recipe compatibility: Stack v7 vs Stack v8" for the recipe-level changes you may need to make on Ubuntu 24.04.
Manuel da Silva
Comments