Provisioning, deploying, and testing
====================================

Provision
---------

..  note::
   TPA now runs the `provision`  command as part of the `deploy`  command. The `provision`  command is still available for use, but you don't need to run it separately. The `tpaexec provision`  command creates instances and other resources required by the cluster. The details of the process depend on the architecture (for example, PGD-Always-ON) and platform (for example, AWS) that you selected while configuring the cluster.

For example, given AWS access with the necessary privileges, TPA
provisions EC2 instances, VPCs, subnets, routing tables, internet
gateways, security groups, EBS volumes, elastic IPs, and so on.

You can also provision existing servers by selecting the ``bare``
platform and providing connection details. Whether these are bare metal
servers or those provisioned separately on a cloud platform, you can use
them as if they were created by TPA.

You aren’t restricted to a single platform. You can spread your cluster
out across some AWS instances in multiple regions and some on-premises
servers or servers in other data centres, as needed.

At the end of the provisioning stage, you will have the required number
of instances with the basic operating system installed, which TPA can
access using SSH (with sudo to root).

Deploy
------

The ``tpaexec deploy`` command installs and configures Postgres and
other software on the provisioned servers. This includes setting up
replication, backups, and so on. TPA can create the servers, but it
doesn’t matter who created them so long as SSH and sudo access are
available.

At the end of the deployment stage, EDB Postgres Distributed is up and
running.

Test
----

The ``tpaexec test`` command executes various architecture and
platform-specific tests against the deployed cluster to ensure that it’s
working as expected.

At the end of the testing stage, you have a fully functioning cluster.

For more information, see `Trusted Postgres Architect <https://www.enterprisedb.com/docs/tpa/latest/>`_  .
