I'm developing a desktop JavaFX application that connects to a local WildFly app server via the REST protocol. WildFly describes itself as an
application runtime that helps you build amazing applications.
and the way I view WildFly is for development use only, so when I eventually want to deploy my app to the public, I'll need to migrate my program to an application server on "the cloud" so to speak, such as AWS, Google Cloud Engine, or a simple Digital Ocean droplet (seems best bet).
However, the post here says WildFly can be used commercially so now I'm totally confused about the typical architecture I should use when deploying a (commercial) java app to the public. I assume a Droplet is just a server which can take different roles (app server, DB server, etc.) ... effectively replacing WildFly. If so, won't I need to install some software on the Droplet to effectively make it an app server? Do I install WildFly on it?
What is a common, effective architecture for the following setup:
I own a domain, ex: www.mysite.com which contains a download link for my Java software. A user clicks the link and it downloads the software. Once it's on their PC, the program can communicate via REST with the endpoints on my app server via the REST protocol. Both my site and the java app need to have access to the user database, which I assume can be accessed from either using REST requests. Some sort of caching will be needed like Redis too.
My guess: The website domain can be hosted anywhere, such as iPage.com, and the Java application (client-side code) is hosted as a file for download on iPage's server. The java app's server-side code should be hosted by Digital Ocean or similar, which provides REST endpoints for the client-side code to communicate with. The database server will also provide endpoints for both the website and the app. I assume Redis should be integrated in my app-server code somehow?
Whether the app server and database server will be together or separated is up for debate, but I'm seeking clarification on a standard, proper approach for my needs.