Azure / Kubernetes / GitLab / CI/CD / TerraformPROFESSIONAL CASE STUDY
Moving developer delivery to Azure
RESTORE.VALIDATE.CUT OVER.
↳
A GitLab migration from on-premises Kubernetes to Azure AKS, verified through restored access, repository operations, and a working validation pipeline.
Professional experience · Migration and operational recovery
01 / CONTEXT
THE WORK.
Moving a source-control platform changes more than the place its pods run. Developers still need their repositories, identity provider, and delivery workflows to work together. This migration moved GitLab from an on-premises Kubernetes environment to Azure AKS. The work included recovery and cutover preparation, followed by checks of the developer-facing service. An earlier attempt was stopped; the successful outcome came after further investigation and validation.
My contribution
I carried out migration and recovery work, validated access to the restored platform, and investigated operational behavior after cutover. The account describes my hands-on contribution within a wider delivery effort; it does not attribute every infrastructure or network change to me.
02 / FROM CHANGE TO CONFIRMATION
THE SEQUENCE.
Open each stage for the action and its supporting result. This is a conceptual sequence; internal topology and procedures are omitted.
01Restore the platform+
Recover the GitLab application and repository data in the target environment, then work through the dependencies needed to use it.
What was established A completed restore was confirmed before the later cutover checks.
02Check developer access+
Treat authentication and repository access as separate acceptance checks. Recover federated sign-in and exercise a repository clone.
What was established Sign-in recovery and successful repository cloning were confirmed in the reviewed work record.
03Exercise delivery+
Run a Terraform validation pipeline against the migrated platform to test more of the developer workflow than an application health page would cover.
What was established A successful validation pipeline was recorded. This establishes that tested path, not every downstream application.
04Confirm the cutover+
Follow the service after the DNS change and investigate remaining operational behavior, including repository mirroring.
What was established I confirmed the completed cutover, stable GitLab in Azure, and working mirroring. The initial cutover report tracked runner migration separately. The October follow-up confirms the later move from shell to Kubernetes executors on AKS.
03 / ENGINEERING JUDGMENT
THE DECISIONS.
01
Use more than one success signal
Separate restored data, successful login, repository operations, and pipeline execution in the migration assessment.
The tradeoffThis requires more verification than checking ready pods, but tests the dependencies developers actually rely on.
02
Keep the migration boundary explicit
Describe GitLab cutover separately from the later, independently confirmed runner migration.
The tradeoffA phased transition leaves coordination work between environments. It also avoids reporting a broader migration as complete before its dependent work is done.
03
Learn from the interrupted attempt
Carry the failed attempt and recovery checks into the explanation of the successful cutover.
The tradeoffThe resulting story is less tidy, but makes the operational judgment and evidence of recovery reviewable.
04 / DOCUMENTED OUTCOMES
WHAT CHANGED.
GitLab was restored and the cutover to Azure AKS was confirmed complete.
Repository cloning and a Terraform validation pipeline provided concrete checks of the migrated service.
Post-cutover mirroring was confirmed working; the October follow-up identifies recovery across 114 stalled projects by isolating Redis concurrency state.
THE LESSON
A migration is complete at the level of the workflow you have verified. Application readiness, identity, repository operations, and delivery each deserve their own check; success in one does not prove the others.
05 / EVIDENCE & SCOPE
THE RECORD.
Reviewed contemporaneous owner confirmations cover restore, repository cloning, a validation pipeline, stable cutover, and mirroring. The initial cutover scope was rechecked on 5 September 2026. An owner-provided follow-up on 12 October confirms subsequent runner migration, legacy namespace retirement, and the mirror-recovery investigation. Source records are private; the sequence here is a conceptual explanation, not the original topology or runbook.
Scope of this account
The 114-project figure comes from the owner’s October mirror-recovery account; it is not a count of every repository migrated. No downtime or cost-saving figure is asserted.
Runner migration and legacy namespace retirement were reported in the later October account; they were not part of the original September cutover evidence.
Explore an independent public project
This repository demonstrates related engineering skills. It contains personal project work, not employer code or a reproduction of the private environment.