{"version":"1.0.0","segments":[{"startTime":0.0,"endTime":8.92,"body":"Je luistert naar het derde en laatste deel van de driedelige serie over trends in MLOps."},{"startTime":8.92,"endTime":15.0,"body":"Mijn naam is Joke Snijder, CTO bij Agency. In deze aflevering staat het operations deel"},{"startTime":15.0,"endTime":20.88,"body":"van MLOps centraal. Voordat we beginnen wil ik opmerken dat deze aflevering wel technischer"},{"startTime":20.88,"endTime":26.36,"body":"is dan je van ons gewend bent, maar blijf vooral luisteren en laat weten of je vaker een technische"},{"startTime":26.36,"endTime":34.56,"body":"afleggen in mijn lijst. Veel plezier. Zo, we zijn toegekomen aan deel 3 van onze speciale reeks Q-CON"},{"startTime":34.56,"endTime":43.32,"body":"San Francisco 2022. We hebben het over MLops, de trends in MLops. MLops, een set van tools en"},{"startTime":43.32,"endTime":50.44,"body":"best practices om van het ontwerp van je machine learning tot aan productie te komen. En hoe hou"},{"startTime":50.44,"endTime":56.68,"body":"houd je de machine learning modellen ook waardevol in productie en hoe beheers je die."},{"startTime":56.68,"endTime":62.56,"body":"Vandaag het laatste deel, het opsige deel, samen met Willem Mijns."},{"startTime":62.56,"endTime":65.32,"body":"Willem, wil jij je eerst even voorstellen aan de luisteraar?"},{"startTime":65.32,"endTime":70.44,"body":"Zeker. Ik ben Willem Mijns. Ik werk als Chief AI Architect voor Agency,"},{"startTime":70.44,"endTime":75.44,"body":"onderdeel van InfoSupport. Daarnaast ben ik ook actief als Chapter Lead Data \u0026 AI"},{"startTime":75.44,"endTime":77.52,"body":"voor de Business Unit Finance binnen InfoSupport."},{"startTime":77.52,"endTime":83.0,"body":"Ja, we hebben veel gezien, veel gehoord en we vinden ook best wel een hele hoop over een aantal dingen."},{"startTime":83.0,"endTime":86.92,"body":"Dus laten we het op z'n deeltes eventjes behandelen."},{"startTime":86.92,"endTime":88.64,"body":"Zal ik even starten?"},{"startTime":88.64,"endTime":90.12,"body":"Ja, ik denk dat het goed is, ja."},{"startTime":90.12,"endTime":100.36,"body":"Ja, want ik heb een sessie gehad en die sessie heette eigenlijk, die noemden ze HDMI SATT."},{"startTime":100.36,"endTime":102.16,"body":"Zo had 'ie het ook te heten erover."},{"startTime":102.16,"endTime":102.92,"body":"Wat een tennis."},{"startTime":102.92,"endTime":109.0,"body":"Ja, want dan was het natuurlijk een afkorting en dat was 'How did it make sense at that time?'"},{"startTime":109.0,"endTime":111.2,"body":"En vooral dat laatste vond hij heel erg belangrijk."},{"startTime":111.2,"endTime":118.08,"body":"Dat gaat erover, en het is niet machine learning specifiek, maar denk ik ook heel goed toepasbaar voor machine learning,"},{"startTime":118.08,"endTime":120.72,"body":"is wat als er nou iets fout is gegaan?"},{"startTime":120.72,"endTime":131.04,"body":"Ja, dat heeft te maken gehad met dat er ergens op een moment iemand gedacht heeft om iets te ontwerpen, iets te doen,"},{"startTime":131.04,"endTime":134.8,"body":"Wat op dat moment heel logisch leek, op dat moment."},{"startTime":134.8,"endTime":136.0,"body":"O, ja."},{"startTime":136.0,"endTime":137.0,"body":"Snap je?"},{"startTime":137.0,"endTime":145.8,"body":"Niemand, zei hij ook, stapt 's ochtends uit bed van 'zo, ik ga dit boel dus even helemaal kapot maken'."},{"startTime":145.8,"endTime":151.56,"body":"En er waren twee voorbeelden van hoe stuk iets kan gaan, wat hij pakte."},{"startTime":151.56,"endTime":155.24,"body":"De eerste was van Salesforce."},{"startTime":155.24,"endTime":159.08,"body":"Iemand had daar iets met de DNS'en veranderd."},{"startTime":159.08,"endTime":163.08,"body":"En dat werd even globaal, werd dat..."},{"startTime":163.08,"endTime":168.56,"body":"Ja, globaal, echt wereldwijd zeg maar, uitgerold."},{"startTime":168.56,"endTime":173.08,"body":"En Salesforce was 14..."},{"startTime":173.08,"endTime":177.6,"body":"Nee, ik moet zeggen, 5 uur wereldwijd offline."},{"startTime":177.6,"endTime":178.6,"body":"Auw."},{"startTime":178.6,"endTime":180.32,"body":"Ja, pijn hè."},{"startTime":180.32,"endTime":183.12,"body":"Kan nog erger. Atlassian."},{"startTime":183.12,"endTime":187.52,"body":"Ik ben even kwijt wat daar fout was gegaan, maakt het niet zo heel veel uit."},{"startTime":187.52,"endTime":191.2,"body":"Het probleem was 14 dagen een outage."},{"startTime":191.2,"endTime":194.6,"body":"Oh ja, dat is helemaal heel verkeerd."},{"startTime":194.6,"endTime":196.32,"body":"Oh ja, nee, dat was een mooie ja."},{"startTime":196.32,"endTime":204.84,"body":"Wat daar gebeurde, nu weet ik het weer, is dat iemand die..."},{"startTime":204.84,"endTime":209.24,"body":"Er waren heel veel sites, Adlessing sites opgespint."},{"startTime":209.24,"endTime":216.32,"body":"En wat hij gedaan had, is dat hij... Dan krijg je web-ids."},{"startTime":216.32,"endTime":223.32,"body":"had 883 ID's lijst gekregen en dat moest allemaal weggegooid worden."},{"startTime":223.32,"endTime":233.72,"body":"Maar het probleem en er zaten 15 diegenen had 15 ID's gepakt, getest, alles, alle procedures"},{"startTime":233.72,"endTime":244.04,"body":"gevolgd in acceptatie, alles goed en vervolgens zat over de rest van die 883 maar dat bleken"},{"startTime":244.04,"endTime":251.04,"body":"site-id's te zijn. Dus hij gooide gewoon heel veel sites gewoon weg."},{"startTime":251.04,"endTime":252.6,"body":"Dat lijkt me vrij pijnlijk."},{"startTime":252.6,"endTime":258.48,"body":"Dat was heel pijnlijk. De meesten waren ook niet meer terug te halen."},{"startTime":258.48,"endTime":267.16,"body":"Dus de vraag was bij beide, wat is er nou fout gegaan? Wat hij zei is,"},{"startTime":267.16,"endTime":274.72,"body":"van er wordt heel vaak een root cause analysis gedaan. Nog erger vaak wordt het een"},{"startTime":274.72,"endTime":283.8,"body":"blame game van wie is de schuldige. Maar die root cause analysis waren ook allemaal openbaar."},{"startTime":283.8,"endTime":292.04,"body":"Ja en dan stonden daar dingen in zoals bij die DNS behandeling van iemand had zich niet aan de"},{"startTime":292.04,"endTime":300.4,"body":"aan de policies gehouden en er was nog een reden. Maar hij zei van ja maar er is niet, er staat nergens"},{"startTime":300.4,"endTime":307.4,"body":"in van waarom leek het voor diegene op dat moment een goed idee. Ja het is eigenlijk niet zozeer de"},{"startTime":307.4,"endTime":315.96,"body":"hood calls maar meer wat is eraan vooraf gegaan nog zelfs. Ja en hij zei als voorbeeld van als jij"},{"startTime":315.96,"endTime":320.72,"body":"Hij zei, ik loop ook regelmatig door het rood."},{"startTime":320.72,"endTime":322.04,"body":"Zegt hij, mag niet."},{"startTime":322.04,"endTime":323.56,"body":"Doen we toch."},{"startTime":323.56,"endTime":324.56,"body":"Doen we toch."},{"startTime":324.56,"endTime":326.68,"body":"En hoe meer haast je hebt."},{"startTime":326.68,"endTime":331.28,"body":"Want bijna altijd door het rood lopen gaat goed."},{"startTime":331.28,"endTime":333.8,"body":"Want je kijkt eerst naar links, je kijkt naar rechts, je kijkt nog een keer naar links."},{"startTime":333.8,"endTime":334.96,"body":"Je denkt, niks komt eraan."},{"startTime":334.96,"endTime":335.96,"body":"Het kan."},{"startTime":335.96,"endTime":338.32,"body":"Het is veilig om over te steken."},{"startTime":338.32,"endTime":344.88,"body":"Datzelfde geldt natuurlijk ook voor de shortcuts die je neemt in je dagelijks werk."},{"startTime":344.88,"endTime":346.88,"body":"Dat je denkt, oh dat heb ik vaker gedaan."},{"startTime":346.88,"endTime":354.32,"body":"Maar ook hoe drukker je bent, dus als je haast hebt op straat, ben je geneigd om meer risico's te nemen."},{"startTime":354.32,"endTime":357.32,"body":"Dat je denkt, nou, ik steek even snel over."},{"startTime":357.32,"endTime":361.92,"body":"En misschien ren je ook wat harder de straat over. Dat had hij als analogie."},{"startTime":361.92,"endTime":365.56,"body":"En dat zou bij zo iemand best gebeurd kunnen zijn."},{"startTime":365.56,"endTime":369.28,"body":"We weten het niet, want dat staat niet in die publieke rapporten."},{"startTime":369.28,"endTime":375.88,"body":"Wat nou als het een goed idee bleek omdat er bijvoorbeeld een hele belangrijke manager heeft gezegd"},{"startTime":375.88,"endTime":383.18,"body":"\"Pas die DNS even aan want ik heb straks een hele belangrijke demo en ik kom er even niet doorheen.\""},{"startTime":383.18,"endTime":389.4,"body":"En je denkt, nou ik heb links gekeken, rechts gekeken, hoe heel veel druk, ik denk dat dat best even kan."},{"startTime":389.4,"endTime":390.52,"body":"Ja precies."},{"startTime":390.52,"endTime":399.24,"body":"Dus het ging er echt heel erg om van dat je door blijft denken van waarom bleek het op dat moment een goed idee."},{"startTime":399.24,"endTime":404.68,"body":"Dus ook als je zo direct in productie met je machine learning problemen tegenkomt en je moet"},{"startTime":404.68,"endTime":412.92,"body":"nagaan denken van wat is nou het probleem. Dus niet je root cause analysis ook maar nog verder van"},{"startTime":412.92,"endTime":419.92,"body":"waarom leek het op dat moment een goed idee. En omdat dat nou ja tegen tegengaan kan niet."},{"startTime":419.92,"endTime":427.8,"body":"Dat je kan nog zo goed, ik pak even het statement erbij. In het Engels was het complex systems are"},{"startTime":427.8,"endTime":434.8,"body":"Heel veel mensen zijn op de hoogte van hun verliezenheid, maar de catastrofe is altijd net rond de hoek."},{"startTime":434.8,"endTime":443.48,"body":"Het ligt altijd op de loer. Hoeveel je ook aan preventie hebt gedaan, er kan altijd wat gebeuren."},{"startTime":443.48,"endTime":451.6,"body":"Nou, dan ga je terug. Maar om dat misschien wel te voorkomen, is het wel handig om in ieder geval een vorm van documentatie te hebben"},{"startTime":451.6,"endTime":460.48,"body":"voor jezelf, voor je future self, dat je op zijn minst documenteert waarom op dat moment dingen een goed idee lijken."},{"startTime":460.48,"endTime":465.48,"body":"Dus architectuurbesluiten. Daar weet jij denk ik alles van."},{"startTime":465.48,"endTime":470.48,"body":"Ja, ik doe zelf nog steeds veel met softwarearchitectuur natuurlijk."},{"startTime":470.48,"endTime":478.48,"body":"En sowieso als AI architect ben je eigenlijk een softwarearchitect die dan specifiek voor AI projecten bezig is."},{"startTime":478.48,"endTime":486.48,"body":"Kijk, een van de dingen die ik zelf heel belangrijk vind is aan de ene kant, ik wil graag documentatie die mensen gebruiken."},{"startTime":486.48,"endTime":490.2,"body":"zodat als we willen weten waarom die keuze was gemaakt, waarom het een goed idee was,"},{"startTime":490.2,"endTime":494.24,"body":"dat we dat altijd kunnen terughalen en dat dat makkelijk is te vinden."},{"startTime":494.24,"endTime":497.72,"body":"En aan de andere kant, ja, je wilt toch een soort geschiedenis vastleggen."},{"startTime":497.72,"endTime":502.76,"body":"Dus een van de technieken die we veel gebruiken binnen InfoSupport ook,"},{"startTime":502.76,"endTime":505.16,"body":"is Architecture Decision Records."},{"startTime":505.16,"endTime":507.6,"body":"Het zijn hele eenvoudige documentjes eigenlijk."},{"startTime":507.6,"endTime":512.68,"body":"Daar staat in, we hebben dit besluit genomen, dit was de achtergrond van het besluit,"},{"startTime":512.68,"endTime":514.68,"body":"en dit zijn de gevolgen van het besluit."},{"startTime":514.68,"endTime":517.0,"body":"En omdat dat heel eenvoudig is..."},{"startTime":517.0,"endTime":518.84,"body":"Zijn dat Word documenten?"},{"startTime":518.84,"endTime":520.92,"body":"Nee, Markdown. Gewoon platte tekst."},{"startTime":520.92,"endTime":524.6,"body":"Wij gebruiken Markdown, dat is een taal eigenlijk die..."},{"startTime":524.6,"endTime":527.72,"body":"waarbij je met eenvoudige symbolen voor de tekst kan aangeven."},{"startTime":527.72,"endTime":531.68,"body":"Dit is een groot kopje, middelgroot kopje, klein kopje, opsomming en dat soort dingen."},{"startTime":531.68,"endTime":533.2,"body":"Maar het is gewoon platte tekst."},{"startTime":533.2,"endTime":534.76,"body":"Dus het is helemaal niet zo fancy."},{"startTime":534.76,"endTime":537.44,"body":"We hebben ook geen hele fancy portalen of zo, dat is allemaal niet nodig."},{"startTime":537.44,"endTime":539.72,"body":"En je schrijft ook geen proza, hè?"},{"startTime":539.72,"endTime":541.04,"body":"Nee, zeker niet."},{"startTime":541.04,"endTime":542.32,"body":"Het is heel kort."},{"startTime":542.32,"endTime":550.02,"body":"Ik zag jou vanochtend, was je bezig met het opzetten van een platformarchitectuur voor machine learning."},{"startTime":550.02,"endTime":555.02,"body":"Dat stond ook in Markdown en dat kon je gewoon omzetten."},{"startTime":555.02,"endTime":557.12,"body":"Wat gebruikte je daarvoor? Want dat zag er heel mooi uit."},{"startTime":557.12,"endTime":563.12,"body":"Dus je had heel kort beschreven van dit zijn de besluiten, dit is het plaatje wat erbij hoort."},{"startTime":563.12,"endTime":565.92,"body":"Dat is eigenlijk lean en mean, maar wel super duidelijk."},{"startTime":565.92,"endTime":570.22,"body":"Ja, dus ik gebruik zelf, er zijn een aantal dingen die ik gebruik."},{"startTime":570.22,"endTime":572.22,"body":"Ik gebruik Markdown voor de beschrijving."},{"startTime":572.22,"endTime":578.72,"body":"En die kun je in de meeste tools, als je bijvoorbeeld GitHub of als je DevOps of GitLab gebruikt,"},{"startTime":578.72,"endTime":582.52,"body":"die zetten hem automatisch onder HTML, zodat je het netjes kan lezen."},{"startTime":582.52,"endTime":584.92,"body":"En door de Markdown heb je ook version control en dat soort zaken, hè?"},{"startTime":584.92,"endTime":586.72,"body":"Ja, ik check het in in source control."},{"startTime":586.72,"endTime":591.22,"body":"Dat is niet iedereen misschien gewend, maar dat werkt fantastisch."},{"startTime":591.22,"endTime":594.22,"body":"En je kan de verschillen dus dan heel makkelijk checken."},{"startTime":594.22,"endTime":600.72,"body":"Ik kan ook zeggen tegen een ontwikkelaar, \"Hé, we hebben dit besproken in de meeting, maak even een aanpassing en geef me een pull request.\""},{"startTime":600.72,"endTime":604.52,"body":"Dan kan ik het reviewen zelfs voordat het in mijn documentatie komt te staan."},{"startTime":604.52,"endTime":606.52,"body":"Dus dat is de reden dat ik dat gebruik."},{"startTime":606.52,"endTime":613.72,"body":"Als je dat thema doortrekt, van \"Ik wil het gefashioneerd hebben\", afbeeldingen maak ik niet als plaatjes."},{"startTime":613.72,"endTime":615.92,"body":"Maar ik gebruik dat plant.uml voor."},{"startTime":616.12,"endTime":620.64,"body":"En dat is een taal, daar kan ik declaratief aan geven."},{"startTime":620.64,"endTime":622.16,"body":"Ik heb een systeem."},{"startTime":622.16,"endTime":623.28,"body":"Ik heb een user."},{"startTime":623.28,"endTime":625.0,"body":"Ik heb een netwerkverbinding."},{"startTime":625.0,"endTime":626.48,"body":"Ik heb een relatie."},{"startTime":626.48,"endTime":628.2,"body":"Ik heb een context."},{"startTime":628.2,"endTime":631.76,"body":"En die dingen die kun je in elkaar stapelen"},{"startTime":631.76,"endTime":635.84,"body":"en je kun je met behulp van Plain2ML kun je dan een plaatje daarvan genereren."},{"startTime":635.84,"endTime":639.4,"body":"Het plaatje sla ik ook op in source control, want dat is makkelijk."},{"startTime":639.4,"endTime":641.16,"body":"Maar dat is echt niet belangrijk."},{"startTime":641.16,"endTime":645.72,"body":"Dat diagram, die originele definitie, die is belangrijk voor me."},{"startTime":645.92,"endTime":651.76,"body":"En dat is de documentatie voor je future zelf, dat je vast hebt gelegd, dit zijn de keuzes."},{"startTime":651.76,"endTime":659.4,"body":"Op dit moment, at this moment, at this time, is dat hoe ik erover denk, waarom het een goed besluit is."},{"startTime":659.4,"endTime":664.12,"body":"Dus dat betekent als we straks iets, na een jaar, twee jaar, dingen kapot gaan,"},{"startTime":664.12,"endTime":667.8,"body":"waarvan misschien dan dat je echt denkt van, hoe heb ik dat bedacht?"},{"startTime":667.8,"endTime":674.8,"body":"Ja, hoe dan? Weet je? Welke idioot, dat je teruggaat, maar ja, die idioot was ik zelf."},{"startTime":674.8,"endTime":677.8,"body":"\"Oh, maar dat dat en dan en dat.\""},{"startTime":677.8,"endTime":683.24,"body":"En dat was inderdaad op dat moment, was dat, ja, daarom heb ik dat gedaan."},{"startTime":683.24,"endTime":685.74,"body":"Dat je, en daar kan je dan van leren."},{"startTime":685.74,"endTime":689.64,"body":"Dus ik vond dat wel een heel mooi idee."},{"startTime":689.64,"endTime":694.34,"body":"Dus lean and mean documenteren, maar vooral eigenlijk is geen blame game."},{"startTime":694.34,"endTime":699.54,"body":"En nog verder dan je root cause analysis van, ja,"},{"startTime":699.54,"endTime":707.52,"body":"Hoe komt het nou dat iemand tot dat besluit is gekomen om tussen aanhalingstekens zo'n grove fout te maken?"},{"startTime":707.52,"endTime":717.38,"body":"Want niemand komt uit bed 's ochtends van zo ik ga eens even een grove fout maken waarbij 14 dagen even alles eruit ligt."},{"startTime":717.38,"endTime":720.82,"body":"Ja toch? Echt een mooi idee."},{"startTime":720.82,"endTime":726.4,"body":"En wat hij ook nog aangaf is van er is ook een heel groot verschil."},{"startTime":726.4,"endTime":734.84,"body":"Want je kan nog zoveel policies, guidelines, handleidingen, werk SOW's hebben."},{"startTime":734.84,"endTime":739.8,"body":"Of SOW's, SOP's hebben."},{"startTime":739.8,"endTime":746.88,"body":"Maar er is een heel verschil tussen hoe het werk is opgeschreven en hoe het werk uiteindelijk uit wordt gevoerd."},{"startTime":746.88,"endTime":751.84,"body":"Het mooiste vond ik een plaatje van het werk hoe het is beschreven."},{"startTime":751.84,"endTime":757.44,"body":"heb je de kast binnen je in elkaar zetten. Iedereen kent dat wel, de beschrijvingen van IKEA."},{"startTime":757.44,"endTime":763.64,"body":"En dat je misschien jezelf op een gegeven moment ziet van, oh ja ik had toch eigenlijk stap 4 even gedaan"},{"startTime":763.64,"endTime":767.44,"body":"en misschien pak ik hier eventjes een hamer erbij."},{"startTime":767.44,"endTime":771.64,"body":"Je denkt altijd van, oh ja ik kan dat wel even zo, dat je de halve weg achterkomt van,"},{"startTime":771.64,"endTime":775.44,"body":"oh ja maar nou zit toch iets een beetje scheef andersom."},{"startTime":775.44,"endTime":778.44,"body":"Je houdt er pas groefjes over. - Ik houd er pas groefjes over, dat."},{"startTime":778.44,"endTime":785.04,"body":"Dus dat vond ik wel een mooie, weet je, van je kan niet alles vatten in procedures, dus ga ook weer terug."},{"startTime":785.04,"endTime":787.44,"body":"Dus dat vond ik heel erg leuk."},{"startTime":787.44,"endTime":789.64,"body":"Accepteer een beetje chaos, toch wel."},{"startTime":789.64,"endTime":790.64,"body":"Ja, ja."},{"startTime":790.64,"endTime":800.64,"body":"Hé, jij was ook nog naar een sessie geweest over eigenlijk reliability testen, hè?"},{"startTime":800.64,"endTime":807.04,"body":"Wat we ook heel, ik bedoel, dat is een algemeen iets, maar kunnen we ook heel goed gebruiken bij de machine learning."},{"startTime":807.04,"endTime":812.08,"body":"Ja, ik was naar die sessie toe gegaan, van ik ben toch wel eens benieuwd."},{"startTime":812.08,"endTime":821.6,"body":"Vanguard, een Amerikaanse investeringsmaatschappij, die had een sessie over chaos testing."},{"startTime":821.6,"endTime":827.6,"body":"Het idee dat je expres fouten in een omgeving gaat introduceren."},{"startTime":827.6,"endTime":832.68,"body":"Je gaat een server uitzetten, of een netwerkverbinding kapot maken, of een database weggooien."},{"startTime":832.68,"endTime":835.24,"body":"En dan ga je kijken hoe je systeem reageert."},{"startTime":835.24,"endTime":843.72,"body":"En dat doen ze met de als reden van, wat wij eerder zeiden, je kan nooit helemaal 100% weten wat er gaat gebeuren in productie."},{"startTime":843.72,"endTime":849.64,"body":"Je hebt het allemaal goed ontworpen, je hebt het allemaal goed gedocumenteerd, oké, dat kan zo zijn."},{"startTime":849.64,"endTime":855.08,"body":"Maar het zou wel mooi zijn als je ook nog een paar testen kan draaien op je infrastructuur om te controleren van,"},{"startTime":855.08,"endTime":858.12,"body":"wat nou als het fout gaat? Wat gebeurt er dan?"},{"startTime":858.12,"endTime":863.56,"body":"En dan niet zozeer dat het dan allemaal automagisch is, zelf weer moet herstellen ofzo. Dat was niet haar verhaal."},{"startTime":863.56,"endTime":871.16,"body":"Zij zei van het gaat er juist om dat je je bewust wordt als het fout gaat, wat zijn dan de gevolgen van die fout?"},{"startTime":871.16,"endTime":874.88,"body":"Nou, en zij... - En kun je het ook detecteren, hè?"},{"startTime":874.88,"endTime":880.88,"body":"Dus het is net zo, zei je inderdaad van het hoeft inderdaad niet up and running te blijven,"},{"startTime":880.88,"endTime":886.88,"body":"als je ook verwacht dat het niet up and running is, maar dat je het bijvoorbeeld wel in je logging terug ziet ofzo."},{"startTime":886.88,"endTime":891.4,"body":"Ja, je kan als je zo'n test gaat draaien, kun je gewoon kijken"},{"startTime":891.4,"endTime":894.68,"body":"Van tevoren, van wat voor signalen heb ik dan al."},{"startTime":894.68,"endTime":898.68,"body":"Je kan tijdens de test kijken welke signalen krijg je uit dat systeem."},{"startTime":898.68,"endTime":901.0,"body":"En wat gebeurt er daarna? Komt ie bijvoorbeeld weer terug?"},{"startTime":901.0,"endTime":902.48,"body":"Was dat de bedoeling dat ie terugkwam?"},{"startTime":902.48,"endTime":904.8,"body":"Misschien was dat wel helemaal niet de bedoeling dat ie weer terugkwam."},{"startTime":904.8,"endTime":907.64,"body":"Dat zit allemaal in die testen."},{"startTime":907.64,"endTime":911.96,"body":"Dus die testen die kijken, nou helemaal afsproken in testen in code,"},{"startTime":911.96,"endTime":915.2,"body":"kijken we vooral naar, krijgen we het verwachte resultaat?"},{"startTime":915.2,"endTime":917.48,"body":"1+1 wordt het automatisch 2."},{"startTime":917.48,"endTime":921.94,"body":"Maar in dit geval kijk je naar, krijg ik uit mijn monitoring de juiste alerts terug?"},{"startTime":921.94,"endTime":924.06,"body":"Krijg ik in de logfase de juiste dingen terug?"},{"startTime":924.06,"endTime":925.78,"body":"Kan ik dat bekijken ook nog?"},{"startTime":925.78,"endTime":931.48,"body":"En het juiste gedrag, want het kan wel zijn dat je verwacht dat iets bijvoorbeeld na 5 minuten weer up komt."},{"startTime":931.48,"endTime":935.16,"body":"Dat zat ook helemaal in die flow, dus dat je dan 5 minuten wacht,"},{"startTime":935.16,"endTime":940.66,"body":"checkt of bijvoorbeeld een database weer hersteld is,"},{"startTime":940.66,"endTime":945.62,"body":"waar je uit put, misschien met je machine learning."},{"startTime":945.62,"endTime":955.42,"body":"En dan kan die verder. En het mooie was, ook dat ging weer via een declinatieve manier om dat op te schrijven."},{"startTime":955.42,"endTime":961.82,"body":"We hebben in deel 1 en deel 2 allerlei declinatieve manieren gezien van aanpak."},{"startTime":961.82,"endTime":963.82,"body":"Hier zat ook een declinatieve aanpak."},{"startTime":963.82,"endTime":969.42,"body":"Ja, ze hadden hier een workflow. Ze maakten gebruik van Amazon AWS."},{"startTime":969.42,"endTime":974.82,"body":"En zij gebruikten workflows om dat in elkaar te zetten, dat ding."},{"startTime":974.82,"endTime":981.22,"body":"Je kan dan blokken erin slepen die bepaalde standaard operaties doen, standaardchecks en bijvoorbeeld die wachttijden ook,"},{"startTime":981.22,"endTime":983.62,"body":"dat hij vijf minuten gaat wachten totdat hij weer terug is."},{"startTime":983.62,"endTime":986.22,"body":"Dat zit er allemaal ingetekend."},{"startTime":986.22,"endTime":992.02,"body":"En het mooie daarvan is ook, je kan het direct documenteren gewoon, je kan het vastleggen en laten zien aan anderen."},{"startTime":992.02,"endTime":995.22,"body":"Kijk, dit is hoe het gegaan is. Het is gelukt of het is niet gelukt."},{"startTime":995.22,"endTime":998.22,"body":"Dat vond ik wel heel sterk aan haar verhaal."},{"startTime":998.22,"endTime":1003.62,"body":"Misschien dat de luisteraars ook de Netflix Chaos Monkey kennen."},{"startTime":1003.62,"endTime":1006.66,"body":"Die doet dat eigenlijk een soort van willekeurig."},{"startTime":1006.66,"endTime":1009.58,"body":"Die gaat zeg maar door je productiesysteem heen."},{"startTime":1009.58,"endTime":1015.46,"body":"En als een wilde aap trekt hij gewoon alles eruit."},{"startTime":1015.46,"endTime":1020.06,"body":"En dit was wel wezenlijk anders toch?"},{"startTime":1020.06,"endTime":1022.06,"body":"Ja, dit was zeker wel anders."},{"startTime":1022.06,"endTime":1026.42,"body":"Chaos Monkey is willekeurig en die laat jouw productie los."},{"startTime":1026.42,"endTime":1031.1,"body":"En hopelijk is je systeem sterk genoeg om er tegen te kunnen tegen die aap."},{"startTime":1031.1,"endTime":1035.38,"body":"Dit gaat niet op productie, dit gaat op een staging omgeving."},{"startTime":1035.38,"endTime":1037.54,"body":"En dit is van tevoren uitgedacht."},{"startTime":1037.54,"endTime":1043.14,"body":"Ze heeft dat niet heel precies uitgelegd hoe ze tot het design van die testen komen."},{"startTime":1043.14,"endTime":1045.94,"body":"Een van de dingen die wij in het verleden hebben gedaan,"},{"startTime":1045.94,"endTime":1049.62,"body":"is dat wij een meeting hadden op ons team,"},{"startTime":1049.62,"endTime":1051.5,"body":"The Wheel of Misfortune."},{"startTime":1051.5,"endTime":1053.82,"body":"Er werd van tevoren een van het team gevraagd..."},{"startTime":1053.82,"endTime":1056.98,"body":"...wil jij eens iets bedenken waarmee ons systeem kapot kan?"},{"startTime":1056.98,"endTime":1061.26,"body":"Bijvoorbeeld het database weggooien."},{"startTime":1061.26,"endTime":1064.78,"body":"Nou, wat gebeurt er dan allemaal volgens ons?"},{"startTime":1064.78,"endTime":1068.3,"body":"En met zo'n meeting, als je gaat nadenken over van..."},{"startTime":1068.3,"endTime":1070.94,"body":"...oké, stel dit gaat kapot, die database."},{"startTime":1070.94,"endTime":1072.34,"body":"Wat gebeurt er dan allemaal?"},{"startTime":1072.34,"endTime":1075.78,"body":"Dat kan jou helpen om een ontwerp te maken voor zo'n chaos test."},{"startTime":1075.78,"endTime":1078.42,"body":"Ze deden het eigenlijk hypothese gebaseerd."},{"startTime":1078.42,"endTime":1084.14,"body":"Ja, dit is de hypothese, die leggen we in, ook weer in YAML, leggen we dat vast."},{"startTime":1084.14,"endTime":1086.42,"body":"Op een declaratieve manier."},{"startTime":1086.42,"endTime":1089.22,"body":"Dan gaat het systeem eronder, die gaat werken."},{"startTime":1089.22,"endTime":1095.78,"body":"En dan kan je uiteindelijk checken of je hypothese uitkomt."},{"startTime":1095.78,"endTime":1100.22,"body":"Dus of uiteindelijk je systeem weer up-and-running is, of dat je juist verwacht dat die dat niet is."},{"startTime":1100.22,"endTime":1102.5,"body":"Dus dat was er wel heel mooi aan."},{"startTime":1102.5,"endTime":1107.66,"body":"En wat ik wel slim bedacht vond, is dat ze vooraf, voor het uitvoeren,"},{"startTime":1107.66,"endTime":1109.66,"body":"dat ze toch een killswitch hadden."},{"startTime":1109.66,"endTime":1112.38,"body":"Dat ze van als anderen op staging,"},{"startTime":1112.38,"endTime":1115.56,"body":"ja, er komt ergens een productieprobleem of weet ik veel wat voorbij"},{"startTime":1115.56,"endTime":1118.22,"body":"en die willen ook even door staging heen."},{"startTime":1118.22,"endTime":1121.66,"body":"Ja, dat die niet in de weg zitten met zo'n,"},{"startTime":1121.66,"endTime":1124.66,"body":"nou ja, ook zo'n chaosdeel."},{"startTime":1124.66,"endTime":1127.86,"body":"Ja, dat vond ik wel een hele goede set."},{"startTime":1127.86,"endTime":1131.66,"body":"Omdat je ook niet moet vergeten, het is niet gewoon even,"},{"startTime":1131.66,"endTime":1134.06,"body":"ik draai even een hele korte test,"},{"startTime":1134.06,"endTime":1137.16,"body":"zo'n chaostest kan echt enkele uren in beslag nemen"},{"startTime":1137.16,"endTime":1142.04,"body":"Als je een uitgebreid scenario hebt, dan is die kill switch van wezenlijk belang om het goed te laten lopen."},{"startTime":1142.04,"endTime":1142.54,"body":"Ja."},{"startTime":1142.54,"endTime":1144.04,"body":"Maar ik vond het wel een heel knappe dag."},{"startTime":1144.04,"endTime":1145.04,"body":"Ja, was leuk."},{"startTime":1145.04,"endTime":1153.54,"body":"En zorgt ook wel weer voor inspiratie hoe je hierover nadenkt op het gebied van het opsdeel van MLOps."},{"startTime":1153.54,"endTime":1154.04,"body":"Ja."},{"startTime":1154.04,"endTime":1164.54,"body":"Nou, dan zijn we echt bij het laatste onderdeel van de laatste speciale aflevering van deze driedelige serie."},{"startTime":1164.54,"endTime":1171.14,"body":"en dat is dat we in bijna alle specifieke MLOps-sessies"},{"startTime":1171.14,"endTime":1173.14,"body":"kwam steeds Ray terug."},{"startTime":1173.14,"endTime":1175.14,"body":"Ja, die komt steeds terug."},{"startTime":1175.14,"endTime":1177.54,"body":"Ik heb ons er ook al vaker over horen praten."},{"startTime":1177.54,"endTime":1180.34,"body":"In de vorige twee afleveringen is hij ook al voorbij gekomen."},{"startTime":1180.34,"endTime":1182.74,"body":"Het is een ding."},{"startTime":1182.74,"endTime":1186.34,"body":"Het is echt wel belangrijk geworden dat..."},{"startTime":1186.34,"endTime":1190.34,"body":"Ja, heel veel grote spelers gebruikten Ray"},{"startTime":1190.34,"endTime":1193.34,"body":"of de tooling die wij genoemd hebben"},{"startTime":1193.34,"endTime":1196.14,"body":"hebben Ray optioneel eronder voor de schaalbaarheid."},{"startTime":1196.14,"endTime":1201.92,"body":"Dus misschien kun je even nog uitleggen van de mensen die misschien afleveringen hiervoor niet gehoord hebben."},{"startTime":1201.92,"endTime":1203.02,"body":"Wat is Ray?"},{"startTime":1203.02,"endTime":1207.82,"body":"Ja, Ray is een distributed runtime voor Python."},{"startTime":1207.82,"endTime":1215.62,"body":"En met die library kun je bestaande code over meerdere machines heen laten draaien."},{"startTime":1215.62,"endTime":1218.02,"body":"En waarom is dat dan handig om dat te kunnen doen?"},{"startTime":1218.02,"endTime":1220.12,"body":"Nou, waar wij in de machine learning vaak tegenaan lopen,"},{"startTime":1220.22,"endTime":1224.08,"body":"dat datasets niet meer passen in het geheugen van één computer."},{"startTime":1224.08,"endTime":1228.58,"body":"En dan is het fijn dat je kan zeggen, ik knip die dataset in een aantal partities op,"},{"startTime":1228.58,"endTime":1230.78,"body":"en ik laat meerdere machines daaraan rekenen."},{"startTime":1230.78,"endTime":1234.46,"body":"Dat kan al met heel veel tools, er zijn meer tools die dit doen,"},{"startTime":1234.46,"endTime":1239.98,"body":"alleen het unieke aan Ray is dat je begint met een eenvoudig Python programma,"},{"startTime":1239.98,"endTime":1244.72,"body":"zonder speciale instructies, en als je merkt dat het niet meer past,"},{"startTime":1244.72,"endTime":1249.46,"body":"dan kun je met speciale declaraties, met decorators kun je aangeven,"},{"startTime":1249.46,"endTime":1252.78,"body":"Deze code moet je nu gaan uitschalen over meerdere machines in."},{"startTime":1252.78,"endTime":1257.06,"body":"En dan zeg je, app start je ray.remote, zet je het boven je functie,"},{"startTime":1257.06,"endTime":1259.58,"body":"en dan is die functie is remote geworden."},{"startTime":1259.58,"endTime":1263.46,"body":"Nou, dat werkt dan heel mooi voor het uitschalen."},{"startTime":1263.46,"endTime":1266.34,"body":"Ray doet nog wel meer. Ray die heeft namelijk,"},{"startTime":1266.34,"endTime":1268.94,"body":"dit wat ik net noemde, dat noemen ze tasks."},{"startTime":1268.94,"endTime":1271.02,"body":"Die zijn stateless ook."},{"startTime":1271.02,"endTime":1274.1,"body":"Maar je kan in Ray ook het actor pattern gebruiken."},{"startTime":1274.1,"endTime":1276.82,"body":"Dan verander je je code in een soort acteur,"},{"startTime":1276.82,"endTime":1279.82,"body":"die van zichzelf weet wat voor staat hij inverkeert."},{"startTime":1279.82,"endTime":1283.42,"body":"Die wordt ergens op een machine gedraaid en er kunnen berichten naartoe gestuurd worden."},{"startTime":1283.42,"endTime":1287.82,"body":"En dan kun je zowel stateless programma's als stateful programma's draaien."},{"startTime":1287.82,"endTime":1290.22,"body":"Wat je soms ook in machine learning echt wel nodig hebt."},{"startTime":1290.22,"endTime":1294.42,"body":"Dat is een heel krachtig mechanisme, een heel simpel te gebruiken framework,"},{"startTime":1294.42,"endTime":1297.42,"body":"want het werkt op je laptop, maar je kan er ook pdcloud in,"},{"startTime":1297.42,"endTime":1300.22,"body":"naar 1000, 2000 nodes als je dat wilt,"},{"startTime":1300.22,"endTime":1303.02,"body":"wat ze bij bedrijven als DoorDash ook zeker doen."},{"startTime":1303.02,"endTime":1306.62,"body":"Dat is een heel mooi framework, moet ik wel zeggen."},{"startTime":1306.62,"endTime":1315.06,"body":"Ja, en hoe moet ik dit plaatsen in het operations deel? Want zeg maar zeggen van dat die gedistribueerd"},{"startTime":1315.06,"endTime":1320.54,"body":"moet worden en dat soort zaken is dan misschien wat iets meer def. Wat is de operations deel"},{"startTime":1320.54,"endTime":1326.94,"body":"hiervan? Nou ja, kijk, wat je wel ziet is dat iedereen die grote systemen heeft gebouwd,"},{"startTime":1326.94,"endTime":1331.18,"body":"merkt ook wel in productie, er is altijd wat aan de hand. Er valt altijd wel wat om. Een"},{"startTime":1331.18,"endTime":1335.66,"body":"van de dingen die Ray heel slim doet, is dat als een van zijn taken die ergens op het noden"},{"startTime":1335.66,"endTime":1340.94,"body":"draait omvalt, dan schedule hij hem automatisch op een andere. Als je operations moet doen, is dat"},{"startTime":1340.94,"endTime":1346.62,"body":"wel heel erg prettig dat hij dat doet. Die full tolerance en automatisch de recovery van de"},{"startTime":1346.62,"endTime":1351.02,"body":"spullen, dat zit er allemaal in gebouwd, dus je krijgt dat gewoon niet terug. Daarnaast wat ook"},{"startTime":1351.02,"endTime":1355.98,"body":"heel erg opviel aan Ray, is de manier waarop je het kan monitoren. Je kan aan de buitenkant heel"},{"startTime":1355.98,"endTime":1362.38,"body":"goed in de gaten houden, hoe ver is die eigenlijk met uitvoeren van alle stappen. Want ja, er is"},{"startTime":1362.38,"endTime":1368.38,"body":"niks vervelende dat als je een job hebt van vijf uur, dat je vijf uur lang niks te zien krijgt."},{"startTime":1368.38,"endTime":1372.54,"body":"Dat wil je niet. Je wilt op al die individuele stappen kunnen monitoren, zodat je ook weet van"},{"startTime":1372.54,"endTime":1379.58,"body":"wat duurt er nou precies te lang of welke stuk gaat er precies mis. Dat soort vraagstukken kun je dan"},{"startTime":1379.58,"endTime":1385.9,"body":"allemaal beantwoorden. Dus dat zit er allemaal in gebouwd voor je. - Mooi. Nou, ik denk dat we een"},{"startTime":1385.9,"endTime":1389.5,"body":"en hoop gezien, hoop geleerd, hoop geïnspireerd ook zijn."},{"startTime":1389.5,"endTime":1395.82,"body":"Mocht je nou de vorige aflevering nog niet geluisterd hebben, dan beveel ik die wel aan."},{"startTime":1395.82,"endTime":1400.74,"body":"Dus we hebben net een deel ML, deel Dev en nu dan de Ops."},{"startTime":1400.74,"endTime":1409.14,"body":"Hiermee is deze speciale Q-con San Francisco 2022 trilogie is het bijna."},{"startTime":1409.14,"endTime":1412.02,"body":"Lord of the Rings, Lord of the VR is nu klaar."},{"startTime":1412.02,"endTime":1414.38,"body":"Dankjewel voor het luisteren."},{"startTime":1414.38,"endTime":1419.9,"body":"Zorg dat je ons volgt, dan mis je geen aflevering."},{"startTime":1419.9,"endTime":1423.06,"body":"Spotify, Apple Music, kan je dat aanzetten."},{"startTime":1423.06,"endTime":1427.26,"body":"En dan krijg je even een ping als er weer een nieuwe aflevering online staat."},{"startTime":1427.26,"endTime":1429.26,"body":"Dankjewel voor het luisteren."},{"startTime":1429.26,"endTime":1432.06,"body":"En Willem, jij dankjewel voor de drie delen."},{"startTime":1432.06,"endTime":1437.38,"body":"Hopelijk dat je weer eens een keer snel te gast bent in de podcast."},{"startTime":1437.38,"endTime":1439.38,"body":"Zeker."}]}