Glossar
B
BigBlueButton
BigBlueButton ist ein Open Source Webkonferenz-System. Hier kann man Konferenzräume erstellen, in welche man andere Nutzer per Link einladen kann. Per Audio, Video und Chat lässt sich dann in diesen Räumen miteinander kommunizieren. Außerdem kann man Dateien hochladen und verschicken, sowie zeichnen, ein virtuelles Whiteboard benutzen und seinen Bildschirm teilen. Der Moderator steuert einen Raum und kann Teilnehmer aus der Konferenz entfernen, sowie sehr granuliert Rechte entziehen oder erteilen. Es wird oft für Schul- und Lehrveranstaltungen genutzt, da sich Lernplattformen wie z.B. Moodle einfach einbinden lassen und es eine Reihe von Funktionen Out-of-the-Box bietet, die das Leben in Lehrveranstaltungen erleichtern.
C
Container
Ein Container bzw. ein Software-Container ist eine virtuelle Umgebung, in der alle Komponenten einer Applikation gesammelt sind. Der Container kann also auf unterschiedlichsten Rechnerumgebungen, ohne weitere Anpassungen ausgeführt werden. Er ist damit äußerst flexibel.
Cluster
Als Cluster wird ein Verbund von Servern bezeichnet, die nach außen hin für den Anwender auftreten, als wären sie nur ein Server. Ziel ist es die Verfügbarkeit und die Leistungsfähigkeit von Anwendungen zu steigern. Ebenfalls kann ein Cluster dazu dienen eine große Anzahl an Anfragen auf verschiedene Server zu verteilen, dies wird als Load Balancing bezeichnet. Die einzelnen Server in einem Cluster können zentral zusammen an einem Ort stehen, oder aber auch verteilt an verschiedenen Standorten. Dies hat den Vorteil, dass bei einem Ausfall eines ganzen Standortes, zum Beispiel durch einen Brand, der Dienst weiterhin verfügbar ist. Aber auch Zugriffszeiten können durch regionale Verteilung verkürzt werden.
Durch die Mehrzahl an Servern die benötigt werden, steigen allerdings auch die Investitions- und Betriebskosten, sowie der Wartungsaufwand. Abhilfe können hier Dienstleister verschaffen, die Rechenleistung und Speicherplatz zur Verfügung stellen.
In der Praxis werden Cluster vor allem für sensible IT-Infrastruktur eingesetzt, wie zum Beispiel Anwendungen in Gesundheitssektor, oder aber auch eine zentrale Benutzerverwaltung im Unternehmen.
G
Git
Git ist eine Software zur verteilten Versionskontrolle, welche im Jahr 2005 erschienen ist. Heutzutage ist Git der quasi Standard bei der Entwicklung von Softwareprojekten im Team. Jeder Entwickler hat hierbei eine Kopie der zentralen Projektdatenbank - das Repository - lokal auf seinem Rechner. Im Repository sind alle Dokumente, Quellcode usw. des Projektes enthalten. Ebenfalls werden hier alle Änderungen dokumentiert. Somit kann immer nachvollzogen werden, wer etwas geändert, gelöscht oder hinzugefügt hat.
Alle Änderungen am Repository werden lokal vorgenommen, was ein arbeiten auch ohne Verbindung zum zentralen Repository ermöglicht. Sollen diese Änderungen nun mit den anderen Entwicklern geteilt werden, so werden sie zuerst “commited”. Das bedeutet, dass die Änderungen kurz und prägnant beschrieben werden. Anschließend können die Änderungen “gepusht”, also mit dem zentralen Repository geteilt werden. Änderungen von anderen Entwicklern können per “pull” wieder in deren lokale Projektdatenbank geladen werden.
Um zum Beispiel neue Features einer Software zu entwickeln, ohne dass diese direkt in den Quellcode der produktiven Software wandern können sogenannte Branches erstellt werden. Diese sind separate Arbeitszweige und werden parallel zum “Haupt”-Branch weitergeführt. Sollen die in einem Branch entwickelten Änderungen nun in in den “Haupt”-Branch zurückgeführt werden, passiert dies über einen sogenannten “merge”. Hier besteht allerdings die Gefahr, dass Konflikte entstehen, wenn in mehreren Branches die gleichen Dateien geändert werden. Diese Konflikte müssen dann von Hand aufgelöst werden, was bei einer großen Anzahl an Konflikten sehr Zeitaufwendig ist.
Um Git auch im Web zu nutzen gibt es Plattformen wie GitHub oder GitLab. Beide sind Repository Management Systeme, wobei GitLab selbst gehostet werden kann, was eine vollständige Kontrolle über die eigenen Daten ermöglicht.
GNU/Linux
GNU/Linux ist ein Betriebssystem, welches sich aus dem Linux-Kernel und einer breiten Palette an GNU-Software zusammensetzt. Die Geburtsstunde von GNU/Linux ist wohl der berühmte Post von Linus Torvalds vom 25. August 1991, in dem er sein “Baby” vorstellt und aber gleichzeitig auch ankündigt, dass es wohl nie etwas Großes und Professionelles werden wird.
Wenige Jahre später sah die Welt schon ganz anders aus:
Immer mehr Software-Hersteller und vor allen Dingen Internet-Unternehmen griffen das Thema und das OS GNU/Linux auf. Als Unix-ähnliches System war es von Hause aus, auf einen echten Mehr-Nutzer-Betrieb und die Einbindung in Netzwerke hin ausgerichtet. Beide Themen wurden mit dem wachsenden Internet immer wichtiger, sodass GNU/Linux rasch an Bedeutung gewinnen konnte.
Als i-Tüpfelchen kam dann noch die leichte Portierbarkeit auf andere Rechnerarchitekturen hinzu: so war GNU/Linux schnell für eine Vielzahl an ganz unterschiedlichen Systemen von der klassischen Intel-Architektur (i386) bis hin zum Großrechner (zSeries) verfügbar. Später kam der Einsatz auf Kleinstrechner wie dem Raspberry PI und sogar Mobiltelefone dazu, sodass heute eine unglaublich breite Palette an Systemen abgedeckt wird.
Es gibt viele verschiedene „Distributionen“ (abgestimmtes Softwarepaket um den Kernel), welche das Betriebssystem extrem vielseitig einsetzbar machen. Ein Großteil der digitalen Infrastruktur und insbesondere Cloud-Infrastrukturen laufen mittlerweile über Linux.
Grafana
Grafana ist eine Open-Source Anwendung, die plattformübergreifend Daten aus verschiedenen Datenbanken grafisch darstellen kann. Die Rohdaten (z. B. Zahlenwerte) können in verschiedenen Anzeigeformen (z. B. Graphen oder Statistiken) ausgegeben werden und zu Dashboards (Übersichtsseiten) zusammengefasst werden. Grafana wird für Monitoring-Systeme verwendet, da es eine gute Möglichkeit bietet, die Daten, die beim Monitoring anfallen, anschaulich darzustellen.
J
Jitsi Meet
Jitsi Meet ist ein Urgestein im Bereich der Open Source Web-Conferencing-Lösungen. In den vergangenen Monaten hat das Projekt sicherlich auch durch die wachsende Nachfrage nach entsprechenden Lösungen während der Corona-Pandemie und nicht zuletzt auch durch den Einsatz im Phoenix Projekt als Bestandteil eines digital souveränen Behördenarbeitplatzes große Entwicklungssprünge gemacht.
Neben den klassischen Funktionen wie Video, Audio, Chat und Bildschirm-Teilen bietet Jitsi Meet einige nette Zusatzmöglichkeiten. Dazu gehören anpassbare Video-Hintergründe, Umfragen oder auch animierte Feedbackmöglichkeiten wie Applaus.
Neben BigBlueButton ist Jitsi Meet die OS-Web-Conferencing-Lösung mit der größten Verbreitung.
K
Kubernetes
Kubernetes ist eine Anwendung zur automatisierten Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen. Veröffentlicht wurde es im Jahr 2014 von Google als Open-Source-Projekt.
Kubernetes alleine dient nur zur Verwaltung von Containern. Als Unterbau wird noch ein Container-Dienst wie zum Beispiel Docker benötigt, welcher für die Erstellung, Bereitstellung, Ausführung, Aktualisierung und Verwaltung der Container zuständig ist. Kubernetes wird meist in einem Cluster betrieben, welcher aus einem Master und mehreren Nodes besteht. Der Master ist die Schnittstelle für den Entwickler um dort die Konfiguration des Clusters vorzunehmen. Der Master sorgt dann dafür, dass der in den Konfigurationsdateien definierte Zustand erreicht wird. Auf den Nodes laufen die eigentlichen Container, welche dem Nutzer zur Verfügung stehen. Wird in der Konfiguration definiert, dass für eine Anwendung 3 Container bereitgestellt werden sollen, startet Kubernetes automatisch 3 Container und überwacht die ganze Zeit, dass diese Anzahl gehalten wird. Fällt nun ein Cluster-Node aus, so sorgt Kubernetes dafür, dass auf den verbleibenden Nodes im Cluster neue Instanzen des Containers erstellt werden. Hier liegt auch ein großer Vorteil von Kubernetes, dass der Zustand der Container dauerhaft überwacht wird und dafür gesorgt wird, dass die Dienste immer zur Verfügung stehen. Ebenfalls lässt sich die Anzahl der Container an die Last anpassen. Wenn eine hohe Anzahl an Zugriffen auf die Anwendung passieren, dann kann die Anzahl an Containern automatisch gesteigert werden. Sinkt die Anzahl an Zugriffen wieder, wird die Anzahl an Containern wieder reduziert.
Um allerdings diese Flexibilität hinzubekommen bedarf es eines großen Planungs- und Betriebsaufwandes des Clusters. Es muss sichergestellt werden, dass die Server immer verfügbar sind und dass die Konfiguration der Container passend für den Anwendungsfall ist. Dies benötigt ein hohes Maß an Erfahrung.
M
Monitoring
Monitoring bezeichnet die Überwachung/Beobachtung von Systemen, Parametern, Funktionalitäten oder Prozessen. Die Spannweite reicht dabei von der Überwachungen technischer Details und Funktionen bis hin zur Beobachtungen abgeleiteter Kennzahlen (auch KPIs - Key Performance Indicators). Es können einzelne Systeme oder ganze Infrastrukturen in ein Monitoring einbezogen werden.
Es gibt eine Reihe von Open Source Software Lösungen, die auf der einen Seite die technischen Aspekte des Monitorings adressieren, und auf der anderen Seite auch solche, die sich um die übersichtliche Zusammen- und Darstellung der erhobenen Informationen kümmern.
Insbesondere wenn es darum geht, umfassende Daten aus komplexen Systemen zusammen zu fassen und übersichtlich darzustellen, bieten sich spannende Möglichkeit mit Grafana.
Auf diese Weise bietet ein Monitoring ganz unterschiedliche Detailgrade für unterschiedliche Adressaten. Im Kern bleibt aber die Information ob alles so läuft wie man das erwartet oder eben nicht.
O
Open Source Software
(auch FLOSS - Free Libre Open Source Software)
Freie Software im engeren Sinne wird durch 4 Freiheiten definiert:
- Die Freiheit, ein Programm für jeden Zweck einsetzen zu dürfen
- Die Freiheit, untersuchen zu dürfen, wie ein Programm funktioniert, und es den eigenen Bedürfnissen anzupassen
- Die Freiheit, Kopien für Andere machen zu dürfen
- Die Freiheit, das Programm verbessern zu dürfen und diese Verbesserungen zum allgemeinen Wohl zugänglich zu machen
Diese Freiheiten machen deutlich, dass es bei Open Source und freier Software eher nicht um das “frei” wie in Freibier, sondern eher um ein “frei” wie in Redefreiheit geht. Also weniger um kostenlos, sondern eben mehr um Unabhängigkeit, Flexibilität und Selbstbestimmung.
So philosophisch das klingt bringen das Entwicklungsmodell von OSS, der Zugriff auf den Quellcode und die genannten Freiheiten ganz pragmatische und strategische Vorteile für den Einsatz im Unternehmen. Sie bedingen auf der anderen Seite aber auch - wenn man selber am Entwicklungsprozess teilnehmen möchte - auch einige Pflichten.
Aufgrund der Möglichkeit, die der Nutzer/Anwender durch den Zugriff auf den Quellcode erhält, ergeben sich insbesondere für den Einsatz in sicherheitskritischen Infrastrukturen ganz entscheidende Vorteile, da man genau nachvollziehen kann, was eine Software genau macht.
Die Anpassbarkeit erlaubt den Einsatz auch für sehr individuelle Bedarfe und eröffnet immense Innovationspotentiale. Darüber hinaus gibt es keine unauflösbare Abhängigkeit von einem einzelnen Hersteller - ein großes Risiko bei proprietären Software-Lösungen fällt also weg.
Freie Software ist sowohl aus wirtschaftlichen Erwägungen als auch im Hinblick auf eine nachhaltige Digitalisierung ein großer Pluspunkt.
Ob eine Software als Open Source oder besser als Freie Software gilt hängt dabei maßgeblich von den Lizenzbedingungen ab.
Mehr zu FLOSS findet sich zum Beispiel bei der Free Software Foundation Europe.
V
VoIP
VoIP ist die Kurzform für “Voice over IP” und steht für die Übertragung von Sprache über IP basierte Netze bzw. dem Internet. Diese Technik ersetzt seit Jahren immer mehr die klassische Analoge Telefonie.
Der Begriff umfasst dabei das gesamte Feld der Digitalisierung von Telefonanlagen und Telefonen. Ein spezielles Verfahren ist dabei nicht definiert. Ein Protokoll das die Übertragung von Sprach-Daten definiert ist zum Beispiel SIP.