How to Build and Deploy Vert.x Fat or Thin Microservice Application to the Cloud

| August 29, 2018

vert xEclipse Vert.x started to promote microservices even before this buzzword appeared, and successfully continues to showcase the benefits of such an approach. This tool-kit is designed for building reactive applications using any language that runs on the JVM, including Java, Groovy, Ceylon, Ruby, JavaScript, Kotlin, and Scala.

Basically, Vert.x application is a plain JAR file so the application can be packaged in two different ways:

  • Fat, a self-contained single JAR file with all necessary dependencies inside. Usually, the archive is of a big size as it contains everything including application server runtime.
  • Thin, a JAR file that doesn’t contain runtime and dependencies by default but automatically downloads them during the first launch. It is considered as the most widely used approach nowadays, as it was the only one well standardized for many years and provides a set of advantages, such as faster and more efficient process of building and packaging.

In this article, we will cover build and deploy processes for Vert.x Java applications using both approaches, Fat and Thin. The application will be packaged in the required format automatically with the help of Builder add-ons prepared by Jelastic. The topology will consist of Maven build node and JVM containers for running web application

Vert.x Fat Jar Builder Installation

To get started, log in to Jelastic dashboard, find the Vert.x Fat Jar Builder in the Marketplace and click Install.microservice tutorialOr you can import Vert.x Fat manifest from GitHub by link:

To do that, press Import at the Dashboard then paste the link in the URL tab and confirm installation by clicking Import button in the opened window.ready packIf required, change installation settings such as environment name or Git repository link to a custom Vert.x Fat project. Then press Install.maven project in eclipseWhen the installation and building of the project are completed, a corresponding message appears. You still need to wait a few minutes for deploy to be finished (feel free to track the process in Tasks panel). In the default implementation, it is done under api/greeting context.maven javaAfterward, you can make sure, that application is up and running by pressing Open in browser button.vertx java

Vert.x Thin Jar Builder Installation

Find the Vert.x Thin Jar Builder in the Marketplace and click Install. Or import Vert.x Thin manifest from GitHub: jarIf required, change installation settings such as environment name or Git repository link to a custom Vert.x Thin project. Then press Installthin client issuesWait a few minutes for deploy to be finished tracking the process in Tasks panel. Then click Open in browser button to see your application under the stated context (by default, api/greeting).maven jar pluginthin jar

Running Multiple Microservices with Vert.x Projects

You can use just created Maven node for building extra projects and deploying them to different environments to get a set of distributed microservices.microservice application

First of all, create a separate environment with Java vmThen click Add Project next to the Maven node in the initial environment.maven jar pluginSpecify the name and link to the project, as well as choose the environment where it should be deployed. Additionally, you can activate automatic updates. Then confirm pressing Add + Deploy.jvm programmingMore details on how to build and deploy Java applications can be found at the Maven node documentation.

In this way, you can easily build and deploy your Vert.x based applications. Register and try out the automated JAR packaging with Jelastic Builder add-on for your custom projects to feel the benefits of microservices running in the cloud.

Related Articles:

Building Microservices with Spring Boot Fat (Uber) Jar

Spring Boot Thin Jar Builder for Running Java Microservices

Dropwizard Automatic Build and Deploy to Cloud-Native Microservices

Thorntail Fat, Thin and Skinny Approach for Running Microservice Applications