Skip to content

As a developer and sysadmin, I would enjoy the benefits of using Java MicroProfile based deployments with an application server like Payara Micro or Thorntail. #5187

@poikilotherm

Description

@poikilotherm

In these days of 2018, things start to change while developing and deploying web applications:

  1. It has become common to use Docker in development environment and continious integration scenarios.
  2. With Kubernetes and other tools, the usage of container based application deployment is emerging.
  3. (Many) people like stuff like systemd these days (and similiar tools) and they enjoy the handling of services based on Java technology with them, even if they do not like or use containers.
  4. Integration testing becomes a demanding task the larger an application grows, thus there is room for automation and getting devs life easier as much as possible (especially for onboarders).

Reasons this user story came up:

  1. Currently, the setup and maintenance of a Dataverse installation needs a handcrafted Glassfish 4.1.1 deployment and a rather complex setup. Deploying, undeploying, etc is rather clumbsy. If things fail, there are good chances that you need to start all over. It would be a huge benefit if these steps are a bit more comfortable to use.
  2. Starting an instance for demo or testing of the application needs either a bigger Docker container environment like the docker-aio approach or spinning up EC2 machines. For many cases, this just might be to much, when a local database and Solr (maybe usable via docker-compose as "hire and fire") are just fine. Starting the hole application with a simple CLI invocation, logs on stdout gives devs more control and maybe a speedup.
  3. Running integration tests for different and growing modules of a software get a lot easier when you can test them in isolation. Small chunks with all necessary code, automatically deployed and runnable make this a breathe. Running regular CI checks for integration tests is easier.
  4. Developers like to run the application locally from within their IDE and from CLI.
  5. People that are "into containers" often prefer applications, they can entirely spin up via simple CLI invocation, that do not send themself to the background, log on stdout, etc. Currently, this is not possible.
  6. Nearly the same as (4) applies to people using systemd. Spinning up the united team of application server AND application makes people happy that write unit files
  7. Many others I can't think of right now...

As a result, I would really like to see Dataverse usable with the Java MicroProfile approach.

This acts together with the (necessary?) upgrade to a modern application server like Glassfish/Payara 5 (#4248, #4172). (Sorry guys, but adding patched JARs to a installation shouldn't be necessary in 2018...) And for testing as suggested in #5068 but also for other approaches and issues, this makes things a lot easier...

Things to keep in mind:

  • Not everyone likes to have containers. Keep the good old sysadmin job possible.
  • Don't make it bloated. Nobody likes to download a 1GiB release archive.
  • Make container guys happy: don't bloat their images, make it fast to build and send to a registry. This also helps with CI.
  • Don't force people to give up their ways. A traditional deployment with a standalone app server should be totally possible.

Things to argue about and read:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions