Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Advertorial

Door Tweakers Partners

Cloud Craftmanship: Zonder fouten geen leerschool

12-12-2019 • 08:00

2 Linkedin Google+

Fouten maakt iedereen, maar als ze worden verzwegen of, nog erger, niet worden verholpen, komen we SChuberg Philis logoallemaal in de problemen. Het herkennen en erkennen van fouten is dan ook een belangrijk onderdeel van iets dat in it-jargon ook wel cloud craftsmanship heet. Dat is bij het Nederlandse Schuberg Philis niet anders. Om te weten hoe dat it-bedrijf omgaat met zijn cloud craftsmanship, spraken we met Bogdan Grozoiu en Michael de Bruin.

Michael en Bogdan werken beiden met een andere cloudprovider als basis; Michael is AWS-goeroe en Bogdan Microsoft Azure-specialist. Ondanks de verschillen geldt voor beide clouds dat alles neerkomt op goede communicatie, openheid en blijven leren. Naast dieper ingaan op cloud craftsmanship en blunders, bespreken we voor enkele problemen hoe ze het best zijn op te lossen in de twee clouds. Of het nou om Azure, AWS of GCP gaat, dat maakt volgens Michael niet uit. “Binnen de it denken we vaak dat wat we doen, heel speciaal is, maar uiteindelijk wil je gewoon trots zijn op je werk.”

Bogdan: "Cloud craftsmanship houdt in dat je constant bezig bent met leren, toepassen en delen, iets wat ik voor het eerst bij Schuberg Philis deed met Microsoft dedicated tools." Hij zorgt onder andere voor het automatiseren van processen, wat in Azure het best gaat met diensten van Microsoft zelf. "Je kunt op Azure het best geen tools gebruiken die niet door Microsoft getweakt zijn. Als je het dan met de juiste tools goed in elkaar hebt gezet, heb je gewoon een heel goede dienst gebouwd."

Dat is volgens Bogdan ook het grootste voor én nadeel van Microsoft. Je moet de Microsoft-manier gebruiken, dan gaat alles goed. Bij AWS moet een ontwikkelaar veel meer zelf uitvinden, maar je bent daardoor weer flexibeler. "Even je eigen api maken is heel lastig en als je dan iets wil proberen, heb je weer te weinig goede documentatie."

Michael vergelijkt het met hoe je op de desktop Windows en Linux kunt gebruiken. "Beide zijn besturingssystemen en met beide kun je tot hetzelfde einddoel komen. Bij Windows doe je dat binnen een mooie interface en dan werkt het goed. Bij Linux kun je alles zelf scripten en is er een api voor alles wat je kunt bedenken."

Automatiseren

"Veel mensen denken bij het automatiseren van processen niet aan craftsmanship. Ze vergeten dan dat je goed geautomatiseerde processen ook weer gemakkelijk kunt herbouwen als ze stukgaan of als er iets anders mee gebeurd is", zegt Michael. Hij legt verder uit dat een ander groot voordeel van automatiseren is dat je van tevoren goed uitgedachte stappen niet per ongeluk vergeet, waardoor iets ineens bijvoorbeeld onveiliger wordt. "Je hoeft niet al die 57 stappen opnieuw te zetten, er vervolgens per ongeluk één vergeten en daarmee een S3-bucket publiek beschikbaar maken. Daar kom je dan wel mee in het nieuws, maar dat wil je natuurlijk niet!"

Het andere grote voordeel van het automatiseren van processen is dat je ze niet elke keer opnieuw hoeft uit te vinden voor klanten met vergelijkbare wensen. Dat scheelt tijd en geld, voor zowel de klant als, in dit geval, Schuberg Philis. Automatiseren is daarom ook niet alleen het vergemakkelijken van processen, maar ook het automatiseren van processen die de monitoring doen. Bogdan: "Dat is iets wat we op dagelijkse basis doen, ervoor zorgen dat de boel veilig is en efficiënt werkt."

AWS, Azure of GCP?

Bij Schuberg Philis wordt per geval gekeken of AWS, Azure of GCP wordt ingezet. Bogdan en Michael zeggen dat er geen specifieke voorkeur is, al heeft iedereen vanuit zijn verleden een eigen voorkeur. Op dit moment is volgens Michael de DevOps-tooling van Microsoft ‘fantastisch’ als je veel gebruikmaakt van Microsoft native services.

