Københavns Kommune
Kunde
Københavns Kommune
Type
Website
Design & UX
Cloud-hosting
DevOps
Kompetencer
Periode
2020-nu
Kubernetes + Azure + Drupal

Ny cloud-infrastruktur og 250 Drupal sites til Københavns Kommune

Hvad skulle løses?

Københavns Kommune stod overfor at skulle opgradere alle deres 250+ Drupal 7 sites - og samtidig etablere en ny cloud baseret hosting- og driftinfrastruktur til at drifte det hele.

Herudover skulle et fuldt DevOps setup etableres, således flere leverandører sideløbende kan arbejde på platformen.

Sådan har vi løst det

Vores løsning består kort fortalt af: 

  • En ny cloudbaseret hosting- og udviklingsplatform til alle Københavns Kommunes websites, som kan skaleres
  • Den infrastruktur der skal til, for at KK selv kan vedligeholde og udrulle sites - og også kan få andre leverandører til at hjælpe med dette arbejde
  • Det er et CMS basissystem, som alle disse sites skal tage udgangspunkt i - og det er lavet i Drupal 9
  • Et grunddesign og designsystem som bliver brugt på tværs af alle løsningerne 

Så ja, det har været et ganske vildt projekt, og her ca. 5000 timer senere fungerer det med stor succes i dag. Nysgerrig på at høre mere? Så læs videre herunder, hvor vi uddyber herlighederne.

Et af de basis Drupal 9 sites som er bygget på platformen

Vi startede op, mens Danmark lukkede ned

Vi har i 2020 lavet en ganske imponerende løsning for Københavns Kommune, som vi er meget stolte af. På et halvt år, midt i den første COVID-19-nedlukning af Danmark, så har vi hjulpet KK med at bygge det første flagskib i deres ambition om at flytte al deres IT-infrastruktur i skyen.

Vi har både bygget en helt ny cloud-baseret hosting infrastruktur til alle deres 250+ websites, baseret på Microsoft Azure og Kubernetes. På toppen af det, så har vi bygget et administrativt Site Factory til at centralt opdatere og udrulle nye sites, herunder hele DevOps pipelinen til at håndtere det. 

Ikke nok med det - vi har også bygget deres nye basisplatform i Drupal 9 - det er det grundsystem, som er basis for alle deres 250+ websites, inkl. et brugervenligt redaktør interface og et basis design som bruges på tværs af alle de nye websites. Derudover har vi også stået for at lave KKs nye designsystem til websites. Det har vi gjort med Advice som underleverandør til os.

Det er én af den slags projekter, som er svær at “vise frem” - simpelthen fordi en stor del af magien ligger under motorhjelmen. Det svære - og det fantastiske - er alt det, man ikke kan se, men som bare virker, og skaber massiv forretningsværdi for KK og alle mennesker som arbejder på platformen.
 

En state-of-the-art Kubernetes baseret cloud-infrastruktur platform i Microsofts Azure cloud

Københavns Kommune har virkelig mange sites. De ønskede, at det skulle være nemmest muligt for dem at løbende vedligeholde disse sites, dvs. løbende kunne opdatere dem, lave nye versioner eller bare spinne helt nye sites op. Alt sammen nemt, sikkert og hurtigt - gerne ved tryk på en knap. Målet med løsningen er, at den skal kunne klare minimum 500+ sites problemfrit på platformen - og det er jo netop ikke noget problem, idet hele cloud-infrastrukturen nemt kan skaleres. 
 

Samtidig er Københavns Kommune i gang med en større cloud transformation, og dette projekt er den første store transition væk fra de traditionelle “servere i vores hosting-center” og ud i en public cloud. Cloud-uafhængighed var et vigtigt krav, bl.a. forbi man som kommune ikke må binde sig til én leverandør, så vi har lavet en løsning som er baseret på Kubernetes, der netop er et abstraktionslag mellem den underliggende cloud-løsning og de services og sites vi gerne vil drive. 

