 Välkomna till Zoolet Volvo Cars presentation. Vi är människa av team CI och Johannes Fuffas produktornör. Jag är Malin Vass, CI DevOps och vår mänkontributör till Zool open-source produktornör. Hur kör du i Zoolet? Vi har en småkård team där teamen började ut med CI i vår organisation. Vi håller Zool tillbaka och alla cloudnodes och staticnodes. Vi har bråd att supporta 111 utvecklingar. Det är många småkård teamen. I Zoolet har vi försökt öppna några av dem- för att kunna adda nodes, pipelines, repros och jobbkonfigurationer. Varför kör vi i Zoolet? Premium cars, premium tools. Zool är en premium tool. För att ha en grön master kan vi öppna utvecklingsspelningen. Det har vi sett i actualitet när vi började använda Zoolet. En exempel av något som byggs med Zool är en pedal-drive-feature av Polestar 2. Det var Zoolet. Det finns en link här i presentationen om du vill se till den här bilden. Vi har en historia. Teamen stämde från en team som började i 2000 i inhouse software-developement. De följde lokale komputer med bettfilen- och passade runt med spistiken mellan dem- för att testa det. I 2015 började vi använda Jenkins och Nightly Builds. I nästa år rampade vi upp till runt 100 utvecklare i systemet. Vi har förväntat mycket beteende och integrering. Det var en dödlig linje som följde i en ranch- och skickade tillbaka och byggs software. Vi hade tillbaka det och följde problemet. Vi sökte internet för ett gatingsystem som skulle hålla master ring. Vi stambelade på Zool och introducerade Zoolv2 2018. I 2019 började vi experimentera Zoolv3. Vi började migrata alla produkter i Zoolv3. Alla nya produkter började upp i Zoolv3. I 2020 var allt Zoolv3. Varför är Zoolv3? Vi behövde handla software-developement i en NVIDIA-central komputer. Vi har många team med olika gärder. Vi har en introduktion av cloudnodes. Vi relaterade på krossprodukt- och dependensfiltret av Zoolv3. Det komplexes mycket. Det mest viktigaste filtret av Zoolv3 är denna gatingsystem. Det är inte ett bråkande kod. Det är väldigt viktigt. Vår långtast Zoolv3-projekt har haft en Green Master i april 2018. En annan Zoolv3-team hade långa perioder med bråkande masterträck. Och även kända av CIN-perioder. Det finns andra fittor som vi äter med Zoolv3. En är spekulativ merge. Här har vi en dödlig linje. För en utveckling för att se hur software-förändringen för masterträck är. Det är hur många nivåer vi kan ge och hur många licenser. Vi testar allt i parallell. Vi har också systemet av prioritiserade Qs som vi gillar. I samma skäl när det finns en dödlig linje. Vi vill inte att nån av oss ska ta 200 utvecklare till jobbet. När det finns en viktig dödlig linje och vi vill prioritera. Vi vill att det blir mycket masterträck. Och då ser vi jobbkonfigurationer med software-förändringen. Det är väldigt viktigt. Ja, och det kommer för att vi alltid måste kunna reproducera jobbet. Särskilt även i år ständigt. Och även om vi verkligen gillar sol och tycker att det är bra i många sätt. Vi har också hittat många problem med det. Särskilt när det kommer från Jenkins och på den vänsta sidan. Och mest av dessa problemar stämmer inte oss att runna på vänster. Men det kommer från software vi använder att bygga våra software i automotivindustrin. Och dessa byggtuner är oftast förväntade att runna på en desktop-environnement. Och det är inte hur Ansible känner till en jobbkonfiguration. Särskilt när det är en förväntning. Så vi har haft att bygga mycket hax för att jobba runt de här linjerna. För att bygga våra typer på machines. Och eftersom vi håller på med många små team med våra egen gärvid-instanser. Och det är bättre att få de koderegisterna. Det betyder att när vi är på en ny team måste vi ha en ny konnexion-tulet för att få en ny system. Och då behöver vi en rebuld. Och en rebuld tar för lång tid. Särskilt när vi har projekter som är upp till 5 gigabyte i stället. Med en väg för många branscher som måste bli utmärkt. Och en annan problem vi har är att skäddaren är en singel poäng av förväntning. Det betyder att om det för några gånger skäddaren stoppas att jobba. Eller att det är en ny konnexion-tulet för att bygga våra hela CAA-infrastruktur. Det sker mycket av utvecklingarna för att inte kunna jobba. Så de software-komponenterna bildar Zool. Jag tror att många av de här komponenterna här i listan är intäkta i den här videon vi hade i början av den här presentationen. Vi har några autonomous drive-komponenter. I momenten är de höga lösningar. Decision management, optimization management, blisvårningsystem och så vidare. Vi har Propulsion and Vehicle-kultur som kontroller handling av kvar. Det är connectiv till gaspedal, för exempel, av kvarfilter. Vi har dependabilitet av det. Det är de säkerhetsbaserade system och fallbackstrateger. Vi har förmiddagkontroll som handlar kvullingsystemen av kvar. Och allt är connectiv till det. Elektrikar har mycket kvulling med elektriska batterier och motor. Vi har Vehicle-state som calculerar accelererar och har olika kanal-sanser i kvar. Vehicle-stationer-kontroll. Vi har Vehicle-manner-latter-kontroll. Brakeplanser. Om du har elektrikar kan du brak med elektrik motor och brak med friktionbrak. Så du måste brak. Vi har viktiga saker inom kabin. Doorkontroll, sidokontroll och kabin-klamatkontroll. Och vi har stjärningkontroll. Och vi har central on-board diagnostikkors. Vi har diagnostik av hela kvar. Vi har också central computer, low power CPUs, bas teknologi. Det här teamen gillar Zoom och de utvecklar kvulling i rust. Det är väldigt intressant. De gillar att pröva hur bra kvulling i rust är för automotivindustrin. Det försöker vara särskilt särskilt med mängderhandling av default. Ja. Just en gång tidigare har vi anmittat en av de teamen till bäckan. De har bäckan access till Zoom. Det är riktigt bra. Jag vill säga. Här är ett exempel av några pipelines. De här är jammorfilen från en av repositorerna. Här har vi en Matlab, Simulink, Targetlink, genererat C-kode pipeline. Först har vi en bildavvodare här. Vi har en teammember som beror på det. Det satsar oss mycket om tid. Vi analyserar file-strukturen och förändrar vad som kan förändras. Vi har också en ny jobb för att förändras. Ja, det betyder att alla jobb som är bäckad av bildavvodaren är bäckad av bildavvodaren. Och om de inte har fungerat så är de skippt i Zoom-deb-gui. Vi har också olika saker här i Check & Gate. I Gate har vi target-kompiler och småktest och merge-test, som vi kallar dem, för att förändra att systemet fungerar faktiskt. Här är en annan exempel, en annan pipeline. De här är samlade från röstteams pipelines. Här har de processeringar och luktest. De har röstbränser som de runer röstkoden in. Och jag tror att de runer mer eller mindre än vad man skulle expect från dem. Jag tror att de runer i kargo och så vidare. Så här är den här listan. I den här bilden försöker vi spela en schematisk flow av hela kompleta pipelines, så att jag kan se. White dots är automatiska jobb, och flat capacitatorer är manuella städer, som Gevitt Covery, för exempel. I den läggen har vi en flow som skrivs, kodet genererat med Matlab, simulink och targetlink. Och här har vi många tuller som vi runer. Vi runer komplexitet analyser, vi runer mycket check-skrips, vi runer cross-compilers och vi bygger DLLs i Windows-environment och unitests, vi runer specie-check, och signal-consistency, för exempel. Och det är mainly för att vi har kritikalssensitive software, det är software som är särskilt sämre än kan. Och den här liten sidan kommer också från att supporta modeller som inte är programmerade. Ja, inte alla, åtminstone. Samtidigt. Och på den här liten sidan har vi en pipeline från software-developers som kodar hand. Så detta skulle naturligtvis bli olika. Det kunde vara C, C++, eller E-Rust. Och vi ser här check-skrips och gate. Och vi lever... Vi entererar gate med produktverkare, usually, och gör en kod review, plus 2. Och här kan vi runa de kompilersen och ta bort systemtests för att säta att systemet faktiskt verkar. Och då har vi en start-och-release pipeline med att bygga, kring ett gittag, och det gör att bygga förändringar och dokumentationer. Man kan också bygga target-softwaret, eller re-target och testa det där i den här liten sidan. I den här bilden kan du se några av de tooler som vi brukar använda i de här pipelines. Och på matlab-sektionen kan du se att vi brukar MxA, MxAM från NES. Vi brukar använda silverna testfilter från Synapsys i för att testa vår software, hardware-independent. Och du kan också se några av de target-kompilers som vi har i gate här. Så nu är vi hosta alla våra silverna på statisknoten som vi har gått från ett IT-departement. Det betyder att vi inte kan starta och stoppa det som vi vill. Vi kan inte registrera nya noter eller sånt. Så vi har ett satt montant-noten som vi är runna på. Men de senaste gången har vi access till AWS. Så vi börjar använda cloudnoten för att bygga jobb och sånt. Vi brukar också använda arktifaktorer för alla våra biners som vi gör på jobb. Men vår stort fokus är att bygga våra silverna till cloud. Och det är en del av vår framtid. Jag är stort på att sätta upp vår silverinfrastruktur i Kubernetes. Så vi ska runna en skäljare och en annan exkluder eller sånt. Vi har försökt ha en skäljare av det, för många av våra utvecklingar som vi har hållit på här i Gothenburg betyder att när alla slår, vi inte ska använda våra resorter, men vi är stort att runna, så vi är stort att paya för dem. Så en skäljare är ett bra sätt att sälja det. Vi har också access till Azure, så vi ska använda Azure i framtiden. Och några av våra användare är i Github, så vi vill kunna lyssna på Github och repostor. Ska vi använda din feedback? Välkomna utvecklare är sceptiska, men speciellt de som har jobbat med andra sida-systemet har blivit högre avgörande när master inte är bråkande. Ska vi missa Jenkins grafiska utställning? Och några, inte många i alla, inte älskar ansvar. Och en del av Jenkins grafiska utställning är att vi har jobb som vi vill runna med programmet, och det är så att vi inte kan supporta oss. Ja, så det är stort. Tack så mycket!