Gå til indholdet

Forbered en softwarerelease med databaseændring

At rulle koden tilbage gør den ikke automatisk kompatibel med en ændret database. En fuld prøve viser, hvad der skal kontrolleres ved skift og tilbagerulning.

Philipp Reuter2 min. læsetid
Softwarestik med violette detaljer og kodesymbol samt to separate ringe med forskelligt formede udskæringer.

En softwarerelease ændrer nogle gange både applikation og database. Tilbagevejen skal derfor tage højde for mere end den tidligere programversion. Notér, hvilken kombination af kode, konfiguration og datastruktur der fungerer sammen.

Det hypotetiske portaleksempel nedenfor er en planlagt test. Det beskriver ingen ændring af en virkelig kundedatabase.

Test tilbagevejen mod samme datatilstand

Den eksisterende applikation V1 læser kundenavne fra customer_name. Den nye applikation V2 skal i stedet læse display_name. I den oprindelige plan fjernes den gamle kolonne. Derefter starter den nye applikation ikke på grund af manglende konfiguration.

Trin

Database efter trinnet

Resultat i eksemplet

Før skiftet

Gammel navnekolonne findes

Eksisterende applikation fungerer

Efter den planlagte ændring

Kun den nye navnekolonne findes

Ny applikation starter ikke på grund af konfigurationen

Udrul kun den gamle kode igen

Stadig kun den nye navnekolonne

Gammel applikation finder ikke den forventede kolonne

Genudrulning af gammel kode gendanner ikke datastrukturen. En rollbackknap i værktøjet løser ikke selv denne uforenelighed.

Planlæg en kompatibel overgang

Et muligt alternativ er en trinvis overgang: Bevar først den gamle kolonne, og tilføj den nye. Eksisterende værdier overføres sporbart. Teamet fastlægger, hvilket felt der er autoritativt, og hvordan ændringer forbliver konsistente under overgangen.

Test begge applikationsversioner mod denne mellemtilstand i et separat miljø. Det omfatter at ændre et navn og læse det korrekt via begge versioner. En enkelt kopiering er ikke nok, hvis senere værdier kun skrives i ét felt.

Planlæg først fjernelse af det gamle felt, når overgangen er bekræftet, og den gamle version ikke længere er nødvendig som tilbagevej. Dermed ændres igen, hvilke ældre versioner der kan bruges. Trinnet kræver sin egen beslutning.

Medtag data efter skiftet

En ældre backup kan indeholde den tidligere struktur. Er nye ordrer blevet accepteret imens, kan de mangle i backuppen. Gendannelse må ikke kassere dem ubemærket. Hvilke data der kommer til, og hvordan de afstemmes, hører til gendannelsesplanen.

Afhængigt af ændringen kan et planlagt vedligeholdelsesvindue eller en målrettet rettelse i den nye version passe bedre. Den trinvise overgang er ikke et generelt løfte om en opdatering uden afbrydelser.

Registrér prøvens resultat

Dokumentér testet version, konfiguration, datatilstand og den person, der beslutter ved fejl. Følg en ordre til bekræftelse i målet i testen, og gennemspil derefter tilbagevejen. Notér bevarede data og begrænsninger.

Så bliver det før produktionsskiftet synligt, om den planlagte tilbagevej faktisk passer til applikation og data.

Kilder

Skrevet af

  • Philipp ReuterRedaktør for softwarekvalitetPhilipp Reuter skriver om softwaretest og forberedelse af nye releases hos ASES. Hans artikler handler om fejlanalyse, accepttest og kontrol af ændringer i eksisterende applikationer.

Følg ASES

Læs videre

Alle artikler

Cloud & drift med ASES

Hosting, deployment, vedligeholdelse og support