Valget faldt dog i denne omgang Microsoft Azure, og løsningen kører derfor i dag i et et antal Kubernetes clusters i Azure. I den forbindelse har vi også været med at til få løsningen til at spille med hele KKs øvre IT-infrastruktur og ikke mindst sikkerheds- og governancemodeller. Det har været en større øvelse, men resultatet er blevet fremragende!

Fuld central kontrol

SiteFactory

For at gøre driften nem i hverdagen, så har vi udviklet hvad vi kalder et “Site Factory” - det er et api og et administrativt webinterface, hvor de ansvarlige folk nemt kan overskue, opdatere og rulle nye sites på platformen. Under motorhjelmen har vi udviklet noget af det nyeste inden for Cloud Native automatisering, nemlig en række Kubernetes Operators der klarer alt fra oprettelse af databaser, til oprettelse og oprydning af kode og data, når sites dannes og nedlægges.

En glad kunde

 

Site Factory udstilles for øvrigt som en afkoblet React.js frontend, der via en NodeJS backend snakker direkte ind imod Kubernetes, og på den måde giver en yderst brugervenlig måde at styre udvalgte dele af infrastrukturen på. Ved at have API-enablet løsningen, er det blevet muligt for Københavns Kommune at automatisere hele arbejdsgangen omkring bestilling og oprettelse af websites.

DevOps: Continuous Integration og deployment pipeline som en integreret del af løsningen

Nu er DevOps en ganske bred disciplin, men på den tekniske side af spektret, så har vi etableret en større teknisk infrastruktur som understøtter en dynamisk udviklings- og testoplevelse for alle de involverede parter. 

Der er en række andre leverandører, som også skal lave leverancer til KK, baseret på samme infrastruktur, basisplatform - og som skal gennem samme kvalitetssikring.

Vi har fx bygget det således, at der automatisk bliver etableret test-miljøer til, når kode er klar til test. Dette skal kunne ske nemt og sikkert, fordi der er mange mennesker og versioner involveret, og det kan hurtigt blive komplekst at overskue. Derfor er der også stor forretningsværdi i at få sådanne ting automatiseret: Det giver højere kvalitet, sikkerhed og ikke mindst hastighed ift. at skabe feedback i løsningerne. 

Her er den oprindelige tegning over den løsning, vi har lavet for denne del alene - så ja, der er mange bevægelige dele her:

Den oprindelige arkitekturtegning

250+ websites i Drupal 9 som alle kan finde ud af at bruge

Som om det ikke var nok at skulle bygge en verdensklasse cloud-infrastruktur, så gik opgaven også ud på, at vi skulle etablere en ny CMS basisplatform til Københavns Kommune. Siden 2013 har KK kørt på en Drupal 7 platform, som har drevet mere end 250 websites, inkl. kk.dk, intranet.kk.dk og mange andre sites. 

Valget faldt igen på Drupal, men denne gang så i den nyeste Drupal 9 version, og alle disse sites skal udskiftes. KK laver 5 forskellige grundinstallationsprofiler, men det skal vi ikke kede dig med her. For det var vores opgave at lave basissystemet, dvs. den Drupal 9 kerne i systemet som vil blive en del af alle de Drupal sites som bliver bygget til KK. 
Mange sites er simple informationssites, og derved vil mange løsninger bare blive bygget direkte på basissystemet. Det indeholder nemlig de grundlæggende indholdstyper, et lækkert grunddesign og en veltestet redaktionel backend.
 

I samarbejdet med Reload har det tekniske og arkitekturmæssige samarbejde været præget af stort gå-på mod, nytænkning, agilitet og fleksibilitet, og har resulteret i en webplatform der i understøtter vore behov – nu og de kommende år. Stephan Marc Hansen, Web-arkitekt/chefkonsulent, Københavns Kommune Web

Dette basissystem bliver udviklet videre på - også af andre leverandører. 

Som en del af basissystemet har vi også skulle udvikle et basis design - altså et design system som bliver brugt på tværs af alle de websites som KK er igang med at sætte i søen. 

Har du spørgsmål

Eller vil du bare snakke videre?

Jamen, så tag fat i Alice, som er rådgiver og partner i Reload, og som for øvrigt var projektleder på projektet. 

Skriv til alice

Ring på 27599353