Commit 7f809cf7 authored by Nane Kratzke's avatar Nane Kratzke
Browse files

Einleitung + Vorbereitung

parent 59d2f487
# Lab 08 Observability
In diesem Lab nutzen wir [Yelb](https://github.com/microservices-demo/microservices-demo) in einer für unsere Deployment-Zwecke minimal modifizierten Form.
Unter Observability versteht man einen systemübergreifenden Ansatz, der unterschiedliche Faktoren für die Überwachung und Beobachtung des Verhaltens von (Cloud-nativer) Software im Betrieb berücksichtigt.
Yelb ist ein nicht wirklich ernst gemeinter "Healthy food recommendation"-Dienst und wird gerne genutzt, um Microservice- und Cloud-native Technologien zu demonstrieren.
In diesem Lab nutzen wir hierzu als Service Mesh [istio](https://istio.io) und als Anschauungsgegenstand [Yelb](https://github.com/microservices-demo/microservices-demo) in einer für unsere Deployment-Zwecke minimal modifizierten Form. Yelb ist ein nicht wirklich ernst gemeinter "Healthy food recommendation"-Dienst und wird gerne genutzt, um Microservice- und Cloud-native Technologien zu demonstrieren.
Yelb basiert auf den folgenden Komponenten:
*Yelb* basiert auf den folgenden Komponenten:
- [NGINX](https://www.nginx.com) zum Ausliefern des webbasierten Front-Ends,
- einem REST-basierten App-Server ([Sinatra](http://sinatrarb.com)-based),
- einer [PostgreSQL](https://www.postgresql.org)-DB und
- [REDIS](https://redis.io) als In-Memory Cache.
Alle genannten Komponenten werden als öffentliche Container Images über Dockerhub bezogen. Mehr über die Architekur und Implementierung von Yelb finden Sie im [Repository](https://github.com/mreferre/yelb).
Alle genannten Komponenten werden als öffentliche Container Images über Dockerhub bezogen. Mehr über die Architekur und Implementierung von *Yelb* finden Sie im [Yelb-Repository](https://github.com/mreferre/yelb).
In diesem Lab werden Sie:
1. Eine bestehende (nicht explizit für ein Service Mesh konzipierte) Cloud-native Applikation namens *Yelb* deployen.
2. Diese Anwendung nachträglich mit dem Service Mesh [istio] instrumentieren.
3. Die Anwendung im laufenden Betrieb mittels [Kiali](https://kiali.io) inspezieren.
4. Und abschließend einen typischen Fall im laufenden Betrieb einer Cloud-native Applikation mittels Traffic Management lösen *(Ausbringung einer neuen Version einer Teilkomponente und nur einen Teil des Live-Traffics auf diese neue Version umleiten, z.B. um dessen Verhalten im Live-Betrieb besser einschätzen zu können)*.
## Inhaltsverzeichnis
- [Lab 08 Observability](#lab-08-observability)
- [Inhaltsverzeichnis](#inhaltsverzeichnis)
- [Vorbereitung](#vorbereitung)
- [Übung 01: Deployen von Yelb](#übung-01-deployen-von-yelb)
- [Übung 02: Injezieren eines Service Meshs (hier: istio)](#übung-02-injezieren-eines-service-meshs-hier-istio)
- [Übung 03: Inspezieren eines Service Meshs mittels Kiali](#übung-03-inspezieren-eines-service-meshs-mittels-kiali)
- [Übung 02: Instrumentieren einer Applikation mittels eines Service Meshs (istio)](#übung-02-instrumentieren-einer-applikation-mittels-eines-service-meshs-istio)
- [Übung 03: Inspezieren einer Applikation mittels Service Meshs (Kiali)](#übung-03-inspezieren-einer-applikation-mittels-service-meshs-kiali)
- [Übung 04: Traffic Management mittels Virtuellen Services](#übung-04-traffic-management-mittels-virtuellen-services)
## Vorbereitung
1. [Forken](https://git.mylab.th-luebeck.de/cloud-native/lab-observability/-/forks/new) Sie sich bitte dieses [Repository](https://git.mylab.th-luebeck.de/cloud-native/lab-observability).
2. Setzen Sie bitte in Gitlab für das in Schritt 1 geforkte Repository die `KUBECONFIG` Variable in `Einstellungen -> CI/CD -> Variables` auf den Inhalt der Kubeconfig-Datei, die Sie für dieses Modul als Access Credential für den bereitgestellten Kubernetes Cluster erhalten haben (Type: `File`).
3. Installieren Sie **[Python 3](https://www.python.org/downloads)** (falls noch nicht geschehen).
4. Installieren Sie einen HTTP Load Generator wie bspw. **[salvo](https://github.com/tarekziade/salvo)** mittels `pip install salvo` oder `python3 -m install salvo` (je nachdem wie Ihre Python-Umgebung aufgesetzt ist). *Sie können mit anderen HTTP Load Generatoren arbeiten. Diese Anleitung basiert jedoch auf `salvo`.*
3. Installieren Sie [istio](https://istio.io) auf Ihrem lokalen System gem. diesen [Anweisungen](https://istio.io/latest/docs/setup/getting-started/#download). ***Hinweis:** Sie müssen istio nicht auf dem Kubernetes-Cluster installieren, der Cluster ist bereits entsprechend konfiguriert. Sie müssen auf Ihrem lokalen System nur `istioctl` nutzen können.*
4. Installieren Sie **[Python 3](https://www.python.org/downloads)** (falls noch nicht geschehen).
5. Installieren Sie einen HTTP Load Generator wie bspw. **[salvo](https://github.com/tarekziade/salvo)** mittels `pip install salvo` oder `python3 -m install salvo` (je nachdem wie Ihre Python-Umgebung aufgesetzt ist). *Sie können mit anderen HTTP Load Generatoren arbeiten. Diese Anleitung basiert jedoch auf `salvo`.*
## Übung 01: Deployen von Yelb
- to be done
## Übung 02: Injezieren eines Service Meshs (hier: [istio](https://istio.io))
## Übung 02: Instrumentieren einer Applikation mittels eines Service Meshs [(istio)](https://istio.io)
- to be done
## Übung 03: Inspezieren eines Service Meshs mittels [Kiali](https://kiali.io)
## Übung 03: Inspezieren einer Applikation mittels Service Meshs [(Kiali)](https://kiali.io)
- to be done
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment