Over het werk bij ASML
Bij ASML draait alles om precisie en betrouwbaarheid, en dat geldt ook voor de software die we releasen. Het team waar we in werken is verantwoordelijk voor tooling die ervoor zorgt dat software patches veilig gegenereerd en ondertekend worden voordat ze naar productie gaan. Dit is cruciaal in een omgeving waar software draait op machines die miljoenen euro's kosten.
Patch Generation Service
We hebben een nieuwe patch generation service opgezet met een moderne stack: FastAPI voor de REST API, MySQL voor data opslag, en RabbitMQ met Celery voor asynchrone verwerking van zware taken. De service zal in de toekomst dagelijks honderden patch requests verwerken en moet 24/7 beschikbaar zijn. We hebben veel aandacht besteed aan error handling, retry logic en monitoring om ervoor te zorgen dat patches betrouwbaar gegenereerd worden.
Artifact Signing Service
Daarnaast hebben we een artifact signing service gebouwd die via Okta beveiligd is. Hiermee kunnen verschillende soorten artifacts ondertekend worden: patches, RPMs, maar ook gewone bestanden. De service werkt hash-based, wat betekent dat clients een hash van hun artifact meesturen en een signature terugkrijgen. Dit houdt de service stateless en voorkomt dat we grote bestanden hoeven te verwerken.
RPM Library
Voor het parsen en ondertekenen van RPMs hebben we een Python library geschreven. Deze library volgt de RPM standaarden en implementeert dezelfde logica als de RPM CLI tool. Het ondersteunt RPM versies 3, 4 en 5. Nu kunnen andere teams deze library gebruiken in hun eigen pipelines om RPMs uit te lezen, te ondertekenen en de signature te embedden.
DevOps & Deployment
Ons team is volledig verantwoordelijk voor de hele deployment pipeline tot en met de ACC omgeving (productie wordt door een ander team beheerd). Dit betekent dat we niet alleen code schrijven, maar ook Docker images bouwen, Kubernetes manifests beheren, VMs configureren en Ansible playbooks onderhouden. We hebben een volledige CI/CD pipeline opgezet met automated testing, security scanning en staged deployments.