istio-fleetman
repository·master·Indexed 19 days ago
https://github.com/dickchesterwood/istio-fleetmanA project designed to make Istio understandable through hands-on training for Udemy and VirtualPairProgrammers courses. It includes a sample system consisting of an Angular frontend (IstioFleetmanWebappAngular), a backend facade (fleetman-api-gateway), a position data simulator (fleetman-position-simulator), and a position tracker (fleeman-position-tracker).
What's inside istio-fleetman
- IstioFleetmanWebappAngular is the front-end application for the Istio sample system. It provides a user interface for interacting with the Istio-based fleet management components.
Overview of fleeman-position-tracker
masterThe
fleeman-position-trackeris a microservice designed to consume vehicle position reports from a queue. For testing purposes, it utilizes an in-memory data store to hold these reports.Warning regarding concurrency: The current in-memory data store implementation is likely not thread-safe. While attempts have been made to address this, race conditions may occur. This component is intended for quick and dirty testing of microservice logic rather than production use. In a production environment, a proper external datastore should be used instead of this in-memory implementation.
Overview of fleetman-position-simulator
masterThe
fleetman-position-simulatoris a toy microservice designed to generate fake streams of position data. It simulates the movement of trucks or lorries on a delivery route.Note: This service is intended solely for generating interesting test data and is not built to production standards.
Understand the role of fleetman-api-gateway
masterThefleetman-api-gatewaycurrently serves as a backend facade specifically designed to provide a connection point for the Angular frontend. It is not intended to be used as a full-strength production API Gateway at this time. Future versions of Fleetman are planned to introduce a comprehensive API Gateway implementation.Understand the composition of this version
masterThis specific version is derived from the release 6 version. It contains custom variations for the following two services:
position-trackerstaffservice
All other service images used in this deployment are aliases to the standard release 6 version.
Select the correct platform folder for installation
masterWhen setting up IstioFleetman, ensure you use the directory corresponding to your system architecture:
- Apple Silicon (M1, M2, etc.): Use the
arm64folder. - Intel or AMD systems: Use the
x64_amd64folder.
- Apple Silicon (M1, M2, etc.): Use the
Bootstrap the IstioFleetman Angular application
masterThe application is bootstrapped using Angular's
platformBrowserDynamicAPI, which loads theAppModuleto initialize the web application in the browser. The application behavior changes based on theenvironment.productionflag: if true,enableProdMode()is called to enable production optimizations.import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.log(err));