A Vespa system consists of one or more stateless and stateful clusters configured by an application package. A Vespa system is configured and managed through an admin cluster as shown below.
All nodes of a Vespa system have the same software installed. Which processes are started on each node and how they are configured is determined by the admin cluster from the specification given in services.xml in the application package.
To create a fully functional production ready multinode system from a single-node sample application, follow these steps (also see next steps):
<services version="1.0"> <admin version="2.0"> <adminserver hostalias="admin0"/> <configservers> <configserver hostalias="admin0"/> </configservers> </admin>This cluster can have multiple nodes as config servers, but it is not strictly necessary as the other nodes will continue to run when the admin cluster is unreachable.
$ echo "override VESPA_CONFIGSERVERS [adminserver-hostname]" >> $VESPA_HOME/conf/vespa/default-env.txtwhere [adminserver-hostname] is replaced by the full hostname of the admin server (or a comma-separated list if multiple).
src/main/application/services.xml(to avoid traffic disruption on restarts or node failure at least two nodes are needed in each cluster). One can add the same nodes to multiple clusters.
With this, the application is fully production ready!
Logs are automatically collected from all nodes in real time to the admin node listed as
To view log messages from the system,
run vespa-logfmt on this node.
To change the system, deploy the changed application to the admin cluster. The admin cluster will automatically change the participating nodes as necessary. It is safe to do this while serving live query and write traffic. In some cases the admin cluster will report that some processes must be restarted to make the change effective. To avoid query or write traffic disruption, such restarts must be done on one node at the time, waiting until the node is fully up before restarting the next one.