Home > Storage > ObjectScale and ECS > Product Documentation > ECS: Overview and Architecture > Infrastructure
ECS appliance nodes currently run SUSE Linux Enterprise Server 12 for the infrastructure. For ECS software deployed on custom industry standard hardware the operating system can also be RedHat Enterprise Linux or CoreOS. Custom deployments are done using a formal request and validation process. Docker is installed on the infrastructure to deploy the encapsulated ECS layers. ECS software is written in Java so the Java Virtual Machine is installed as part of the infrastructure.
ECS runs on top of the operating system as a Java application and is encapsulated within several Docker containers. The containers are isolated but share the underlying operating system resources and hardware. Some parts of ECS software run on all nodes and some run on one or some nodes. The components running within a Docker container include:
There are other processes and tools that run outside of a Docker container namely the Fabric node agent and hardware abstraction layer tools. The following figure provides an example of how ECS containers can be run on an eight-node deployment:
The following figure shows command line output of the docker ps command on a node which shows the four containers used by ECS inside Docker. A listing is shown with all the object-related services available on the system.