tillbaka till startsidan

60. Vi slänger bara ut

Lyssna på Spotify lyssna! Lyssna på iTunes

Efter att ha avhandlat det senaste hippa sociala nätverket så snackar vi om produktionssättning, deployer, releaser; kalla det vad ni vill men det är något vi alla måste göra. Det blir en hel del om testmiljöer, e2e-tester, git när det brinner, hur svårt det är att säga Netlify samt argumenten för att släppa allt till produktion direkt. Dessutom en hel del om att ta en bra process för givet, kill_switch=”on” och jourens vara eller icke vara.

Om du gillar podden blir vi väldigt glada för en liten recension i iTunes eller en prenumeration på Spotify. Följ oss och säg hej på @asdfpodden på Instagram eller Twitter (Anton, Therése) <3

Länkar

Avsnittets skämt:

Varför är en tom array så kall?
Den har inga element.
Skrapa här!!
Transkribering
Transkriberingen är gjord av nån "AI-grej". Du kan förbättra den genom att klicka precis här :)
00:00:00
Varför är en tom array så kall?
00:00:04
Jag vet inte.
00:00:07
För det finns inga element.
00:00:09
Aaaah.
00:00:11
Aaaah, aaah, det var ändå bra.
00:00:13
Aa, aa, aa, nice.
00:00:15
Jag tänker inte erkänna att jag snodde den från podd, eller kodsnacks slack, men det kanske jag gjorde.
00:00:21
Var den där för din benefit, eller var det bara någon som drog ett pappaskämt allmänt?
00:00:27
Det var nog någon som drog ett pappaskämt allmänt kanske.
00:00:29
Men jag tror han heter Emil.
00:00:31
Han skrev också att den var snodd.
00:00:33
Så då snor jag den också.
00:00:35
– Ja, fint.
00:00:37
– Det är så, livets kretslopp.
00:00:39
– Absolut.
00:00:41
– Välkommen till ett nytt avsnitt av asdf.
00:00:43
Det var ett tag sedan vi pratade om den.
00:00:46
Då var det lite semester och skit emellan.
00:00:48
För mig i alla fall.
00:00:50
– Och skit.
00:00:52
– Semester för mig och skit för dig tänkte jag säga.
00:00:54
Men så illa var det väl inte.
00:00:56
- Här har jag inte jobbat. - Nej, exakt.
00:00:58
- Så varje dag har varit precis densamma som alla andra dör.
00:01:02
Den här jävla BeReal-appen, eller vad fan det är, som vill att jag ska ta en bild varje dag.
00:01:06
Ja, jag sitter vid min dator varje dag. Vad vill du?
00:01:09
- Ja, men är den inte ganska rolig?
00:01:11
Jag har ju också den. Alltså det är liksom det nya hippa sociala nätverket.
00:01:15
Får man säga så när man är 31 år snart?
00:01:19
- Oj, är du bara 31? - Ja, jag vet.
00:01:21
Jag är ungt uppe i det här sammanhanget.
00:01:24
Herregud! Jag har alltså två personer på den här.
00:01:31
Det är alltså mig och en till.
00:01:33
Ja.
00:01:35
Det är typ ett socialt nätverk där man ska lägga upp en bild varje dag.
00:01:41
Och twisten är att alla ska lägga upp den samtidigt varje dag när man får en pushnotis.
00:01:47
Och sen kan man bara se den bilden under den dagen om man själv också har lagt upp en bild.
00:01:52
- Alltså du kan se andras bilder under den dagen. - Ja, den tar både back- och frontkamera.
00:02:00
- Just det, det gör den också. - Det är ett par hakor med på den här appen.
00:02:06
Man kan också se hur många gånger folk har tagit om sina bilder. Det är en kul feature faktiskt.
00:02:13
Jag brukar ta om en del, men det är för att jag är på väg...
00:02:17
För att den tar först den ena bilden och sen så tar den frontkameran.
00:02:20
Men då har jag liksom redan dragit iväg, för jag glömde bort att jag måste vänta lite.
00:02:24
- Ja, man måste ändå hålla sig hyfsat still i typ två sekunder.
00:02:27
- Ja, det är fjävligt. Men det är inte det vi ska prata om.
00:02:31
- Nej, men den är kul. Testa. Det är trevligt.
00:02:34
Jag svärjer ju att Instagram kommer att komma ut med exakt samma funktionalitet om en månad, kanske två.
00:02:41
- Ja, om det blir populärt. Men vet ju fan om det blir det.
00:02:44
- Jo, men det är ganska poppigt redan nu. I Sverige inte så mycket.
00:02:47
Men utomlands.
00:02:49
-Oj, okej. Det är bara för att jag inte har några vänner.
00:02:53
-Men utomlands är det ändå ganska stort.
00:02:58
Jag gissar på att det finns garanterat ett team på Insta nu som sitter och crunchar för att få ut den här så snabbt som möjligt.
00:03:04
-Ja.
00:03:06
-Men som du sagt, det var inte det vi skulle prata om. Vi tänkte prata lite grann om produktionssättning.
00:03:13
Produktionsreleaser. Produktionsdeployer.
00:03:16
Att lägga ut saker i produktion.
00:03:18
Ja, att få ut sin kod till användare.
00:03:22
Exakt.
00:03:24
Du kom in på det här lite grann för du sa att vi slänger bara ut saker direkt i prod.
00:03:30
Ja, det är så att vi har faktiskt ändrat det nu, det kan vi komma till sen.
00:03:38
Men, det är Burden nu som har en push in i main.
00:03:42
i main, den heter fortfarande master, men main led direkt till en release till staging och till production.
00:03:50
Och det är så att vi har liksom inte haft så, alltså vi har inte haft några användare tidigare,
00:03:59
liksom vi är i fasen att börja releasa ut det här till användare så det har ju inte varit så himla farligt liksom.
00:04:04
Men att vi då började med att releasa till en beta-grupp och sen ska vi ta det vidare.
00:04:12
Då började jag fundera på, men det känns ju inte så jävla tryggt tycker jag att det går rakt ut i produktion.
00:04:19
Och då började jag fundera lite på vad får en att känna att det är tryggt.
00:04:23
Vi hade en diskussion också om varför det går rakt ut i produktion.
00:04:26
Jag köper argumenten, men jag vill fortfarande inte ha det rakt ut i produktion.
00:04:31
Vad var argumenten?
00:04:35
Jag tror det var så här att om man pushar kod in i main då ska den ju fungera.
00:04:41
Och det köper jag.
00:04:45
Och sen var det också så här att om man hör att man manuellt måste promota det till produktion så ligger det bara saker i staging och ruttnar för att folk glömmer trycka ut det.
00:04:56
Och då trycker någon ut allting på en gång och så blir det kaos och då vet man inte vad det är som har kausat.
00:05:02
Just det.
00:05:04
Så jag köper ju de sakerna för det har jag ju varit med om.
00:05:09
Ja, absolut.
00:05:11
Men det som jag tycker då känns fel är liksom att det är ju i teorin så det borde fungera men det fungerar ju aldrig riktigt så, bara rakt av.
00:05:23
Nej, det är väl lite min erfarenhet också skulle jag säga.
00:05:28
Sen beror det lite på vad man gör kanske.
00:05:32
Det skulle ju kanske funka att bara trycka ut rakt ut i produktion
00:05:36
om man bara sitter och gör frontend-saker, typ design-grejer eller vad som helst.
00:05:41
Men sitter man och ändrar lite i ett API och så går allting sönder, eller det finns någonting
00:05:45
du gör något logiskt fel som gör att du tog bort den och använder den istället för att lägga till en ny den och registrera sig.
00:05:52
Ja, det här har ju hjälpt både back-end front-end och infra tror jag.
00:06:00
Jag kan ändå förstå det, att när man i början bygger något nytt, då är det väldigt skönt att trycka över till produktionsmiljön.
00:06:08
För då vill du ju se att det funkar i produktionsmiljön också. Eller liksom att produktionsmiljön funkar.
00:06:13
Så att du inte har någon skillnad mellan någon testmiljö och en produktionsmiljö när du väl ska release.
00:06:19
Ja, det är sant. Och liksom lite på det där också satt jag och började fundera på hela grejen med okej, men varför vill jag ha det mellansteget liksom?
00:06:28
Varför tar jag inte bara ut det rakt ut i produktionen? Det följer ju också av det här snacket vi såg, något, Noric Jäströ, kan det vart, 2019?
00:06:37
Det tror jag.
00:06:38
om att testa i produktion.
00:06:41
För att det enda sättet du vet om någonting fungerar i produktion,
00:06:46
det är ju att testa i produktion.
00:06:48
Och det är ju jävligt sant, liksom.
00:06:50
Så då kanske man snarare börjar fundera på,
00:06:52
okej, men vad skulle krävas för att jag skulle känna mig trygg med
00:06:55
att med en merge till main så går det rakt ut i produktion.
00:06:58
Och det första, det som vi inte har, det är väl att ha bättre tester, liksom.
00:07:02
Vi börjar få upp vår coverage på unitester rätt väl.
00:07:06
Vi har väl egentligen lite för mycket unitesterk, för de känns inte alltid nödvändiga.
00:07:12
Men det vi skulle behöva är ju end-to-end-tester på våra viktigaste flöden.
00:07:17
Och sen så typ sätta upp larm och grejer på produktion så att man vet om det sjunker.
00:07:25
Eller vad tänker du? Vad känner du är viktigt?
00:07:28
Jag håller verkligen med om att jag inte skrivit jättemycket end-to-end-tester i mina dagar.
00:07:35
För det är sällan det finns en tillräckligt bra infrastruktur bakom det för att det ska bli lätt att skriva dem.
00:07:44
Nu är det på mycket mindre skala, men jag har suttit och skrivit ett litet hobbyprojekt, eller sidoprojekt.
00:07:48
Jag kommer återkomma till det i ett framtidavsnitt, men just om end-to-end-tester.
00:07:53
Så jag har suttit och skrivit dem med Cypress.
00:07:54
Och då testar de verkligen alla HappyPas-typ som finns i hela applikationen, och mot en riktig databas och allting.
00:08:03
Och att det funkar.
00:08:05
Att den setupen är väldigt enkel.
00:08:08
Att jag kan skriva bara så här "Cypress.login"
00:08:11
och så får jag en inloggad användare automatiskt.
00:08:13
Och sen att den automatiskt rensar den användaren när den har kört klart testet.
00:08:17
Alltså sådana saker gör det ju sjukt värt att faktiskt ha sådana tester också.
00:08:22
För då kan du köra dem som sagt mot en riktig databas,
00:08:24
med riktig information, med typ på varje push och bara testa.
00:08:29
"Funkar det här?" eller "Har de ett steg innan för att verifiera?"
00:08:34
"Innan du deployar så måste de här testerna gå igenom."
00:08:37
Och det har ju varit svinskönt.
00:08:40
- Ja, för det är väl det jag tänker också.
00:08:44
Jag har faktiskt aldrig jobbat med Cypress.
00:08:46
Däremot har jag suttit med Selenium-tester.
00:08:49
Så jag tänker att det är lite samma typ av...
00:08:53
Typ av grej.
00:08:55
- Jo, men det är det ju i stort sett.
00:08:57
Cypress är väldigt trevligt och har blivit mer trevligare och trevligare.
00:09:02
Det känns som en väldigt bra produkt eller projekt.
00:09:06
För det är ändå gratis för de flesta.
00:09:08
Men att du kan egentligen köra dem i ett gränssnitt som spelar upp allting framför dig
00:09:13
och du kan scrolla dig tillbaka i historiken på testet och se exakt vad den klickar på.
00:09:17
Alltså det är väldigt trevligt.
00:09:18
Jag kan varmt rekommendera att testa och sätta upp.
00:09:21
Men som sagt, jag tänker att det är det här andra runt omkring som är det jobbiga med end-to-end-tester.
00:09:25
"Du vill gärna köra mot en databas. Vilken databas ska man köra mot?"
00:09:30
"Vilken data ska finnas i databasen?"
00:09:34
"Hur ska man rensa data när man är klar med testerna?"
00:09:38
I mitt lilla CD-projekt kör jag med en SQLite-databas.
00:09:41
Det är bara en fil. Den skapar en helt ny databas och sidar den i testerna.
00:09:48
Det funkar väldigt smidigt.
00:09:50
Men för riktiga projekt, eller vad ska jag säga,
00:09:54
med en större projekt, så har man ju ofta en dedikerad databas
00:09:58
som snarare än bara är en fil som man kan skapa upp i varje test.
00:10:02
Ja, men jag tänker att det kanske är så att om man kör typ Flyway,
00:10:11
att man skulle kunna spinna upp en lokal databas
00:10:14
och sedan köra alla migreringarna så att jag har den.
00:10:16
Ja, men precis.
00:10:17
trycka in någon data. Men det där är intressant också med Flyway,
00:10:22
vi hamnade i en situation där back-end-tjänsten,
00:10:26
den tog bort en sak rap i it som fronten fortfarande använde,
00:10:34
så det blev kaos.
00:10:36
Det var ju också inte uppsatt, det var uppsatt via GitHub Actions,
00:10:39
så vi kunde inte rulla tillbaka deployer,
00:10:41
och då var det så här, men det är ju bara att göra en git-revert.
00:10:44
-Okej, och då kom vi på hur fan jag inget revert, och så kunde vi inte bara göra en revertad pull request, jag kommer inte ihåg varför, och då blev det jävligt så här "shall we pick up, shall we pick up, vad fan gör vi här, hur gör vi inte det här?"
00:10:58
och sen fick vi till slut till det, så la vi upp en pull request och sen så här "ja men det är en fly away migrering här i, och den kan vi inte bara backa, eftersom den är versionerad"
00:11:06
Vi fick ändra allting, lägga upp en ny flyway, migration och bla bla bla.
00:11:11
Så det funkar ju inte.
00:11:13
Det hade ju inte räddat oss fortfarande att ha ett sätt att rulla tillbaka en deploy
00:11:20
eller rulla ut en annan deploy.
00:11:22
Men det är ju kanske en av de sakerna jag verkligen vill ha för att känna mig trygg i
00:11:27
att deploya ut saker.
00:11:28
Att jag vill ha en möjlighet där det är lätt att rulla tillbaka.
00:11:31
Inte så här att vi måste get reverta saker.
00:11:33
Det är jättelätt i teorin.
00:11:35
Men när det brinner, då blir det så här, hur mycket fuckar jag upp om jag gör det här git-kommandos fel?
00:11:41
Ja, exakt.
00:11:42
Det är väl lite, just databaser är ju lite olyckligt.
00:11:46
Att det är ganska mycket svårare att bara rulla tillbaka rakt upp och ner.
00:11:51
Ja.
00:11:51
Jag vet, det finns en tjänst som heter PlanetScale, som är hostade databaser typ i Postgres.
00:11:59
De har tagit och utvecklat filosofin med versionshantering och git och grejer till databaser i stort sett.
00:12:09
Så att du kan ha olika branscher av din databas på deras tjänst.
00:12:14
Och sen när du ska deploya dina databasändringar så merjar du en bransch in i din produktionsdatabas.
00:12:21
Och då kör du migreringar på den databasen.
00:12:23
Och de har också gjort något magiskt, att du kan just reverta som du skulle göra med git.
00:12:29
fast du gör det på din databas istället.
00:12:30
Så då "revertar" den där du har gjort i din andra bransch.
00:12:34
Så blir det liksom som det var innan.
00:12:36
Och det verkar jävligt coolt.
00:12:37
Jag har inte kört dem jättemycket.
00:12:37
Jag har bara de på något litet sideprojekt.
00:12:40
Men det verkar jävligt coolt.
00:12:44
Vad, ett av dina sideprojekt?
00:12:46
Ja, just det här är på min antagundasköp.com
00:12:50
som jag har hållit på att bygga om till en ny version i typ ett år.
00:12:54
Och jag har inte gjort klart.
00:12:56
Men vi får se om den blir klar någon gång.
00:12:58
Gud, att du har databaser. Jag har bara frontend-kod.
00:13:02
Ja, men det var för att jag ville göra någonting. Jag försöker lägga in en massa easter eggs.
00:13:07
Och då tror jag att ett easter egg är att man kan lägga in att man kan vinka på sidan.
00:13:11
Eller något sånt, och då blir det en databas.
00:13:14
Så vi får se. Det kommer inte bli någonting av allt jag säger nu.
00:13:17
Men vi kanske får möjlighet att återkomma till det också.
00:13:20
Men det verkar så himla meckigt allt det där.
00:13:22
Jag förstår verkligen varför många backendare är så himla bra på tester.
00:13:26
För att det är den där feedbacken som finns på att man inte har pajat någonting.
00:13:32
Ja, verkligen.
00:13:33
Det var ju det vi var inne på, att en-ta-en-test är svimbra.
00:13:37
Men också tillbaka-rullandet är ju sjukt nice när man väl har det.
00:13:42
Om du bara kan klicka på en knapp och så kan du ta ut den gamla versionen så kan vi felsöka det här och se vad som händer.
00:13:49
Ja, vi hade en situation där produktion låg nere.
00:13:54
Och så var det någon som skrev produktionen ner i kanon och kollade på det.
00:13:57
Det jag gjorde då var för Fronten-appen är hostad via Netlify.
00:14:04
Så det jag gjorde var gå in på Netlify och trycka ut tidigare deploy.
00:14:09
Och så sa jag det, "men jag gjorde det i Netlify".
00:14:11
Netlify, det är svårt!
00:14:14
Jävlar.
00:14:15
Och då fick jag svaret "men du kan också bara göra en git revert".
00:14:18
Jag bara "jo, men det här gick ju på två minuter".
00:14:22
Och det hade kanske inte tagit super mycket längre tid på att göra en git-revert.
00:14:28
Men det jag kunde göra var att stanna i master, bara be alla "Tryck inte ut den, gör en fix på två minuter och sedan ha prod upp igen."
00:14:36
Ja, exakt. Det är ju sjukt smidigt, faktiskt.
00:14:42
Jag såg att Netlify hade några prestanda-problem idag. Eller inte prestanda-problem, jag tror att de låg helt nere.
00:14:48
Ja, jävlar! Jag fick så många 502-er i min Preview Deploy. Jag fattade ingenting.
00:14:54
Jag testade Login också.
00:14:55
Sådär 502-er och helt svarta jävla RO-skärmar.
00:14:59
Alltså, det var...
00:15:00
Det var spännande, va det?
00:15:01
Vi hade problem med alla våra system, tror jag de skrev.
00:15:04
Man bara hopp, okej, kul.
00:15:06
Ja, någon hade svettigt, så att säga.
00:15:09
Så var det garanterat.
00:15:11
Du nämnde också Preview Deploy.
00:15:14
Det tycker jag också är ett ganska bra steg att ha.
00:15:16
Sen är det kanske lite mer i puller och cast-flöden.
00:15:19
Men det känns också som att man vet att man kan testa in miljö
00:15:23
utan att känna pressen på att merja in i main.
00:15:26
Mm.
00:15:27
Och det är faktiskt jäkla trevligt.
00:15:31
Jag försöker komma in i att använda deploy previews.
00:15:40
För jag tar ofta hembranschen lokalt och spinner upp den och testar där.
00:15:44
Men det är skitbra för designers att säga "om du vill design-reviewa, kolla på den här branschen, det finns här och här, du kan kolla på det".
00:15:53
Och sen har vi något problem med att det inte går att få upp Localhost i Safari av någon anledning.
00:16:03
Så det är också svinbra att jag kan få en, i vår pull request så får vi en QR-kod till Privy Deploy, så jag kan bara få upp det på min mobil.
00:16:10
Det är så jävla smidigt.
00:16:11
Man älskar ju ändå sådana här Quality of Life-grejer.
00:16:15
Alltså så här att det spottar ut en QR-kod som man kan scanna för att få upp den på telefonen.
00:16:18
Ja, så jävla smidigt.
00:16:21
Mår bra varje gång jag kommer ihåg att använda den.
00:16:24
Ja, det är en toppenidé.
00:16:27
Jag har inte sett det förut något, tror jag.
00:16:30
Nej.
00:16:31
Är det en Netlify-grej eller är det bara en grej ni har?
00:16:36
Det vet jag faktiskt inte.
00:16:37
Min gissning är ju att det är en Netlify-grej.
00:16:39
Det är ju Netlify som spottar ut sig en comment i Git-appen.
00:16:46
"Här finns preview-deploy, här är Netlify-linken och här är en QR-kod."
00:16:53
Och så får vi dels en för webbappen och en för storybooken.
00:16:57
Det är också skitnice.
00:17:00
Det är löneförhöjning till den personen på Netlify som kom på det här.
00:17:03
Ja, om det inte är samma person som sänkte Netlify.
00:17:08
Då väger det upp. Man får en gratis produktionsdrivstörning för att man kom på den idén.
00:17:14
Ja, fan nice.
00:17:16
Jag tycker också det är spännande för när jag började jobba och konsultade också.
00:17:24
På första stället jag var på då så hade vi tre produktions-deploy per år.
00:17:28
Åh, jäklar. Sjukt.
00:17:32
Det är så jävla sjukt att tänka på nu.
00:17:34
Jag känner folk som jobbar där fortfarande.
00:17:38
Det är väl kanske en produktionsdeploy i månaden.
00:17:42
Sist jag pratade med dem var det ett tag sedan.
00:17:44
Men det är lite sjukt när man tänker på det.
00:17:49
Samtidigt som man själv bara "men vi kan inte deploya hela tiden till Prod".
00:17:53
Och de andra "kan vi inte få deploya mer till Prod?".
00:17:56
Så man måste hitta någon typ av balans.
00:17:59
Jag vet liksom inte riktigt vad som är det optimala.
00:18:01
Det känns som att det måste vara ganska flexibelt för att jag ska vara nöjd.
00:18:05
Man kan trycka ut det till prodd för att jag vet att det inte kommer påverka något.
00:18:11
Eller att man måste ha en massa QA innan, testare som går igenom allting innan.
00:18:19
Sådana saker som ger mer process och byråkrati istället för att det ger jättemycket värde.
00:18:25
Jag är väl en sån som tycker att man ska kunna trycka till prodd hela tiden.
00:18:30
Ja.
00:18:31
Egentligen. För att i teorin så ska saker vara så pass små, du ska ha så pass mycket test och code review och grejer att du ska kunna trycka ut det.
00:18:41
Men jag är så här, om man inte har fångat innan så kommer man ju ändå kanske inte göra det förrän det går ut. Så jag är mycket mer för att bara trycka ut saker.
00:18:50
Ja.
00:18:51
Men jag har ju haft en jävla räkmacka egentligen från det jag började. Jag fattade ju inte ens från början hur man kunde göra något på något annat sätt.
00:19:03
För jag kom ju rakt in i Continuous Deployment med små produktionssättningar varje dag hela tiden.
00:19:09
hela tiden och sen har det ju bara fortsatt. Sen har det ju blivit så här, ja men vi ska ha en release, vi har inga användare, vi ska släppa ut ett till användare och sådana saker har det ju varit såklart.
00:19:21
Men det har aldrig varit någon vattenfallsprojekts grej. För det var en gång jag var på en intervju och de var så här, ja men vi produserar genom att SSH är in på servern och gör en git pull.
00:19:34
Ja, ja.
00:19:38
Och där vet jag inte om jag hade gjort mig på det uppdraget, så det var kanske...
00:19:43
Ja, kanske var lika bra.
00:19:45
Kanske var lika bra. Så det hade varit en upplevelse, får jag ju säga, som jag inte varit med om tidigare och gissningsvis kanske inte kommer vara med om.
00:19:54
Jag känner mig väldigt bortskämd. Anledningen till att jag började fundera på det här mycket var att det känns som att jag tagit det för givet.
00:20:04
– Ja, jag fattar. – Speciellt när jag har pratat med någon som pratar om produktionsförfarande och jag är så här "Va? Trycker man inte på en knapp bara? Vad håller ni på med?"
00:20:14
Nej, det är lätt att hamna i sin bubbla. I alla fall när man har suttit ett tag i en specifik miljö och så här att "ja men det är så här vi gör" och så bara tycker att det funkar bra.
00:20:25
Men så har man någon annan som bara "nej men vi gör på det här sättet" och man bara "va? Hur?" Så det är inte rätt.
00:20:33
Hur mår ni?
00:20:35
Exakt. Och sen kanske det visar sig att det funkar jättebra för dem.
00:20:39
Men det är så lätt att bara tänka att "ja, vi gör det på rätt sätt och jag är så nöjd med att det går så snabbt".
00:20:45
Sen kan det ju bli åt andra hållet också, att man hör någon annan som bara "vi deployar på det här sättet" och så låter det mycket bättre.
00:20:52
Och så spricker den där lilla bubblan av att man har det toppenbra.
00:20:57
Ja, man ska inte prata med andra. Man ska bara sitta still i båten.
00:21:02
Inte lära sig något från andra.
00:21:04
Nej, fy fan.
00:21:06
Men en annan sak som jag tänkte på som också kan ge lite peace of mind är att ha feature togglar på saker.
00:21:14
Så att du ändå kan deploya ut i produktion så att de inte blir liggande jättelänge.
00:21:20
De här sakerna som du sa kan bli liggande i någon testmiljö och så är det ingen deployer.
00:21:24
Men att man hela tiden har att vi kan deploya ut det här men vi har feature togglat det.
00:21:28
testa dig på en viss del av användarna eller på några beta-användare.
00:21:33
Och det är ju också väldigt skönt.
00:21:35
Ja, det är ju nice med feature toggles och folk pratar om det så mycket.
00:21:41
Men det är väldigt länge sedan jag satt med ett ordentligt feature toggle-system.
00:21:46
De senaste feature togglarna jag gjort är typ så här...
00:21:49
"Du måste ha det här värdet i local storage."
00:21:52
Det kan vara vad som helst. Jag tror jag skrev in Bellman vid något tillfälle.
00:21:56
Jo, men grejen är ju också att det räcker ju ofta att ha det så.
00:22:00
Jag har ju kört LaunchDarkly till exempel, finns det väl en populär som heter?
00:22:05
Och den funkar ju jättebra.
00:22:07
Men fördelen är väl just att då kan du feature toggla det för alla användare.
00:22:12
Eller en viss del av användarna och sådana saker.
00:22:15
Men annars tycker jag ofta att det funkar så här.
00:22:20
Så om man har något som man vill att teamet ska testa i produktion, så lägg det bakom en "local storage"-flagga.
00:22:26
Eller en "query-parameter" i VDL eller vad som helst.
00:22:30
Eller bygga ett system där du har en benämning på det som går helt emot "true" eller "false".
00:22:38
Och du har ingen aning om du togglar på eller av när du togglar.
00:22:42
Ja, så att den är "disable enable toggle false".
00:22:49
Om jag säger "Kill switch on" är den på eller är den av?
00:22:55
Är den avtaglad?
00:22:57
Ja, det är väldigt kul faktiskt.
00:22:59
Nej, den där vill man ju undvika.
00:23:04
Ja, men det är skitnice med feature toggle egentligen.
00:23:13
egentligen. Men sen så här, det är också någonting som känns jobbigt med, eller?
00:23:20
Det är inte jobbigt, vi hade en dag en diskussion om vi skulle feature-toggla eller använda en feature-bransch.
00:23:24
Jag tror vi landade i en feature-bransch, så att vi skapade en bransch som blev liksom som en main för den featuren bara,
00:23:29
och så utgår alla från den. Jag vet inte om det är bättre eller särare, alltså det var, det kändes som att jag satt för länge
00:23:35
Jag har länge också på ett projekt som var Greenfield, så jag glömde bort hur det är att jobba på en produkt som är live.
00:23:44
Där du har användare.
00:23:46
Ja.
00:23:48
Ja, det är en jävla lyx egentligen.
00:23:52
Du behöver inte bry dig om det funkar i Prod.
00:23:56
Det kanske är den smälliga lösningen på dina bekymmer om att det ska funka i Prod.
00:24:02
Om jag har några användare, då är det lugnt.
00:24:05
Precis, om någon bara anställer mig istället som har noll användare, så kör jag där.
00:24:10
Borde man inte vara på byrå då?
00:24:12
Jo, så är det väl. Typ lite så.
00:24:14
Men det gick ut på en gammal kund som jag var på, som byggde vid ett system som hade tre användare.
00:24:21
Som satt en våning upp från oss.
00:24:24
Det var också ganska skönt.
00:24:26
Gick någonting sönder så fick vi veta det direkt, för det var den som knackade på axeln.
00:24:30
Det var ju den nivån.
00:24:33
Och sen kände man ju de som använde det.
00:24:34
Så var det inte hela världen om något gick lite fel.
00:24:38
Men också, känner man att man skapar stort värde då?
00:24:42
Gör man det?
00:24:43
Ja, men systemet skapade väldigt, väldigt stort värde för de här tre personerna.
00:24:47
Och sen var ju tanken att det skulle bli många fler som skulle använda det så småningom.
00:24:49
I andra länder och på andra ställen.
00:24:52
Men just när det var tre som använde det.
00:24:55
Jag längtade lite grann efter en stor extern webb med en massa användare och kunder när jag gick därifrån.
00:25:04
Men det var väldigt kul ändå.
00:25:07
Ja, men gräset är alltid grönare, eller hur?
00:25:09
Så är det ju.
00:25:10
Ja, interna system. Vad kul det var med externa system.
00:25:13
Ja, tills Safari 8, typ.
00:25:16
Ja, så är det ju verkligen.
00:25:20
Sen är väl det lite fördelen med att vara konsult också, om vi ska sidospåra på det.
00:25:25
Allt man faktiskt kan byta.
00:25:27
Ja, nu är ju inte jag konsult då.
00:25:29
Nej, jag vet. Men jag är.
00:25:31
Så vi får se hur länge, tills du längtar efter ett internt system.
00:25:36
Ja, alltså, det kan jag inte säga.
00:25:41
Det skulle ju vara en lögn att säga att jag inte saknar konsultlivet lite grann.
00:25:46
Ja, men som sagt, gräset är alltid grannare på andra sidan.
00:25:49
Så är det. Men det sista jag tänkte på vad gäller produktionssättning och sånt, det är ju egentligen att ha någon typ av on-call.
00:25:57
Ja, just det.
00:25:59
För det är ju, och det har jag haft väldigt lite faktiskt.
00:26:03
Ja, jag med. Extremt lite.
00:26:05
Ja, för jag tror det har varit mycket så här på vissa ställen också, man vill ju inte betala en konsult för on-call om man inte behöver, för det kostar ju mer.
00:26:12
Ja, jag har haft, det enda gången jag har haft en on-call tror jag, eller kanske var någon annan gång förutom det, är ju på det här stället där vi hade tre releaser per år.
00:26:20
Och då var det liksom under release-dagen som allt var på en söndag.
00:26:24
Så då kunde man ha en on-call i typ tolv timmar från åtta till åtta eller något sånt där.
00:26:30
För det första så skulle man ju ofta vara med och releasa någonting, för som sagt det var tre gånger per år, så det fanns ju saker att releasa.
00:26:36
Men då åkte man in till kontoret på en söndag, satt där och så skulle man releasa.
00:26:41
Men sen gick det ofta jättefort för oss, för vi satt med webbgrejer.
00:26:44
Men sen var det affärssystem och kassasystem och hur mycket som helst som skulle releasas.
00:26:50
Då kunde man ha lite on-call i typ 12 timmar. Men det var ganska nice ändå.
00:26:56
Fan. Alltså, ja.
00:26:59
Det var väl betalt för en söndag.
00:27:02
Ja, det kan jag tycka.
00:27:04
Men jag har ju varit på ställen som har on-call, men jag har aldrig haft sån.
00:27:08
Nej, det är samma här.
00:27:10
Och det känns inte som att folk gillar det.
00:27:14
Jag skulle nog inte gilla att ha det heller.
00:27:17
Nej, jag tog faktiskt upp det idag också, att vi borde ha det.
00:27:21
Men det är inte för att jag vill ha det, men det är för att...
00:27:24
Vad fan gör man om saker sjunker då? Någon måste ju ta hand om det.
00:27:28
Du tog upp det för att du bryr dig om produkten.
00:27:31
"Jag bryr mig om Fredrik, jag bryr mig om..."
00:27:33
"Ja, ja, bla bla bla..."
00:27:35
Men alltså jag menar...
00:27:37
Eller så har jag bara för mycket plikt-känsla.
00:27:39
Men liksom för att vi ska ju hantera folks pengar typ.
00:27:44
- Ja.
00:27:46
Du drivs av ångest som vanligt.
00:27:49
- Ja.
00:27:51
- Det är ju upplägt för succé.
00:27:54
Du kommer ju att hitta det här med din on-call.
00:27:58
Man vill ju hellre veta att jag har en on-call än vem som helst kan ringa när som helst om någonting händer.
00:28:06
Det kan gå larm på mobilen som jag bara måste se om någon springer på.
00:28:10
Absolut, det håller jag verkligen med om.
00:28:12
Alltså hellre planerad on-call än någon typ av passiv.
00:28:16
Oklar om någon kommer ringa. Är det mig de ringer?
00:28:20
Ja, men det är jävla oklart hur jag skulle må i det där.
00:28:25
Det skulle vara "Okej, men kan jag lösa det här?"
00:28:27
Tänk om det är en databasgrej.
00:28:29
Kan jag ens läsa loggar?
00:28:31
Jag har fan svårt att hitta information när vi får sådana här jävla error i vår jävla slackkanal.
00:28:35
Men omkoll brukar ju ändå inte handla om att du är den som är på plats och ska lösa allt.
00:28:43
Utan det brukar ju mer vara "Du är första personen som tittar på det"
00:28:47
"och sen så hör du av dig till rätt personer som kan lösa det."
00:28:51
Eller?
00:28:51
Jo, jag tänker.
00:28:53
Det finns säkert alternativ när folk tycker att du ska läsa allt själv.
00:28:57
Men jag tror att det vanliga är att man har en förväntan på sig att titta på problemet, se vad M's ansvar är och sen höra av sig till någon.
00:29:06
Jag kommer ihåg när jag var junior, då ville de inte att vi skulle vara on-call för att de inte behövde bli uppringda när de inte hade on-call för att junioren inte klarade av att ha on-call.
00:29:18
Japp.
00:29:23
–Är det nåt olika? –Jo, men jag kan ju förstå det ur det perspektivet–
00:29:28
–att man sätter inte nån på en kol som inte ens kan förstå vad problemet är.
00:29:34
–Jag, när det gäller databasproblem? –Jo, men du kan ju se att det är ett problem.
00:29:40
–Eller? –Var inte så självnedvärderande nu.
00:29:46
Ja, men det är svårt. Det här med att jag tittar alltid i...
00:29:51
Jag tittade på någon sån jävla Down-detector-sida någon gång, och så trodde jag typ att AVS låg nere.
00:29:58
Men det var bara en jävla GIF som spelades på deras sida, och att den var nere.
00:30:04
Alltså, jag har liksom noll-källkritik i mig.
00:30:09
Det är ju för sig. Väldigt, väldigt on-brand på något sätt.
00:30:13
[Skratt]
00:30:15
Jag vet. Och så skrev Slackkanalen så här, två minuter senare, "Nej, vänta, det var en GIF."
00:30:21
[Skratt]
00:30:23
Ja, lätt hänt.
00:30:25
[Skratt]
00:30:27
Det får vara absolut avsluten till det här avsnittet.
00:30:33
Gud, jag kan inte prata längre. Det är för varmt här.
00:30:35
Ja, det är så jävla varmt. Alltså, förlåt.
00:30:38
Men tack för att ni lyssnade som vanligt.
00:30:41
Hör gärna av er om ni har någon feedback.
00:30:43
Jag tycker det är svinkul att höra att folk faktiskt lyssnar.
00:30:46
Eller om ni har några frågor. Eller avsnittsförslag.
00:30:49
Det är toppen.
00:30:50
Vi ska försöka vara lite stabilare nästa avsnitt. Förhoppningsvis är det inte lika fuktigt och varmt.
00:30:58
Exakt. Tack för att ni lyssnar. Ha det så bra. Bye bye.
00:31:02
Hej då!
00:31:04
[Outromusik]
Tillbaka upp