anmolpandita1 / Scalable-web-app-java

Sample Java/Spring web application with Terraform templates to deploy into IBM Cloud

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IBM Cloud

IBM Cloud platform Apache 2

Create and deploy a basic Java Spring application

We have applications available for Node.js Express, Go Gin, Python Flask, Python Django, Java Spring, Java Liberty, Swift Kitura, Android, and iOS.

In this sample application, you will create a basic Java cloud application using Spring. This provides a good starting point for creating Java microservice applications running on Spring. It contains no default application code, but comes with standard best practices, including a health check.

Capabilities are provided through dependencies in the pom.xml file. The ports are set to the defaults of 8080 for http and 8443 for https and are exposed to the CLI in the cli-config.yml file. The ports are set in the pom.xml file and exposed to the CLI in the cli-config.yml file.

The application exposes the following endpoints:

Steps

You can deploy this application to IBM Cloud or build it locally by cloning this repo first. Once your app is live, you can access the /health endpoint to build out your cloud native application.

Setting up from the IBM Cloud console

Deploy to IBM Cloud

Click Deploy to IBM Cloud to deploy this same application to IBM Cloud. This option creates a deployment pipeline, complete with a hosted GitLab project and a DevOps toolchain. You can deploy your app to Cloud Foundry, a Kubernetes cluster, or a Red Hat OpenShift cluster. OpenShift is available only through a standard cluster, which requires you to have a billable account.

IBM Cloud DevOps services provides toolchains as a set of tool integrations that support development, deployment, and operations tasks inside IBM Cloud.

Setting up from IBM Cloud Schematics

Follow the README instructions for creating and deploying your application via IBM Cloud Schematics, which uses Terraform templates to create an IKS cluster and IBM Cloud DevOps toolchain.

Building Locally

To get started building this application locally, you can either run the application natively or use the IBM Cloud Developer Tools for containerization and easy deployment to IBM Cloud.

Native Application Development

To build and run an application:

  1. mvn install
  2. java -jar ./target/javaspringapp-1.0-SNAPSHOT.jar

To run an application in Docker use the Docker file called Dockerfile. If you do not want to install Maven locally you can use Dockerfile-tools to build a container with Maven installed.

You can verify the state of your locally running application using the Selenium UI test script included in the scripts directory.

IBM Cloud Developer Tools

Install IBM Cloud Developer Tools on your machine by running the following command:

curl -sL https://ibm.biz/idt-installer | bash

Create an application on IBM Cloud by running:

ibmcloud dev create

This will create and download a starter application with the necessary files needed for local development and deployment.

Your application will be compiled with Docker containers. To compile and run your app, run:

ibmcloud dev build
ibmcloud dev run

This will launch your application locally. When you are ready to deploy to IBM Cloud on Cloud Foundry or Kubernetes, run one of the following commands:

ibmcloud dev deploy -t buildpack // to Cloud Foundry
ibmcloud dev deploy -t container // to K8s cluster

You can build and debug your app locally with:

ibmcloud dev build --debug
ibmcloud dev debug

Next Steps

License

This sample application is licensed under the Apache License, Version 2. Separate third-party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 and the Apache License, Version 2.

Apache License FAQ

About

Sample Java/Spring web application with Terraform templates to deploy into IBM Cloud

License:Apache License 2.0


Languages

Language:HTML 63.6%Language:HCL 24.4%Language:Java 7.2%Language:Dockerfile 2.3%Language:Python 1.5%Language:Shell 1.0%