Jag ville bara slå ett slag för continuous integration (CI). För er unga utvecklare kanske detta är en självklarhet, men för oss som har sett de mörka åren i Internets linda är detta helt fantastiskt. För er som inte vet alls vad jag pratar om kommer här en förklaring.
Continuous integration är en method för att automatisera flödet att lansera ny kod i produktion, utan att tappa kvalitet. Konceptet fick skjuts av Lean Startup rörelsen som syftar till att kunna driva ett bolag framåt i snabb fart och samtidigt kunna anpassa sig till kundernas krav.
På Tretti lanserar vi kod i produktion ett par gånger per dag. Genom att lansera små ändringar riskerar vi inte stora systemfel som tar lång tid att rulla tillbaka eller felsöka. Det gör det också lätt anpassa sajten snabbt eller släppa en hotfix om det verkligen behövs.
Först kör utvecklaren ny kod lokalt på sin dator. Då aktiveras en massa automatiska tester som kontrollerar att ingenting har gått snett i koden. Där kan vi alltså fånga fel som uppstår även om utvecklaren ändrat i en helt annan del av kodbasen. All ny kod har också sina egna tester. Om koden passerar de automatisk testerna och utvecklarens manuella kontroll kan utvecklaren checka in kodändringen i den gemensamma kodbasen. Sen kan samma eller en annan utvecklare välja att lansera alla kodändringar på vår stagingmiljö. Där körs alla automatiska ändringar igen och en stakeholder, eller jag, kan testa funktionen. Om allt ser bra ut lanserar vi till live server. Alla ändringar till system och databaser rasslar igenom och de automatiska testerna körs igen. Koden ligger live i produktionsmiljön. Detta flöde ta så lite som 30 minuter, inklusive manuell acceptanstestning, och innebär ingen nertid för systemen.
CI underlättar väldigt mycket för tryggheten i våra system. Jag har varit med om lanseringar där man släpper kod som man arbetat på i många månader. Det blir aldrig bra. Buggar och integrationsfel haglar och det är alltid nån licens som plötsligt löpt ut. Om ni inte har CI på plats så investera tiden att sätta uppe det nu.
###
Denna post är nummer 54 i en serie av 100 poster i utmaningen #blogg100 där jag fokuserar på hur vi skapar Trettis nya sajt. Alla åsikter är mina egna.