Web Application Hosting¶
Introduction¶
RC Web hosting is not a generic web hosting service
HiPerGator Web Application Hosting a.k.a. 'PubApps' is not intended to be a generic web application hosting service. Use UFIT T4 CMS Hosting, UFIT Apache Hosting, or UFIT VM Hosting] for document or generic web application and service hosting. PubApps hosting infrastructure is intended primarily for Research web applications that, for example:
- have significant computational and database needs.
- showcase research and data produced on HiPerGator.
- may or may not need HiPerGator integration.
- were developed with the help of the UFIT RC Research Software Engineering team.
- have specific security/access requirements (public or restricted to HPG users/groups).
- require GPUs for machine learning model inference.
- need to be connected to data-producing hardware at the university.
The purpose of PubApps is to provide a 'long-tail' service and infrastructure that cannot be obtained or set up elsewhere or requires access to data/computational resources on HiPerGator. It can give UF Research Computing customers a competitive edge for top-tier research and presentation of research.
If you are unsure whether this service will work for you, please reach out to use via Support System or one of the options listed in RC Remote Support documentation, so we could discuss your project and determine whether it's appropriate for PubApps or if we could refer you to one of the UFIT hosting solutions or external resources such as cloud hosting. Additionally, we're happy to discuss your application architecture and deployment options as a part of determining the feasibility of hosting the application in PubApps.
Architecture¶
PubApps¶
Public hosting infrastructure (PUBAPPS) is characterized by and provides
- Open access from the Internet
- Several options to host the web application - webservers, container/conda servers, and individual VMs
- Database servers (MariaDB/MySQL and PostgreSQL)
- Scheduled computing infrastructure (SLURM setup, simplified version of HiPerGator scheduling)
- GPUs are available on pubcontainer nodes.
- Standalone storage (not accessible from HPG)
- Podman container runtime only, no Docker
PrivApps¶
Private hosting infrastructure (PRIVAPPS) is characterized by and provides
- No access from outside of the UF network
- Requirement for UFIT RC authentication before users can access the application(s)
- Web application hosting on webservers or individual VMs only
- Ability to schedule jobs on HiPerGator proper
- Database servers (MariaDB/MySQL and PostgreSQL)
- Small application code deployment storage area and the expectation of use of /blue and /orange filesystems for data storage and analyzes.
- Podman container runtime only, no Docker
Purchasing¶
Before application(s) can be deployed in pubapps a PubApps instance must be requested via a Trial Allocation or purchased via the HiPerGator Service Purchase form for $300 per year. Please note that the public and private/internal web apps are hosted on separate platforms and deploying both types of applications requires purchasing a hosting instance on each side. If additional resources are required CPU/memory (NCU), storage units (in TB), and GPUs can be purchased in the same manner and with the same pricing as HPG NCU, BlSU, and NGU resources on HiPerGator. Each instance includes up to 2 virtual CPU cores, 16GB of memory, and 1TB of disk space on the public side or 40GB of space on the private side.
Instance Provisioning¶
A pubapps instance
is a combination of a user, resources, and infrastructure within
which web applications can be deployed. You can also describe the instance as a deployment
environment.
Once a group has a PA-Instance allocation one of the group members may open a support request for creation of a PubApps instance.
The following components will be configured during instance setup:
PubApps¶
- $project user account
- /pubapps/$project storage quota
- ssh key access list setup for access by authorized group members from HiPerGator.
- Environment setup for
login linger
and rootless podman configuration. - Optional individual project VM provisioning for instances that will host applications that cannot be deployed in large shared environments. Most applications will not require a standalone VM, but specific application limitations or security requirements may create such a need.
Once an instance is set up authorized group members can ssh as the project user from HiPerGator to pub* servers.
PrivApps¶
- HiPerGator service user
- /privapps/$project storage quota (small storage for application code deployment)
- ssh key access list setup for access to the service user by authorized group members on or from HiPerGator.
- Individual project VM. Unless the application is very lightweight and can be hosted on privweb* webservers (E.g. CryoSPARC) a project VM will be provisioned for the privapps instance.
Deployment¶
One or more web applications can be deployed within the instance. As long as the applications are not using resources in excess of what was purchased there is no limit on the number of deployed applications. You can purchase more resources when needed.
See the PUBAPPS Deployment Documentation for steps and details on how to communicate your pubapps deployment requirements and the resulting configuration.
See web application deployment considerations for more information on how you can choose to deploy the application.
Access¶
All pubapps/privapps instance environments are accessed via SSH from HiPerGator.
A project user is set up in pubapps and authorized project members' HPG ssh keys are added to the ssh access list for the project user on pub* servers.
A service user is created in the group on HiPerGator. Authorized project members' HPG ssh keys are added to the ssh access list to the project user on privweb* servers, in the project VM, and on HPG nodes.
See the ssh access article for more information.