Vincent: “Ik heb mijn uitdaging gevonden bij een van de grootbanken”

“Ik heb mijn uitdaging gevonden bij een van de grootbanken”

Gepubliceerd: Categorie: Java & Web

Als Java Developer bijt ik me graag vast in complexe IT-vraagstukken. Ik zoek altijd naar uitdagingen in mijn werk. Die uitdagingen vind ik nu al twee jaar bij één van de grootste financiële instellingen van Nederland. Daar werk ik in een team dat verantwoordelijk is voor client reporting naar Wholesale-klanten. Zij ontvangen van ons rapportages over onder meer hun derivaten, transacties en marktwaardes. De bank gebruikt hiervoor een bijzonder moderne tech stack. En dat maakt mijn opdracht zo interessant.

De bank zit al jaren in de transitie van het hosten van software on-premise naar de cloud. Ik had voor deze opdracht nauwelijks ervaring met werken in de cloud. Een mooie kans dus. En ik mag werken met een tech stack die onder meer Spring Boot, Java 11, Angular, Azure DevOps, Azure Cloud, VMware Tanzu (eerder Pivotal), Oracle API Gateway en Splunk Logging omvat. Hieronder licht ik een paar zaken toe die volgens mij kenmerkend zijn voor moderne software ontwikkeling. 

Application lifecycle management met Azure DevOps

Voor het team in de cloud ging werken moest een migratie plaatsvinden van het application lifecycle management (ALM). Eerder maakten we gebruik van Jira voor agile scrum management. De bank koos voor Azure DevOps. Deze omgeving maakt het mogelijk om DevOps eenvoudig te integreren in de organisatie. Met services als:

  • Azure Boards: hierin kun je werkzaamheden van je teams plannen, bijhouden en bespreken. Ook vind je er tooling voor onder meer scrum backlog management, sprint planning, refinements en retrospectives.
     
  • Azure Pipelines: deze tooling bestaat uit een CI/CD-pipeline die werkt voor vrijwel elke taal, platform en cloud. Je kunt met behulp van een Git-provider continu ontwikkelen, testen en implementeren. Je kunt deze tooling ook prima gebruiken voor deployments naar je on-premise servers.
     
  • Azure Repos: met Azure Repos beschik je over een onbeperkt aantal Git-opslagplaatsen in de cloud. Met pull-aanvragen en geavanceerd bestandsbeheer kun je efficiënt samenwerken.
     
  • Azure Artifacts: met Azure Artifacts kun je eenvoudig code delen met verschillende teams en ondernemingen. Je kunt pakketten delen en aan je pipelines toevoegen.
     
  • Azure Test Plans: handmatige en verkennende testprogramma’s maken het mogelijk om software snel en grondig te testen en te releasen.

Extensions Marketplace

Daarnaast heeft Azure DevOps ook een Extensions Marketplace. Hier vind je meer dan duizend extensies die je kunt toevoegen aan omgevingen. Denk bijvoorbeeld aan Jenkins, Docker en Kubernetes.

Zelf vind ik de integratie tussen verschillende onderdelen handig. Bijvoorbeeld tussen Azure Boards en Azure Repos. Je kunt vanuit een PBI (Product Backlog Item) direct een Git-branch voor een nieuwe feature aanmaken. En in Azure Repos maak je pull requests voor nieuwe features. Daar kun je dan weer Azure Pipelines aan koppelen voor het checken van de kwaliteit van je code of het uitvoeren van automatische testen.

Dit soort automatisering is misschien niet nieuw, maar ik heb deze services niet eerder zo geslaagd in één product gezien. Azure DevOps neemt een centrale plek in én heeft een verbindende rol in alle DevOps-werkzaamheden.

Compliance extension

Azure DevOps ondersteunt ook de mogelijkheid om extensies te bouwen en features toe te voegen die bedrijfsspecifieke processen ondersteunen. Een platformteam van de bank heeft een extensie gebouwd die de compliance regels toetst. Deze compliance regels worden opgelegd door wetten en regelgeving. Een aantal voorbeelden van regels zijn: 

  • niemand in het team kan het project verwijderen.
  • niemand kan releases verwijderen.
  • niemand kan repositories verwijderen.

De tool biedt - waar mogelijk - opties om de configuratie van het project aan te passen, zodat het aan de regels voldoet. Dit kan al met een simpele druk op de knop. Ook integreert deze tooling de Azure Pipelines met configuratie items in de Configuratie Management Database (CMDB). Hiermee creëer je automatisch verslaglegging en bewijs voor de organisatie.

Tip! De code voor deze extensie is als open source te vinden op GitHub.

Werken met VMWare Tanzu

Onze applicaties deployen we op het VMWare Tanzu-platform. Het product waar wij vooral mee werken is VMWare Tanzu Applicatie Services. Dit is een gecertificeerde implementatie van de Cloud Foundry standaard. Cloud Foundry is een platform om op een efficiënte en gebruiksvriendelijke manier applicaties te deployen en managen op Kubernetes. Het kan eigenlijk alle soorten applicaties draaien in welke taal dan ook.

Naar mijn mening is de kracht van deze technologie dat het écht gebruiksvriendelijk is. Onder de motorkap worden de applicaties gestart in containers met behulp van Kubernetes. Daarbij worden zaken zoals configuratie en schaalbaarheid verzorgd door het platform. Als developer hoef je weinig te doen.

Nog voldoende uitdaging

Ondanks alle geweldige tooling blijft er voldoende uitdaging om het hele landschap te beheersen. De komende tijd zijn we nog bezig met het overzetten van een aantal zaken van de oude naar de nieuwe situatie. Er blijven altijd koppelingen nodig, omdat de bank natuurlijk continu moet doordraaien.

Ook veranderen wetten regelmatig en worden de richtlijnen en eisen met betrekking tot security en compliance steeds strenger. Dit werk stopt daarom nooit. Maar met deze moderne tech stack hebben we alle tools in handen om deze uitdagingen aan te gaan.

Vincent Mos
Over auteur Vincent Mos

Al meer dan 20 jaar werkt Vincent als Software Developer in (voornamelijk) het Java backend-domein. Hij heeft bij verschillende opdrachtgevers gewerkt aan complexe systemen. In zijn werk probeert hij altijd de juiste balans te vinden tussen kwaliteit en snelheid van levering. Hij concentreert zich bij het bouwen van oplossingen graag op vraagstukken met betrekking tot resiliency en monitoring.

Meer posts van Vincent Mos
Reacties
Reactie plaatsen