All Projects → IBM → Cloud Native Starter

IBM / Cloud Native Starter

Licence: apache-2.0
Cloud Native Starter for Java/Jakarta EE based Microservices on Kubernetes and Istio

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Cloud Native Starter

Awesome Fenix
讨论如何构筑一套可靠的分布式大型软件系统
Stars: ✭ 530 (+31.84%)
Mutual labels:  microservice, cloud-native, istio
Go Chassis
a microservice framework for rapid development of micro services in Go with rich eco-system
Stars: ✭ 2,428 (+503.98%)
Mutual labels:  microservice, cloud-native, istio
Krakend Ce
KrakenD Community Edition. Make your binary of KrakenD API Gateway
Stars: ✭ 245 (-39.05%)
Mutual labels:  microservice, cloud-native
cloud-native-notes
☁️ 云原生技术面试必备基础知识
Stars: ✭ 48 (-88.06%)
Mutual labels:  cloud-native, istio
cudgx
CudgX is a cloud native intelligent operation and maintenance engine that provides service measurement, index quantification, capacity evaluation, automatic expansion and contraction. 一种提供服务度量、指标量化、容量评估、自动扩缩容等功能的云原生智能运维引擎。
Stars: ✭ 42 (-89.55%)
Mutual labels:  microservice, cloud-native
Akka Management
Akka Management is a suite of tools for operating Akka Clusters.
Stars: ✭ 218 (-45.77%)
Mutual labels:  microservice, cloud-native
Jina
Cloud-native neural search framework for 𝙖𝙣𝙮 kind of data
Stars: ✭ 12,618 (+3038.81%)
Mutual labels:  microservice, cloud-native
backk
Backk - Node.js framework for creating security-first cloud-native microservices for Kubernetes in Typescript
Stars: ✭ 14 (-96.52%)
Mutual labels:  microservice, cloud-native
Devspace
DevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
Stars: ✭ 2,559 (+536.57%)
Mutual labels:  microservice, cloud-native
Ambassador
open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
Stars: ✭ 3,583 (+791.29%)
Mutual labels:  microservice, cloud-native
Light 4j
A fast, lightweight and more productive microservices framework
Stars: ✭ 3,303 (+721.64%)
Mutual labels:  microservice, cloud-native
Chaos Mesh
A Chaos Engineering Platform for Kubernetes.
Stars: ✭ 4,265 (+960.95%)
Mutual labels:  microservice, cloud-native
Spring Cloud Azure
Spring Cloud integration with Azure services
Stars: ✭ 197 (-51%)
Mutual labels:  microservice, cloud-native
Istio By Example Java
A collection of examples of using Istio with Java applications.
Stars: ✭ 242 (-39.8%)
Mutual labels:  microservice, istio
Myapp
🖥️ How to build a Dockerized RESTful API application using Go.
Stars: ✭ 171 (-57.46%)
Mutual labels:  microservice, cloud-native
meshery
Meshery, the cloud native manager
Stars: ✭ 1,587 (+294.78%)
Mutual labels:  cloud-native, istio
Midway Faas
🔱 A simple and lightweight serverless framework
Stars: ✭ 363 (-9.7%)
Mutual labels:  microservice, cloud-native
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (-69.15%)
Mutual labels:  microservice, cloud-native
Naftis
An awesome dashboard for Istio built with love.
Stars: ✭ 1,859 (+362.44%)
Mutual labels:  microservice, istio
Kumuluzee
Lightweight open-source framework for developing microservices using standard Java EE technologies and migrating Java EE to cloud-native architecture.
Stars: ✭ 274 (-31.84%)
Mutual labels:  cloud-native, javaee

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].