Wil je aan de slag met veel aan het internet-of-things gerelateerde zaken, dan is op dit moment AWS de Bij Schuberg Philis wordt per geval gekeken of AWS, Azure of GCP wordt ingezet. place to be. “We gebruiken bijvoorbeeld in een groot project Greengrass voor het uitvoeren van code op locatie die praat met plc’s. De apparatuur achter die code mag niet met internet in contact komen, want dan kom je ook weer in het nieuws”, zegt Michael. Hij probeert te bedenken hoe hij hetzelfde zou kunnen doen met Azure, maar dat zou op dit moment nog lastig zijn. Bogdan merkt op dat Azure IOT inmiddels een stuk verder is. Dan komt toch de voorkeur van Michael naar voren; hij komt nog uit de Unix-school en dan is AWS een logischere stap.

Cloud-agnostisch

Het gesprek komt op de klant die alles overal wil kunnen draaien, in elke cloud. Zowel Bogdan als Michael zou dat afraden, tenzij het om een heel specifiek geval gaat.

"Je kunt in een cloud-agnostische omgeving niet serverless draaien, daarvoor verschillen de implementaties per techniek te veel. Dan moet je dus een laag hoger en alles in containers doen in plaats van in de veel lichtere en simpelere lambda's die bijvoorbeeld bij AWS in zwang zijn", zegt Michael.

"Je ontzegt jezelf de mogelijkheid om de latest and greatest technologie te gebruiken", voegt Bogdan toe. Wel geeft hij aan dat er een geval is waarin je het misschien zou willen toepassen. "Bijvoorbeeld rond Black Friday, wanneer je als bedrijf zestig procent van je jaaromzet draait. Daar kun je dan best een ultralichte website voor ontwikkelen die op drie clouds draait met microservices die verschillende clouds kunnen aanspreken. Dan betaalt de een via die cloud en de ander via een andere cloud."

Mission Critical Cloud

Naast de clouds van de drie grote aanbieders, AWS, Azure en GCP, heeft Schuberg Philis sinds 2012 ook een eigen cloud in drie datacentra. De orchestration-software (api en userinterface) is gebaseerd op Apache CloudStack. "We hebben onze fork Cosmic gedoopt. De fork was nodig om sneller te kunnen ontwikkelen dan samen met de community mogelijk was. Sinds de fork hebben we meer dan honderd releases uitgebracht en uitgerold", zegt Michael.

"We hebben onze eigen cloud, omdat er klanten zijn die geen publieke cloud willen gebruiken om wat voor reden dan ook. Daarvoor is onze Mission Critical Cloud, kortweg MCC, een uitstekende oplossing. MCC is gebouwd in drie datacentra met de nieuwste hardware. Denk aan all-flash storage, nvme, een 40Gbit-netwerk, Xeon Gold-cpu's en in totaal meer dan 100TB ram voor virtuele machines. Daarnaast hebben we directe verbindingen met de publieke clouds, zodat on-premise MCC-vm's veilig en snel kunnen communiceren met services in de publieke clouds."

Blunders

Een laatste belofte voor het gesprek was dat beiden hun grootste blunders met ons zouden delen. Michael vertelt dat zijn grootste misser nog precloudtijdperk is en te maken heeft met ftp-diensten. Hij migreerde een dienst van een Windows-omgeving naar Linux waarbij de ftp-server werd gesynchroniseerd met zeven locaties. Dit gebeurde in eerste instantie via een script dat elke locatie achter elkaar synchroniseerde. Zo kon het, als een locatie heel veel bestanden moest synchroniseren, best een tijd duren voordat de volgende aan de beurt was. Michael dacht er een multithreaded-actie van te maken en later bedacht hij dat het handig zou zijn als er, in het geval van fouten, ook een error-handling script zou zijn.

"Honderdduizenden berichten overspoelden het mailserversysteem en uiteraard midden in de nacht.""Ik vergat de wait time in de loop van het script te plaatsen en dat leverde een aardig probleem op. Honderdduizenden berichten overspoelden het mailserversysteem en uiteraard midden in de nacht", zegt Michael. Toen hij vervolgens een nachtelijk telefoontje kreeg van de persoon met dienst, wist hij direct wat het was. Dat mocht echter niet direct baten, want de fout zat ook in de testomgeving, dus de problemen gingen door 'op een server met vier cores en vijftig verbindingen per seconde!' Dat was voldoende om de toenmalige e-mailinfrastructuur op de knieën te dwingen.

