Den största ombyggnaden: jag delade systemet i tjänster som går att byta var för sig.
Det här var punkten där den moderna Relay Seven-arkitekturen tog form. Jag började köra separata containrar/tjänster för gateway, webb, kontrollcenter, analyzer och broadcast. Westin-AI kördes som egen tjänst.
Skillnaden mot tidigare installationer var att ingen webpanel längre behövde äga hela stationens livscykel. Kontrollcenter kan byggas om separat. Broadcast kan fortsätta spela. Analyzer kan arbeta med musikdata. Webben kan deployas utan att röra ljudet.
Jag började även lägga persistent state i en egen state-volym. Det gav mig möjlighet att byta container utan att sessioner, queueinformation och vissa minnen försvinner.
Det här är också anledningen till att jag idag betraktar systemet som min egen klon och min egen produktlinje. Jag har gjort så många egna ändringar i controller, showlogik, scheduler, prompts, audio och installation att namnet Relay 7 Kontrollcenter beskriver verkligheten bättre.
Containrarna gav mig en praktisk rollbackmodell
När varje tjänst har en egen image kan jag tagga den gamla innan byte. Det gör rollback mycket mer konkret. Jag behöver inte försöka återskapa exakt vilka filer som låg på disk; jag kan återgå till föregående tjänstbild och föregående konfiguration.
Det är också därför jag hellre bygger ny image än redigerar en körande container för hand. Direktpatchar är lockande klockan sent, men de skapar en verklighet som inte finns i versionsarkivet.
Den modulära installationen förändrade hur jag vågar testa
Tidigare kunde en större ändring kännas riskabel eftersom samma miljö ägde nästan allt. När Kontrollcenter, Broadcast, Analyzer och Web är separata kan jag bygga en ny Kontrollcenter-image och endast byta den tjänsten.
Om den nya versionen inte blir healthy kan jag gå tillbaka. Broadcast fortsätter under tiden med sin egen process. Den skillnaden gör att jag kan iterera mycket snabbare utan att varje experiment känns som ett fullständigt stationsunderhåll.
Jag började också ge builds tydliga versionsetiketter som berättar vilka större lager som ingår. Namnen blev ibland löjligt långa, men de gjorde felsökning lätt: jag kunde se direkt om en aktiv build innehöll tidsfix, voice smoothing, skill variation och weather memory.