0

Please help an old man understand the new cloud technologies.

I understand the old-school way of deploying a Jakarta Servlet app written in Java:

  1. Buy a big server with lots of RAM and storage, more than needed.
  2. Obtain a Servlet container such as Tomcat, Payara, JBoss, etc.
  3. Launch the servlet container on the server.
  4. Let it run indefinitely.

Now I have an Vaadin Flow based Jakarta Servlet app for customers of a photography business to download their own photographs. This app has no shared state between users, other than access to a separate database server. So there is no need to maintain one single large server.

This app will have no users most of the time, but on occasion has many simultaneous users, up to a thousand. So I am looking for the simplest way to achieve horizontal scaling with the least administrative effort at the least cost.

Is there any way to have a new instance of my web app launch in a cloud server for each new user session?

Each user's session will run for about 10 minutes, then expire. There will be much back-and-forth traffic for this single-page app before the session ends. Ideally the server would close at the end of that session. I would be billed only for those minutes while the app is running for each of those sessions.

Does today's cloud technology provide for a launch-one-web-app-server-per-user-session model?

I am aware of using Quarkus as a way of (a) streamlining the launching of a Java-based app within a Java Virtual Machine, or even (b) compiling ahead-of-time to native code for the fastest possible launch time. Either of these two uses of Quarkus should help in my situation, to launch an instance of a web app server as quickly as possible for each user session. But my Question here is about how to auto-launch one instance of such a Quarkus-enabled app per user session.

Basil Bourque
  • 801
  • 1
  • 11
  • 22

0 Answers0