"Als het een cloudomgeving was geweest, had het nog heel wat erger kunnen zijn, want die was gewoon vrolijk meegeschaald", bedenkt hij zich nu.

Michael leerde niet alleen wat hij zelf fout had gedaan, maar ook wat te doen om het niet weer te laten gebeuren. "Maar praten met m'n coach was wel eng. Ik dacht: nu heb ik het verbruid! Gelukkig had ik een mail gestuurd met uitleg over wat er was gebeurd en hoe het kwam. Ik had dus al gelijk laten zien van mijn fout te leren en daar gaat het uiteindelijk om: leren van je fouten en ook dat je ze moet delen, zodat anderen ze niet maken."

Cutting corners

Haastige spoed is zelden goed, dat was Bogdans grootste leermoment. "Het maken van diensten zonder documentatie en geen informatie delen met anderen over de werking ervan, dat was achteraf heel dom." Hij werkte aan een SharePoint-systeem en iedereen die eraan werkte, wilde zo snel mogelijk nieuwe diensten opleveren. Om dat te kunnen doen, werden volgens Bogdan heel wat bochten afgesneden met medeweten van iedereen.

Uiteraard liep dat uit op een grote crash en Bogdan zelf was precies op dat moment in Azië, dus in een andere tijdzone. Het systeem dat hij had gebouwd, liep vast en niemand wist wat te doen. Niets werkte meer en anderen hadden de oplossing gemakkelijk kunnen vinden als hij goede documentatie had geschreven en een gedegen overdracht aan collega's had gedaan.

"Ik heb er vooral van geleerd vaker nee te zeggen tegen klantenteams. Die zijn altijd bang klanten te verliezen, maar we verliezen veel meer als we goede engineers verliezen door te snel en zonder documentatie diensten op te leveren."

Michael onderschrijft wat Bogdan zegt. "Goed documenteren wordt onvoorstelbaar ondergewaardeerd. Het maakt het verschil tussen aan de ene kant vijf minuten lezen en begrijpen wat er moet gebeuren, en aan de andere kant tot drie uur 's nachts de boel moeten reverse-engineeren, omdat nergens staat hoe het werkt."

Schuberg Philis-diner

Op 5 maart 2020 houden we het Schuberg Philis-diner, een meetup waarbij je op het kantoor van Schuberg Philis te Schiphol-Rijk echt een kijkje in de keuken krijgt. Vorig jaar hadden we bijvoorbeeld een workshop Docker & Kubernetes onder begeleiding van Schuberg Philis Engineers. Daarnaast was er een keynote over Security in de cloud. Binnenkort gaan wij aan de slag met het samenstellen van het programma voor het volgende Schuberg Philis-diner. Wil jij hiervan op de hoogte worden gehouden? Vul dan onderstaande poll in. Zodra het definitieve programma bekend is ontvang je één mail van ons.

Bekijk hier het verslag van vorig jaar om een indruk te krijgen.

Wil jij op de hoogte worden gehouden van het Schuberg Philis-diner?

Poll

De opties zijn uitgeschakeld omdat je niet ingelogd bent

Dit artikel is een onderdeel van een artikelenreeks in samenwerking met Schuberg Philis.

Dit artikel is geen redactioneel artikel, maar een advertorial. Mocht je ideeën met ons willen delen over deze vorm van adverteren, dan horen wij dat graag. Hierover kun je met ons in gesprek via [Discussie] Reclame algemeen, daar zullen collega's aanwezig zijn om jouw vragen en/of opmerkingen te bespreken/beantwoorden.

Reacties (2)

Wijzig sortering
Je kunt op Azure het best geen tools gebruiken die niet door Microsoft getweakt zijn. Als je het dan met de juiste tools goed in elkaar hebt gezet, heb je gewoon een heel goede dienst gebouwd.
Sorry, maar wat? ;( voor zover ik weet zijn zaken als Terraform, Ansible en GitLab geen tools die door Microsoft "getweakt" zijn, maar toch zeker wel beter geschikt in veel gevallen. Azure heeft out-of-the-box niets dat hetzelfde doet of even krachtig is.

[Reactie gewijzigd door ItsNotRudy op 30 december 2019 18:07]

GCP is trouwens het Google Cloud Platform.

Was misschien handig geweest om minimaal 1x te vermelden.

Op dit item kan niet meer gereageerd worden.


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True