On this page
In dit hoofdstuk is beschreven:
Bij configuratie management het essentieel om consistentie en kwaliteit te waarborgen in de codebase. Dit kan worden bereikt door de standaardisatie van dependencies en het handhaven van goede code quality enforcement. Verschillende tools en methoden spelen hierbij een cruciale rol, waaronder POM-bestanden, Parent POM's, API's, Maven en MuleSoft.
- POM (Project Object Model): Het POM-bestand is een XML-bestand dat de configuratie en afhankelijkheden van een Maven-project beschrijft. Het bevat belangrijke informatie zoals de projectnaam, versie, afhankelijkheden en build-instructies. Door het gebruik van POM-bestanden kunnen ontwikkelaars eenvoudig de dependencies van hun project beheren en ervoor zorgen dat alle benodigde libraries en componenten correct worden geïmplementeerd. Dit helpt bij het voorkomen van conflicten en zorgt voor een gestroomlijnde build- en deploymentprocedure.
- Parent POM: Een Parent POM is een POM-bestand dat als basis dient voor andere POM-bestanden. Het bevat gemeenschappelijke configuraties en afhankelijkheden die door meerdere projecten kunnen worden geërfd. Door gebruik te maken van een Parent POM kunnen ontwikkelaars consistente configuraties en dependencies definiëren die door alle projecten binnen een organisatie worden gedeeld. Dit bevordert de standaardisatie en vermindert de kans op fouten die kunnen optreden als gevolg van inconsistente configuraties. ParentPOM zorgt voor inheritance binnen maven. Child inherit van de parent. Die creëert effective pom (combinatie van child en parent).
- API's (Application Programming Interfaces): API's zijn sets van protocollen en tools waarmee verschillende softwaretoepassingen met elkaar kunnen communiceren. Door gebruik te maken van gestandaardiseerde API's kunnen ontwikkelaars ervoor zorgen dat hun applicaties op een consistente en voorspelbare manier met elkaar interageren. Dit bevordert de herbruikbaarheid van code en maakt het eenvoudiger om nieuwe functionaliteiten toe te voegen zonder de bestaande code te verstoren.
- Maven: Maven is een build automation tool die wordt gebruikt voor het beheren van projectafhankelijkheden, het bouwen van projecten en het genereren van documentatie. Door gebruik te maken van Maven kunnen ontwikkelaars eenvoudig de dependencies van hun project beheren en ervoor zorgen dat alle benodigde libraries en componenten correct worden geïmplementeerd. Maven biedt ook ondersteuning voor het definiëren van build-instructies en het automatiseren van het buildproces, wat bijdraagt aan de consistentie en kwaliteit van de codebase.
- MavenBOM (Maven Bill of Materials): Injection binnen Maven. Is API specifiek. We hebben nu een AMQP, SFTP, Java8, Java17. Alle APIs kunnen dezelfde versie gebruiken, maar hebben ook de optie hiervan af te wijken via de BOM. Daarmee kunnen vulnerabilities opgelost worden door de APIs de flexibiliteit te geven om een hoger of veiligere BOM te injecten. Neemt automatisch daarmee de code over van wat in de BOM gedefinieerd is.
- MuleSoft: MuleSoft is het integratieplatform dat RWS helpt om verschillende applicaties, gegevens en apparaten met elkaar te verbinden. Door gebruik te maken van MuleSoft kunnen afdelingen hun integratieprocessen stroomlijnen en ervoor zorgen dat gegevens naadloos tussen verschillende systemen worden uitgewisseld. MuleSoft biedt ook ondersteuning voor het beheren van API's en het implementeren van integratiepatronen, wat bijdraagt aan de consistentie en betrouwbaarheid van de integratieoplossingen.
Door deze tools en methoden te gebruiken, kunnen ontwikkelaars de standaardisatie van dependencies bevorderen en de kwaliteit van hun code handhaven. Dit helpt bij het voorkomen van conflicten, het verminderen van fouten en het waarborgen van een gestroomlijnde build- en deploymentprocedure. Bovendien draagt het bij aan de consistentie en betrouwbaarheid van de softwaretoepassingen, wat essentieel is voor het succes van elke organisatie.
BOM's: Kan geautomatiseerd aangepast worden via een jar naar Anypoint Exchange.
CIP-RWS domein
In MuleSoft wordt een domain gebruikt om gedeelde bronnen en configuraties te beheren die door meerdere Mule-applicaties worden gebruikt. Dit centraliseert gemeenschappelijke instellingen en vermindert duplicatie. Hier is hoe een domain werkt in MuleSoft:
- Domain Project: Je maakt een domain project aan dat gedeelde bronnen bevat, zoals connectorconfiguraties, globale elementen en andere gedeelde instellingen.
- Shared Resources: Binnen het domain project definieer je de gedeelde bronnen, zoals database-connectoren, HTTP-listeners en andere configuraties die door meerdere applicaties worden gebruikt.
- Referencing the Domain: Mule-applicaties die gebruik maken van de gedeelde bronnen in het domain, verwijzen naar het domain project door de domain naam te specificeren in de Mule-applicatieconfiguratie.
- Deployment: Het domain project wordt gedeployed naar de Mule runtime, zodat de gedeelde bronnen beschikbaar zijn voor de applicaties.
- Management: Door gebruik te maken van een domain, kun je eenvoudig wijzigingen aanbrengen in de gedeelde configuraties zonder elke Mule-applicatie afzonderlijk aan te passen. Dit maakt het beheer van gedeelde bronnen efficiënter.
CIP-RWS domein (ingeladen via bouwstraat/ParentPOM) wordt gebruikt om de poort aan te geven. Eén shared configuration die overgenomen wordt door meerdere APIs, waarbij de APIs op dezelfde endpoint luisteren met verschillende destinations. Configuratie van HTTP endpoint met TLS en poort.
RWS Common module (logging module)
Dependency die door elke API wordt ingeladen. In exchange worden RWS specifieke Mulesoft componenten gebouwd, die je via Exchange toevoegt en daarmee verrijkt. Hiermee zorg je ervoor dat alle APIs dezelfde generieke RWS componenten in zich hebben. Logging component voor alle APIs, beschrijft hoe de logging voor iedere API eruit moet zien. Generieke bericht te sturen naar splunk. Code opgehaald, eventueel verrijkt met uitleg, geforward naar splunk voor logging.
Troubleshooting en debugging: Errorhandling geeft plek van ontstaan van fout aan en zorgt ervoor dat als een foutmelding ontstaat, de payload behouden blijft en ingezien kan worden.
Mirror provenance
- Mirror source
- confluence/spaces/INFRAARCH/pages/189137024/page.metadata.json
- Storage source
- confluence/spaces/INFRAARCH/pages/189137024/page.storage.xhtml
- Access
- Committed snapshot only