This application demos a modern single-page application built on:
- Vue.js (front-end)
- Node.js (back-end)
- MongoDB (database)
This application was created to help train people on the F5 Distributed Cloud Services capabilities.
Vue.JS application that simulates a shopping cart application.
- Environment: Internet facing
Node.JS application running on Express.JS that provides the primary API and access to the database.
- Environment: Internet facing
MongoDB database that stores information about the user and the products. This database is seeded with user and product data on launch.
- Environment: Internal
Node.JS microservice that will recommend products.
- Environment: Internet facing
Node.JS microservice that will tell the local store inventory. Note, this microservice is accessed through the API and simulates the API server talking to an internal service.
- Environment: Internal, accessibly by the API server
The stats page provides information for the various components that make up this application:
- service URL
- Latency
- Historic latency graph
NOTE: If a component is offline, a component card such as in the image above will turn red.
The Product detail page contains the recommendations and inventory microservices.
>>> Download kubeconfig file from XC to your workspace <<<
export KUBECONFIG=$(pwd)/vk8s-manifest.yaml
kubectl apply -f api.yaml
kubectl apply -f inventory.yaml
kubectl apply -f mongodb.yaml
kubectl apply -f recommendations.yaml
kubectl apply -f spa.yaml
>>> Check the components status <<<
>>> Add Source pool for Frontend <<<
>>> Same way to add Source pool for Backend <<<
>>> Load Balance Setup <<<
>>> Add Routes: <<<
>>> There are 3 path for this website <<<
This code is based on the work of Shaun Wassell and his Creating and Hosting a Full-Stack Site LinkedIn Learning course.
I have extended his demo to:
- run components in F5 Disctribute Cloud
- abstract API and image URLs
- seed MongoDB
- recommendations microservice
- store inventory simulation
- stats page for all services