Cloud Native Starter

Cloud Native Starter for Java/Jakarta EE based Microservices on Kubernetes and Istio
Alternatives To Cloud Native Starter
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Istio33,730
10 hours ago639April 25, 2021581apache-2.0Go
Connect, secure, control, and observe services.
Nacos27,58973 days ago3July 17, 2023257apache-2.0Java
an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
Microservices Demo14,814
a day ago52June 15, 202339apache-2.0Python
Sample cloud-first application with 10 microservices showcasing Kubernetes, Istio, and gRPC.
Kubesphere13,406
5 days ago127April 23, 2021453apache-2.0Go
The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️
Kubernetes Handbook10,686
2 months ago3cc-by-4.0Shell
Kubernetes中文指南/云原生应用架构实战手册 - https://jimmysong.io/kubernetes-handbook
Awesome Fenix7,167
7 months ago234Vue
讨论如何构建一套可靠的大型分布式系统
K8s For Docker Desktop4,707
3 months ago43apache-2.0PowerShell
为Docker Desktop for Mac/Windows开启Kubernetes和Istio。
Flagger4,42874 days ago59July 14, 2023239apache-2.0Go
Progressive delivery Kubernetes operator (Canary, A/B Testing and Blue/Green deployments)
Podinfo4,13529 days ago18June 16, 202111apache-2.0Go
Go microservice template for Kubernetes
Docs4,110
3 days ago132April 23, 202139otherHTML
User documentation for Knative components.
Alternatives To Cloud Native Starter
Select To Compare


Alternative Project Comparisons
Readme

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. To get a fast overview of this project use our Cloud Native Starter landing page.

The project has three parts:

  1. Basic concepts: The documentation of this part is below. Cloud Native Starter demonstrates how to develop complete enterprise applications with Java and MicroProfile and how to operate them with Kubernetes, OpenShift and Istio. To get a fast overview of the basic-concepts part, use the basic-concepts landing page.
  1. Reactive: The reactive part explains how to use reactive programming and event based messaging in Quarkus applications and how to run them on Kubernetes and OpenShift. For more open the reactive folder and that part can be used completely separately or to get a fast overview of the reactive part, use the reactive landing page.
  1. Security: The security part explains how to do authentication and authorization in Quarkus applications with Keycloak and how to do network encryption with Istio. For more open the security folder and that part can be used completely separately. For a fast overview of the security part, use the security landing page.

Basic concepts

The first part of 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, Red Hat OpenShift in CodeReady Containers 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. CodeReady Containers (Red Hat OpenShift locally) - see instructions
  4. Red Hat 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

Popular Istio Projects
Popular Kubernetes Projects
Popular Virtualization Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Java
Shell
Cloud
Kubernetes
Microservice
Minikube
Cloud Native
Istio
Javaee