In a clustered environment, seamless scalability and flexible management are crucial, especially in cloud-based clusters. The Zend Server architecture is based on a de-centralized management system that is comprised of identical components, facilitating high availability and supporting cloud environments.
Zend Server uses a database back-end (MySQL, or SQLite in the case of a single server) to store information about the server, or servers, on which it is installed. The database stores two main types of information:
The robustness of the architecture stems from the fact that ultimately, each server is responsible for itself : it reports its own status, and takes care of its own configuration updates. There is no single active process that is responsible for these tasks, which makes it less prone to bugs and much more scalable.
The Zend Server UI interacts with the database via the Zend Server daemon (ZSD), changing configurations and issuing commands, and can be located on any one of the servers in the cluster, or even on separate servers.
The ZSD is the Zend Server service that manages the system and PHP configurations in your environment:
The ZSD is responsible for identifying errors and failures in your PHP runtime environment (e.g., missing binary of a PHP extension).
To illustrate how the Zend Server architecture works in a cluster, the following diagram simulates the process of changing a directive from the Zend Server UI:
Note:
If necessary, the user is notified that a restart of the servers is required (only services applying the changes will actually be restarted).