← projects
// PROJECT · 2 MIN READ

LIRMM — microservices migration (internship)

Six-month R&D internship: lab + industrial partner — migrating a legacy Spring Cloud app toward Kubernetes (Helm, Kafka, ConfigMaps) with hands-on validation and docs.

KubernetesKafkaSpring BootDocker

Project context

Six-month research internship at LIRMM (University of Montpellier), in collaboration with an industrial partner that needed to move off a legacy Spring Cloud deployment (Eureka, Config Server, API gateway, Docker Compose–centric ops) toward Kubernetes. The work was a joint effort between the lab and the partner team: define a target architecture, prove it on a lab cluster, and migrate incrementally rather than rewrite from scratch.

My contribution was hands-on implementation and validation alongside researchers — Helm deployments on Minikube, trying migration steps, and documentation so runs stayed reproducible for both the lab and the partner.

Kubernetes & runtime

  • Deployed and exercised a distributed stack (application + Kafka + Zookeeper + PostgreSQL) on Minikube using Helm charts.
  • Helped move workloads from Docker Compose + Spring Cloud patterns toward Kubernetes-native deployment and networking.

Messaging

  • Apache Kafka (topics, consumer groups, Kafka Connect) to decouple microservices and replace tightly coupled synchronous REST where it made sense for the migration goals.

Configuration & service discovery

  • Shifted configuration from Spring Cloud Config toward ConfigMaps and Secrets on Kubernetes.
  • Reduced reliance on Spring Cloud Eureka by using Kubernetes service discovery (CoreDNS) — aligning with the cloud-native target the project aimed for.

Deliverables

  • Architecture notes and internal documentation; presented progress to the research group (and relevant syncs with the partner context) so decisions and limitations stayed explicit.

This internship was where I first went deep on Kubernetes and distributed systems in a real migration setting — groundwork that later fed into DevOps and GitOps work.