Skip to content

Latest commit

 

History

History
62 lines (45 loc) · 3.79 KB

README.md

File metadata and controls

62 lines (45 loc) · 3.79 KB

Cloud Native Java Microservices - Reference implementation based on Kubernetes

Table of Contents

Introduction

This project provides a reference implementation for running a Cloud Native Application which leverages the Java MicroProfile and Spring Boot technologies for its microservices. The target cloud environment for the application is a Kubernetes-based platform which might be Minikube / Docker Edge for development stages and IBM Cloud or IBM Cloud Private for production stages.

Architecture

Application Overview

The application is a simple store front shopping application that displays a catalog of antique computing devices, where users can search and buy products. It has a Web interface, and it relies on BFF (Backend for Frontend) services to interact with the backend data.

There are several components of this architecture.

  • This OmniChannel application contains an AngularJS based web application. The diagram depicts it as a Browser.
  • The Web app invoke its own backend Microservices to fetch data, we call these components BFFs, following the Backend for Frontends pattern. The Web BFF is implemented using the Node.js Express Framework. These Microservices are packaged as Docker containers and managed by the Kubernetes cluster.
  • These BFFs invoke another layer of reusable Java Microservices. They run inside a Kubernetes cluster, for example the IBM Cloud Container Service or IBM Cloud Private, using Docker.
  • The Java Microservices retrieve their data from the following databases:
    • The Catalog service retrieves items from a searchable JSON datasource using ElasticSearch.
    • The Customer service stores and retrieves Customer data from a searchable JSON datasource using IBM Cloudant
    • The Inventory and Orders Services use separate instances of MySQL.

Implementation

This application has been implemented using two of the most popular technologies used for Java microservices development.

To know more about these implementations, Click on the below images to access respective versions of our application.

            

References