Skip to content
Cloud Native Starter for Java/Jakarta EE based Microservices on Kubernetes and Istio
Shell Java JavaScript Vue Dockerfile HTML
Branch: master
Clone or download
nheidloff Merge pull request #34 from kant/patch-1
Minor fixes on lines 141 & 143
Latest commit a39b4ad Dec 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
articles-java-jee
articles-java-spring-boot
authentication-nodejs Update K8s deployments (v1beta1 -> v1) Sep 30, 2019
authors-java-jee update articles microservice to microprofile 3.0: Nov 29, 2019
authors-java-spring-boot delete unnecessary Maven files Aug 5, 2019
authors-nodejs
documentation
ibm-scripts Determine Istio ingress Dec 9, 2019
iks-scripts
images update DemoAuthe tication.md Dec 10, 2019
istio update - workshop documentation Aug 27, 2019
minishift-scripts Correction Oct 1, 2019
openshift-scripts OpenShift Istio updated instructions Jul 26, 2019
reactive first experiments with reactive Dec 13, 2019
scripts
web-api-java-jee changes and updates Dec 5, 2019
web-app-vuejs update DemoAuthentiction.md Dec 9, 2019
workshop-one-service update W1 and W2 Dec 2, 2019
workshop update W1 Lab 6 add simplified class overviews Dec 5, 2019
.gitignore
LICENSE
README.md
template.local.env CR namespaces need unique names Jun 8, 2019

README.md

Cloud Native Starter for Java EE based Microservices on Kubernetes and Istio

This project contains sample code that demonstrates how to get started with cloud-native applications and microservice based architectures.

The project focusses on how to build microservices with Java EE and the open source technologies Eclipse MicroProfile, Eclipse OpenJ9, AdoptOpenJDK and Open Liberty.

The microservices can easily be deployed on Kubernetes environments running Istio like Minikube, IBM Cloud Kubernetes Service, Minishift or OpenShift on the IBM Cloud.

The project showcases the following functionality:

This diagram shows the key components:

The next screenshot shows the web application. More screenshots are in the images folder.

Setup

The sample application can be run in four different environments:

  1. Minikube (locally): See instructions below
  2. IBM Cloud Kubernetes Service - see instructions
  3. Minishift (locally) - see instructions
  4. OpenShift on the IBM Cloud - see instructions

The following instructions describe how to install everything locally on Minikube.

Important: Before the microservices can be installed, make sure you've set up Minikube and Istio correctly or follow these instructions to set up Minikube and Istio from scratch. This should not take longer than 30 minutes.

Before deploying the application, get the code:

$ git clone https://github.com/IBM/cloud-native-starter.git
$ cd cloud-native-starter
$ ROOT_FOLDER=$(pwd)

The microservices can be installed via scripts. In addition to Minikube and Istio you need the following tools to be available.

Prerequisites:

Docker always needs to be installed locally. The tools git, curl and kubectl (and ibmcloud) can be installed locally or you can use a Docker image that comes with these tools.

$ cd ${ROOT_FOLDER}
$ docker run -v $ROOT_FOLDER/:/cloud-native-starter -it --rm ibmcom/ibm-cloud-developer-tools-amd64

Deploy (and redeploy):

$ cd ${ROOT_FOLDER}
$ scripts/check-prerequisites.sh
$ scripts/deploy-articles-java-jee.sh
$ scripts/deploy-web-api-java-jee.sh
$ scripts/deploy-authors-nodejs.sh
$ scripts/deploy-istio-ingress-v1.sh
$ scripts/deploy-web-app-vuejs.sh
$ scripts/show-urls.sh

After running the scripts above, you will get a list of all URLs in the terminal.

Example URL to open the web app: http://192.168.99.100:31380

Example API endpoint: http://192.168.99.100:31380/web-api/v1/getmultiple

At this point you have seen the "base line" of our Cloud Native Starter. The following documents describe how to implement additional functionality:

Cleanup

Run the following command to delete all cloud-native-starter components from Istio.

$ scripts/delete-all.sh

You can also delete single components:

$ scripts/delete-articles-java-jee.sh
$ scripts/delete-articles-java-jee-quarkus.sh
$ scripts/delete-web-api-java-jee.sh
$ scripts/delete-authors-nodejs.sh
$ scripts/delete-web-app-vuejs.sh
$ scripts/delete-istio-ingress.sh

Authors

Documentation - Overview

The following slides summarize this repo:

Slides

Documentation - Kubernetes and MicroProfile

Documentation - OpenShift

You can’t perform that action at this time.