Im Rahmen dieses Projekts war ich an der Planung und
Umsetzung eines extern zugänglichen Entwickler- Testsystems beteiligt ? ein Meilenstein, da erstmals eine öffentlich erreichbare Plattform für Drittentwickler bereitgestellt wurde. Ziel war es, eine sichere, vom internen Unternehmensnetz isolierte Umgebung bereitzustellen, über die Drittentwickler gezielt und kontrolliert mit bereitgestellten APIs arbeiten konnten:
Mitverantwortlich für die
Umsetzung einer mehrstufigen Zugriffsstruktur mit
Anbindung der Services an
Absicherung der Services über dedizierte
Aufbau und Anbindung eines Backends mit Harvester, Seeder und Trigger Exporter zur Verarbeitung von Events und Daten
Automatisierte Bereitstellung der Infrastruktur und Anwendungen mittels
Verwaltung von Docker-Images in der
Veröffentlichung der Services über
Implementierung einer
Unterstützung bei der
Optimierung der Startzeit von
Quellcodeverwaltung über
Mitwirkung an der
Aktiver
Migration der Artifactory-Instanz
Bestandsaufnahme: Analyse der aktuellen Artifactory- Instanz auf der Linux-VM, einschließlich aller Konfigurationen und gespeicherten Daten
Kubernetes-Cluster-Design: Planung der Container- Architektur und Ressourcenanforderungen für Artifactory im Kubernetes-Cluster
Containerisierung: Erstellung und Konfiguration eines Docker-Images für Artifactory
Deployment im Kubernetes-Cluster: Bereitstellung der Artifactory-Instanz im Kubernetes-Cluster unter Verwendung von Helm-Charts
Datenmigration: Übertragung aller Artefakte, Konfigurationen und Daten von der alten VM-Instanz zur neuen Artifactory-Instanz im Cluster
Umstieg auf die Artifactory-Docker-Registry
Konfiguration: Einrichtung und Konfiguration der Docker-Registry innerhalb von Artifactory.
Anpassung der Jenkins-Secrets
Aktualisierung der Jenkins-Secrets zur Authentifizierung bei der neuen Artifactory-Docker-Registry
Verifizierung der Funktionalität der Secrets und der Zugriffsrechte
Anpassung der CI/CD-Pipelines
Pipeline-Update:
CI/CD-Pipelines: Anpassung aller CI/CD-Pipelines, um die neue Artifactory-Docker-Registry zu nutzen
Durchführung von Tests, um sicherzustellen, dass die Pipelines korrekt mit der neuen Registry interagieren und die Builds, Deployments und Tests erfolgreich durchgeführt werden.
Systemüberprüfung und Validierung
Performance- und Stabilitätstests: Überprüfung der Performance und Stabilität der Artifactory-Instanz im neuen Kubernetes-Cluster.
Dokumentation und Schulung
Erstellung einer umfassenden Dokumentation über die neue Artifactory-Instanz, die Docker-Registry- Konfiguration und die aktualisierten CI/CD-Pipelines.
Schulung der Teams zur Nutzung der neuen Artifactory- Docker-Registry und der geänderten CI/CD-Pipelines
Bereitstellung der neuen Bitbucket-Instanz im Kubernetes-Cluster: Einrichtung und Konfiguration der Bitbucket-Instanz innerhalb eines Kubernetes-Clusters, einschließlich der notwendigen Container- und Netzwerkinfrastruktur
Sicherung der vorhandenen Projekte, Repositorys und Quellcodes: Nutzung von API-Requests zur Sicherung aller relevanten Daten, einschließlich Projekte, Repositorys und Quellcodes, von der bestehenden Windows-basierten Bitbucket-Instanz
Rücksicherung der Daten: Durchführung der Datenrücksicherung in die neue Bitbucket-Instanz im Kubernetes-Cluster mithilfe von API-Requests
Erstellen der Zugriffsberechtigungen und Service- Accounts: Erstellung und Konfiguration der notwendigen Zugriffsberechtigungen und Service-Accounts für die Verwaltung und Nutzung der neuen Bitbucket-Instanz.
Bedarfsermittlung: Erfassung der benötigten Dienste,
Abhängigkeiten und Konfigurationen für die lokale Entwicklungsumgebung.
Architekturdesign: Entwurf der Container-Architektur, um alle erforderlichen Komponenten zu integrieren (z.B. Datenbanken, Webserver, Caching-Systeme).
Docker Compose Setup: Entwicklung und Konfiguration der docker-compose.yml-Datei, um die benötigten Container-Services zu definieren und zu orchestrieren.
Service-Definition: Spezifikation der Container-Images, Netzwerke und Volumes, die für die Entwicklungsumgebung erforderlich sind.
Container-Bereitstellung: Ausführung der Docker Compose-Definition, um die Container-Umgebung zu starten und zu konfigurieren.
Funktionstests: Verifikation der Funktionsfähigkeit aller Container und deren Interaktionen in der lokalen Entwicklungsumgebung.
Dokumentation: Erstellung einer umfassenden Dokumentation zur Nutzung und Verwaltung der Docker Compose-Umgebung, einschließlich der Konfigurationsdetails und typischen Anwendungsfälle.
Schulung: Durchführung von Schulungen für das Entwicklungsteam zur effektiven Nutzung und Verwaltung der neuen Entwicklungsumgebung.
Bestandsaufnahme im aktuellen Rechenzentrum: Erfassen der bestehenden Infrastruktur und Komponenten
Konzeption der Container-Infrastruktur: Entwicklung einer maßgeschneiderten Container-Architektur für die LIVE-Anwendung, die den Anforderungen an Skalierbarkeit und Ausfallsicherheit gerecht wird.
Umgebungskonfiguration: Einrichtung und Konfiguration der Docker- und Kubernetes-Umgebung zur Unterstützung der Anwendung.
Performance- und Stabilitätstests: Durchführung von Last- und Stabilitätstests zur Überprüfung der Performance der Anwendung unter realistischen Bedingungen.
Risikobewertung: Analyse der Testergebnisse zur Identifikation potenzieller Risiken beim Dienstleisterwechsel und zur Planung weiterer Schritte.
Implementierung und Konfiguration des Postgres-
Operators im Kubernetes-Cluster zur Verwaltung und Orchestrierung der PostgreSQL-Datenbanken
Bereitstellung des Postgres-Operators mithilfe der CI/CD Pipeline
Erstellung von logical Backups der Datenbanken, um vollständige und konsistente Sicherungen der Daten und Metadaten zu gewährleisten.
Einrichtung von Point-in-Time Recovery Backups zur Wiederherstellung von Datenbankzuständen zu einem spezifischen Zeitpunkt.
Konfiguration der Backup-Speicherung und -Verwaltung in einem S3-Bucket
Bash-Skripte zur automatisierten Archivierung sehr großer Geodatenbestände. Die Skripte wurden so entwickelt, dass sie nahtlos in die bestehende GeoServer- Umgebung (Linux VM) integriert werden konnten, wodurch manuelle Eingriffe minimiert und die Effizienz gesteigert wurden.
Die automatisierte Ausführung der Skripte habe ich mithilfe der Ubuntu Tools gelöst (crontab)
Erstellung und Implementierung von Backup- und Archivierungsprozessen für große Mengen an Geodaten, um deren langfristige Verfügbarkeit und Sicherheit zu gewährleisten. Die Daten werden automatisiert in ein S3- Bucket gesichert
Zudem beinhaltet die Lösung die Überprüfung der Integrität der Daten
Automatisierte Löschung veralteter Geodaten nach der Archivierung, sowohl durch direkte Entfernung aus dem Datenverzeichnis auf dem Server als auch über die REST- API der GeoServer-Oberfläche. Da Daten im GeoServer- Frontend nicht automatisch verschwinden, wenn sie aus dem Datenverzeichnis gelöscht werden, sorgt die REST- API für eine vollständige und konsistente Bereinigung der Daten in der Benutzeroberfläche.
Implementierung des ELK Stacks: Aufbau und Konfiguration von Elasticsearch, Logstash und Kibana für zentrales Logging und Visualisierung von Logs
Einführung von Prometheus: Einrichtung von Prometheus zur Sammlung von Metriken und Überwachung der Systemleistung
Visualisierung mit Grafana: Integration von Grafana zur Erstellung von Dashboards für die Echtzeit- Visualisierung der gesammelten Metriken
Uptime-Monitoring: Implementierung eines Uptime- Monitoring-Systems zur kontinuierlichen Überprüfung der Verfügbarkeit der Anwendungen und Services
Alarmierung: Einrichtung von Alarmierung um bei Grenzwertüberschreitungen oder Systemausfällen proaktive Benachrichtigungen zu erhalten
Netzwerkkonzeption und -erstellung: Entwicklung und
Implementierung eines robusten Netzwerklayouts, das die Anforderungen der containerisierten Umgebung erfüllt
Firewall und Sicherheit: Einrichtung von Firewall-Regeln zur Absicherung der Netzwerke und Datenflüsse
VPN-Integration: Aufbau von VPN-Tunneln zur sicheren Verbindung zwischen dem Firmennetzwerk und dem Rechenzentrum
Containerisierung der Anwendungen: Umstellung der Wildfly-Anwendungen auf Docker-Container
Kubernetes-Cluster: Erstellung und Konfiguration von Kubernetes-Clustern für die Bereitstellung der containerisierten Anwendungen
Datenbankmigration: Umstellung und Migration der bestehenden Datenbanken
Die Aufstiegsfortbildung zum Operative Professional ist
auf DQR-EQR-Level 6 eingeordnet. Dieser Abschluss ist gleichwertig mit dem Bachelor, Meister und Fachwirt.
Kanban, Bash, Keycloak, Grafana, Teamwork, Backups, VirtualBox, Dependency-Track, DevOps, Kibana, Agile, Strukturiertes Arbeiten, Wildfly, Postgresql, Groovy, Jira, Lösungsortientiert, Geoserver, Mongodb, Shell, Docker, Elastic Stack, Wildfly, Confluence, VM, Scrum, Jenkins, Elasticsearch, Helm, S3, Uptime, Maven, Cloud- Computing, Prometheus, Linux, Metakube | Kubernetes by SysEleven, Ubuntu, Git, Nginx, OpenStack, Docker Images, Ingress NGINX, SysEleven Stack | OpenStack Cloud, CI/CD, Kubernetes, Certmanager, Netzwerke
Im Rahmen dieses Projekts war ich an der Planung und
Umsetzung eines extern zugänglichen Entwickler- Testsystems beteiligt ? ein Meilenstein, da erstmals eine öffentlich erreichbare Plattform für Drittentwickler bereitgestellt wurde. Ziel war es, eine sichere, vom internen Unternehmensnetz isolierte Umgebung bereitzustellen, über die Drittentwickler gezielt und kontrolliert mit bereitgestellten APIs arbeiten konnten:
Mitverantwortlich für die
Umsetzung einer mehrstufigen Zugriffsstruktur mit
Anbindung der Services an
Absicherung der Services über dedizierte
Aufbau und Anbindung eines Backends mit Harvester, Seeder und Trigger Exporter zur Verarbeitung von Events und Daten
Automatisierte Bereitstellung der Infrastruktur und Anwendungen mittels
Verwaltung von Docker-Images in der
Veröffentlichung der Services über
Implementierung einer
Unterstützung bei der
Optimierung der Startzeit von
Quellcodeverwaltung über
Mitwirkung an der
Aktiver
Migration der Artifactory-Instanz
Bestandsaufnahme: Analyse der aktuellen Artifactory- Instanz auf der Linux-VM, einschließlich aller Konfigurationen und gespeicherten Daten
Kubernetes-Cluster-Design: Planung der Container- Architektur und Ressourcenanforderungen für Artifactory im Kubernetes-Cluster
Containerisierung: Erstellung und Konfiguration eines Docker-Images für Artifactory
Deployment im Kubernetes-Cluster: Bereitstellung der Artifactory-Instanz im Kubernetes-Cluster unter Verwendung von Helm-Charts
Datenmigration: Übertragung aller Artefakte, Konfigurationen und Daten von der alten VM-Instanz zur neuen Artifactory-Instanz im Cluster
Umstieg auf die Artifactory-Docker-Registry
Konfiguration: Einrichtung und Konfiguration der Docker-Registry innerhalb von Artifactory.
Anpassung der Jenkins-Secrets
Aktualisierung der Jenkins-Secrets zur Authentifizierung bei der neuen Artifactory-Docker-Registry
Verifizierung der Funktionalität der Secrets und der Zugriffsrechte
Anpassung der CI/CD-Pipelines
Pipeline-Update:
CI/CD-Pipelines: Anpassung aller CI/CD-Pipelines, um die neue Artifactory-Docker-Registry zu nutzen
Durchführung von Tests, um sicherzustellen, dass die Pipelines korrekt mit der neuen Registry interagieren und die Builds, Deployments und Tests erfolgreich durchgeführt werden.
Systemüberprüfung und Validierung
Performance- und Stabilitätstests: Überprüfung der Performance und Stabilität der Artifactory-Instanz im neuen Kubernetes-Cluster.
Dokumentation und Schulung
Erstellung einer umfassenden Dokumentation über die neue Artifactory-Instanz, die Docker-Registry- Konfiguration und die aktualisierten CI/CD-Pipelines.
Schulung der Teams zur Nutzung der neuen Artifactory- Docker-Registry und der geänderten CI/CD-Pipelines
Bereitstellung der neuen Bitbucket-Instanz im Kubernetes-Cluster: Einrichtung und Konfiguration der Bitbucket-Instanz innerhalb eines Kubernetes-Clusters, einschließlich der notwendigen Container- und Netzwerkinfrastruktur
Sicherung der vorhandenen Projekte, Repositorys und Quellcodes: Nutzung von API-Requests zur Sicherung aller relevanten Daten, einschließlich Projekte, Repositorys und Quellcodes, von der bestehenden Windows-basierten Bitbucket-Instanz
Rücksicherung der Daten: Durchführung der Datenrücksicherung in die neue Bitbucket-Instanz im Kubernetes-Cluster mithilfe von API-Requests
Erstellen der Zugriffsberechtigungen und Service- Accounts: Erstellung und Konfiguration der notwendigen Zugriffsberechtigungen und Service-Accounts für die Verwaltung und Nutzung der neuen Bitbucket-Instanz.
Bedarfsermittlung: Erfassung der benötigten Dienste,
Abhängigkeiten und Konfigurationen für die lokale Entwicklungsumgebung.
Architekturdesign: Entwurf der Container-Architektur, um alle erforderlichen Komponenten zu integrieren (z.B. Datenbanken, Webserver, Caching-Systeme).
Docker Compose Setup: Entwicklung und Konfiguration der docker-compose.yml-Datei, um die benötigten Container-Services zu definieren und zu orchestrieren.
Service-Definition: Spezifikation der Container-Images, Netzwerke und Volumes, die für die Entwicklungsumgebung erforderlich sind.
Container-Bereitstellung: Ausführung der Docker Compose-Definition, um die Container-Umgebung zu starten und zu konfigurieren.
Funktionstests: Verifikation der Funktionsfähigkeit aller Container und deren Interaktionen in der lokalen Entwicklungsumgebung.
Dokumentation: Erstellung einer umfassenden Dokumentation zur Nutzung und Verwaltung der Docker Compose-Umgebung, einschließlich der Konfigurationsdetails und typischen Anwendungsfälle.
Schulung: Durchführung von Schulungen für das Entwicklungsteam zur effektiven Nutzung und Verwaltung der neuen Entwicklungsumgebung.
Bestandsaufnahme im aktuellen Rechenzentrum: Erfassen der bestehenden Infrastruktur und Komponenten
Konzeption der Container-Infrastruktur: Entwicklung einer maßgeschneiderten Container-Architektur für die LIVE-Anwendung, die den Anforderungen an Skalierbarkeit und Ausfallsicherheit gerecht wird.
Umgebungskonfiguration: Einrichtung und Konfiguration der Docker- und Kubernetes-Umgebung zur Unterstützung der Anwendung.
Performance- und Stabilitätstests: Durchführung von Last- und Stabilitätstests zur Überprüfung der Performance der Anwendung unter realistischen Bedingungen.
Risikobewertung: Analyse der Testergebnisse zur Identifikation potenzieller Risiken beim Dienstleisterwechsel und zur Planung weiterer Schritte.
Implementierung und Konfiguration des Postgres-
Operators im Kubernetes-Cluster zur Verwaltung und Orchestrierung der PostgreSQL-Datenbanken
Bereitstellung des Postgres-Operators mithilfe der CI/CD Pipeline
Erstellung von logical Backups der Datenbanken, um vollständige und konsistente Sicherungen der Daten und Metadaten zu gewährleisten.
Einrichtung von Point-in-Time Recovery Backups zur Wiederherstellung von Datenbankzuständen zu einem spezifischen Zeitpunkt.
Konfiguration der Backup-Speicherung und -Verwaltung in einem S3-Bucket
Bash-Skripte zur automatisierten Archivierung sehr großer Geodatenbestände. Die Skripte wurden so entwickelt, dass sie nahtlos in die bestehende GeoServer- Umgebung (Linux VM) integriert werden konnten, wodurch manuelle Eingriffe minimiert und die Effizienz gesteigert wurden.
Die automatisierte Ausführung der Skripte habe ich mithilfe der Ubuntu Tools gelöst (crontab)
Erstellung und Implementierung von Backup- und Archivierungsprozessen für große Mengen an Geodaten, um deren langfristige Verfügbarkeit und Sicherheit zu gewährleisten. Die Daten werden automatisiert in ein S3- Bucket gesichert
Zudem beinhaltet die Lösung die Überprüfung der Integrität der Daten
Automatisierte Löschung veralteter Geodaten nach der Archivierung, sowohl durch direkte Entfernung aus dem Datenverzeichnis auf dem Server als auch über die REST- API der GeoServer-Oberfläche. Da Daten im GeoServer- Frontend nicht automatisch verschwinden, wenn sie aus dem Datenverzeichnis gelöscht werden, sorgt die REST- API für eine vollständige und konsistente Bereinigung der Daten in der Benutzeroberfläche.
Implementierung des ELK Stacks: Aufbau und Konfiguration von Elasticsearch, Logstash und Kibana für zentrales Logging und Visualisierung von Logs
Einführung von Prometheus: Einrichtung von Prometheus zur Sammlung von Metriken und Überwachung der Systemleistung
Visualisierung mit Grafana: Integration von Grafana zur Erstellung von Dashboards für die Echtzeit- Visualisierung der gesammelten Metriken
Uptime-Monitoring: Implementierung eines Uptime- Monitoring-Systems zur kontinuierlichen Überprüfung der Verfügbarkeit der Anwendungen und Services
Alarmierung: Einrichtung von Alarmierung um bei Grenzwertüberschreitungen oder Systemausfällen proaktive Benachrichtigungen zu erhalten
Netzwerkkonzeption und -erstellung: Entwicklung und
Implementierung eines robusten Netzwerklayouts, das die Anforderungen der containerisierten Umgebung erfüllt
Firewall und Sicherheit: Einrichtung von Firewall-Regeln zur Absicherung der Netzwerke und Datenflüsse
VPN-Integration: Aufbau von VPN-Tunneln zur sicheren Verbindung zwischen dem Firmennetzwerk und dem Rechenzentrum
Containerisierung der Anwendungen: Umstellung der Wildfly-Anwendungen auf Docker-Container
Kubernetes-Cluster: Erstellung und Konfiguration von Kubernetes-Clustern für die Bereitstellung der containerisierten Anwendungen
Datenbankmigration: Umstellung und Migration der bestehenden Datenbanken
Die Aufstiegsfortbildung zum Operative Professional ist
auf DQR-EQR-Level 6 eingeordnet. Dieser Abschluss ist gleichwertig mit dem Bachelor, Meister und Fachwirt.
Kanban, Bash, Keycloak, Grafana, Teamwork, Backups, VirtualBox, Dependency-Track, DevOps, Kibana, Agile, Strukturiertes Arbeiten, Wildfly, Postgresql, Groovy, Jira, Lösungsortientiert, Geoserver, Mongodb, Shell, Docker, Elastic Stack, Wildfly, Confluence, VM, Scrum, Jenkins, Elasticsearch, Helm, S3, Uptime, Maven, Cloud- Computing, Prometheus, Linux, Metakube | Kubernetes by SysEleven, Ubuntu, Git, Nginx, OpenStack, Docker Images, Ingress NGINX, SysEleven Stack | OpenStack Cloud, CI/CD, Kubernetes, Certmanager, Netzwerke