Schlagwörter
Skills
Projekthistorie
EMBE-Online ist ein Online-Portal, das ab 2023 zur Vorlage von Messberichten verwendet werden soll. Nach dem EfA-Prinzip entwickelt ein Land oder eine Allianz aus mehreren Ländern eine Leistung zentral und stellt diese anschließend anderen Ländern und Kommunen zur Verfügung, die den Dienst dann mitnutzen können.
Bei EMBE-Online bin ich in einem kleinen Entwicklungsteam verantwortlich für das Backend. Das Backend basiert auf einer Microservice Architektur, containerisiert, deployt mit Helm aus Gitlab-Pipelines heraus auf die Kurbernetes Plattform Rancher.
Bei diesem Projekt kommt wiederholt der Technologiestack zum Einsatz, den ich nunmehr seit über 15 Jahren intensiv einsetze, und die Aufgaben mit meiner Expertise in den Tools und Frameworks von Spring IO – Spring Boot, Spring Security, Spring Data– effektiv löse. Als Identity Provider wird Keycloak 20.x eingesetzt. Die Arbeiten finden unter Beachtung der Scrum Methoden statt, mit einem 14 tätigen Sprintwechsel und den Tools Jira und Confluence von Atlassian.
Skills: Java 17, spring/boot/security/data, PostgreSQL, Keycloak, maven, git, Gitlab, IDEA, junit, Docker, Helm, Kubernetes, Rancher, Tomcat, Liquibase, u.v.m..
Die zum Einsatz kommenden Technologien und Produkte bestehen aus der Betriebsplattform Kubernetes, basierend auf SuSE-Enterprise, den Tools Helm und Ansible für Bereitstellung der Anwendungen, gesteuert über Deploymentpipelines aus Gitlab. Die containerisierten Anwendungen sind implementiert in Java 11 und 17, unter Verwendung der Spring IO Produktlandschaft wie Spring Frame, Spring Boot, Spring Cloud nutzen als Backend die Datenbank Produkte MariaDB und MongoDB, RabbitMQ als Messagebroker und Schibboleth als Identitätsmanagementsystem.
Die Produktentwicklung findet in mehreren Gruppen unter Anwendung der Methoden von Scrum und den unterstützenden Tools von Atlassian Jira und Confluence statt. Insgesamt sind etwa 50 Mitarbeiter beteiligt.
Neben diesen Arbeiten wirkte ich führend, mit einem kleinen Entwicklerteam, bei Aktualisierung des legacy Bürgerservice Portales mit, bishin zur Implementierung einer vollständig automatischen Deployment Pipeline. Technologien wie Java 8, Redhat EAP 6.x, Rehat Enterprise Linux, Gitlab, Ansible, Maven, MariaDB, Elastic Search kamen dabei zum Einsatz.
Skills: Java 8, 11, 17, spring/boot/security/integration, Mysql / MariaDB, SQL, maven, git, Gitlab, IDEA, JUnit, Nexus, Docker, Helm, Kubernetes, Rancher,Tomcat, RabbitMQ, JBoss Redhat EAP, Ansible, u.v.m
Weiterentwicklung einer Archiv-Lösung (PACS) für den medizinischen Einsatzbereich.
2018/2019 - Das unten im Profil genannte, über 10 Jahre alte Produkt, technologisch und fachlich modernisieren. Es wird hier als eignes Projekt im CV beschrieben, weil ein umfangreicher Technologiewechsel stattfand.
Abkehr von einer Java Enterprise Container basierenden, EJB zentrierten Implementierung, monolithisch laufenden Anwendung hin zu leichtgewichtigen, fachlich separierten Komponenten, lauffähig als dockerisierte Microservices auf on-premise, AWS- und Azure Plattform.
Der Großteil der Arbeiten bestand in der Transformation zahlreicher Enterprise Java Beans in fachlich separierte, technologiefreien (nach den Prinzipien von SOLID und Clean Architecture) Klassen. Als Frameworks wird konsequent Spring Framework/ - Boot / - Integration / - Data / - Security verwendet.
Für den Transport der Application Events kommt als Message Broker Active MQ zum Einsatz, weil der Betrieb als embedded Variante, für kleine on-premise einfach, möglich (ebenfalls Basis des Azure Messaging Service) - Apache Kafka erwies sich für den on-premise Einsatz als zu komplex.
Die darüber entstanden Komponenten sind so designt, dass diese als stand alone Services als auch in eine monolithische Struktur zusammengefasst lauffähig sind.
Die deploybaren Einheiten sind Docker Images.
Durch Anwendung der Cloud Native Idee, Configuration Pattern u.v.m. sind die Services ohne Codeänderung auf den verschiedensten Cloud Plattformen und on-premise lauffähig.
Teamgröße: 20
Skills: j2ee (JPA, EJB, JMS, CDI, JDBC, JSF, JAX-RS), spring-framework/ -boot/ -security/ -integration, Mysql 5.x, SQL, Jersey, maven, subversion, IDEA, Teamcity, maven, ant, junit, Artifactory, MongoDB 3.x, Docker, Glassfish 3.x, JClouds, Active MQ, Thymeleaf und mehr.Weiterentwicklung einer Archiv-Lösung (PACS) für den medizinischen Einsatzbereich. Backend wird entwickelt auf Basis von Java Enterprise 6/ Java 8 / Java 11 in einer
klassischen Client-/Server-Architektur seit 2008. Interprozess-Kommunikation anfängliche über CORBA IIOP und JMS, später Ablösung CORBA durch REST-angelehnte Schnittstellen.
2010 - 2018
Eigenverantwortliche Implementierung eines Continuous Integration Prozesses nach den Ideen von Jez Humble (ThoughtWorks) auf der Basis von Jetbrain’s Teamcity Server als CI Server Produkt und JFrog’s Artifactory als Repository Produkt für sämtliche Build Ergebnisse. Zentrales Tool für Bau der Java Artefakte und Ausführung der automatisierten Tests ist maven 3.x. Deployment Einheiten als Ergebnis einer build pipeline sind Docker Images und System Installer.
Hauptarbeiten:
- Modularisierung des Backend Monolithen nach Domain Driven Design, integrierbar in das Gesamtsystem via JNDI und als eigenständig lauffähiger Service (Microservice). Implementierung auf Basis java 8 und spring framework/spring boot.
- Implementierung der Integration der Backend Komponenten in Security Systeme wie Microsoft Kerberos/Active Directory und OAuth2 unter Anwendung verschiedener Spring Projekte z.B. Spring Security 4.x/5.x
- Entwickler für DevOps Ideen, Themen wie Clean Code, Clean Architecture, Domain Driven Design, SOLID begeistern.
Weitere Arbeiten:
- Umstellung CORBA IIOP basierende Interprozess Kommunikation auf rein HTTP.
- Automatisierte Daten-Migration auf Basis des Tools flyway.
- Entwicklung AWS Cloudvariante des Backends im Lift&Shift Ansatz unter Anwendung der AWS Produkte S3, Cloud Watch, EC2.
- Entwicklung einer Analyse Engine auf Basis von Elastic Search, AWS Serverless Functions, S3, Kibana.
- Implementierung eines dokumentenorientierten Indexes für strukturierte Suche über Metadaten auf Basis von MongoDB 3.x, spring boot, RestHEART.
- Entwicklung von Plugins für Maven3, Teamcity, Artifactory für Verbesserung der CI Prozesse.
- Pflege des Application Servers Glassfish mit Bugfixing und Aktualisierung der Komponenten.
Teamgröße: 20
Skills: j2ee (JPA, EJB, JMS, CDI, JDBC, JSF, JAX-RS), spring-framework/ -boot/ -security/ -integration, Mysql 5.x, SQL, Jersey, maven, subversion, IDEA, Teamcity, maven, ant, junit, Artifactory, MongoDB 3.x, Docker, Glassfish 3.x, JClouds, Thymeleaf, Serverless, AWS, Elastic Search, ELK und mehr.
Teamgröße: 8
Skills: j2ee, AOP, aspectJ, spring, Oracle 9i, Xdoclet, SQL, jdbc, JSF, Acegi, Windows NT, eClipse, maven, ant, junit, cvs, visual source safe, UML, oracle jvm.