/alibabacloud-microservice-demo

An Alibaba Cloud native microservice demo powered by Apache Dubbo and Spring Cloud Alibaba

Primary LanguageJavaApache License 2.0Apache-2.0

Introduction

This is a demo project to showcase running microservices on Alibaba Cloud.

This demo is powered by the following projects and products:

  • Apache Dubbo for Remote Procedure Call
  • Spring Cloud Alibaba for Service to Service Call
  • Nacos for Service Discovery and Configuration management
  • Alibaba Cloud EDAS for deployment and hosting
  • Alibaba Cloud ARMS for monitoring
  • Alibaba Cloud SAE for deployment and hosting without being aware of the underlying infrastructure.

Architecture

This project contains the following applications (more applications are on the way):

  • frontend: A Java application with SpringMVC and thymeleaf as template engine.
  • cartservices: A Java application that provides basic operations to add products to shopping carts, which is powered by Apache Dubbo.
  • productservice: A Java application that provies basic operations to list all the products and query product by ID, which is powered by Spring Cloud Alibaba.

Build

Build docker image using docker-compose

You can use docker-compose to build docker images:

docker-compose build

Build docker image using scripts

You need to go to the src directory, for each sub module, there is a build.sh file, just run it to build the docker image for each module.

./build.sh

Deploy

Deploy with docker-compose

This project can be deployed to docker with the following command

docker-compose -f docker-compose.yml up

If you want to undeploy, use the following command

docker-compose -f docker-compose.yml down

Deploy to Kubernetes cluster

This project can be deployed to Kubernetes cluster with the following command:

cd kubernetes-manifests/
for i in *.yaml; do kubectl apply -f $i; done

If you want to delete the deployment, please use the following command:

for i in *.yaml; do kubectl delete -f $i; done

Deploy with helm

This project can be deployed to Kubernetes cluster with helm chart:

helm install ./helm-chart  --name  microservice-demo

If you want to delete the deployment with helm, use the following command:

helm delete microservice-demo

Collaborator

If you are a collaborator, please read the Collaborator to prepare for development.

Credit

This project is originiated from GoogleCloudPlatform/microservice-demo