Maximaal inzicht en controle: inzet van tooling
Om als bedrijf bij te blijven bij de technologische ontwikkelen is het noodzaak om sneller en vaker te releasen.
the/experts helpt hierbij door teams beter en efficiënter te maken
Dit kan gedaan worden met training maar ook met behulp van tools die teams in staat te stellen minder tijd kwijt te zijn aan aspecten die niet te maken hebben met het leveren van functionaliteit.
Daarom werkt the/experts samen met verschillende aanbieders van tools. Er wordt een keuze gemaakt voor tools waar we zelf in geloven en de meerwaarde van zien voor teams. Zo heb ik bijvoorbeeld teams geholpen om de productieomgeving te monitoren waardoor productieproblemen nagenoeg gelijk opgemerkt worden. De filosofie is dat je sommige dingen beter kan uitbesteden dan zelf doen wat zorgt voor een optimale focus van het ontwikkelteam.
We leveren en ondersteunen tools die helpen bij de volgende taken: monitoring, performance testing, chaos testing en security.
Monitoring: Instana
Tegenwoordig wordt er verwacht van multidisciplinaire teams dat zij verantwoordelijk zijn voor de eigen applicaties in productie én dat zij performante software opleveren. Diepgaand inzicht in de applicatie en infrastructuur is hierbij noodzakelijk.
Instana is ontstaan als start-up vanuit the/experts en is onlangs door IBM toegevoegd aan het AIOps product portfolio. Instana is een monitoringtool die werkt met behulp van tracing. Een trace is een stapsgewijze weergave van een aanroep van de code inclusief hoe lang dit duurt en welke fouten er zijn opgetreden. Dit geeft een diep inzicht in wat er binnen het cluster gebeurt.
Op onderstaande afbeelding is een voorbeeld van een trace te zien:
Hier is te zien welke aanroepen er gedaan worden en welke services er geraakt worden. Ook is te zien dat er een database fout is opgetreden. Normaal zou je door de logs moeten gaan zoeken naar de fouten maar in dit geval hebben we de foutmelding vanuit de code direct op het scherm.
Omdat Istana de instrumentatie en het maken van de dashboards volledig automatisch doet is er een minimale tijd nodig om Instana in een omgeving te introduceren. Ook gebruikt Instana intelligentie om fouten automatisch op te sporen. Hierdoor zal Instana helpen om volledig inzicht in het gedrag van je applicatie te krijgen inclusief alertering als er onverhoopt iets mis gaat.
Performance Testing: OctoPerf
Voor de meeste grote bedrijven is de software een onderdeel van de bedrijfsprocessen. Eindgebruikers zijn steeds veeleisender en willen massaal een website of app gebruiken en verwachten dat deze direct reageert. Snelheid, capaciteit en prestaties zijn kwaliteitsaspecten die tegenwoordig niet meer weg te denken zijn. Ik heb vaak genoeg gezien dat er pas na de productiegang naar performance van een applicatie gekeken wordt. Vaak is het dan te laat en is het resultaat een instabiel productiesysteem.
Een manier om er voor te zorgen dat een applicatie de performance kan leveren die verwacht wordt is load testing. Dit kan op verschillende manieren gedaan worden. De traditionele manier is om zelf JMeter tests te schrijven en machines in te richten om deze tests uit te voeren. Het inrichten en onderhouden van de machines kan veel tijd kosten. Daarnaast kan het begrijpen van JMeter-scripts lastig zijn voor niet-ontwikkelaars.
OctoPerf levert hier een oplossing voor met een service waarmee performance tests vanuit de cloud uitgevoerd kunnen worden. Met behulp van een overzichtelijke interface is het mogelijk om de testen op te zetten en uit te voeren.
De onderstaande afbeelding laat een testscenario zien zien waarbij er een gebruiker inlogt en verschillende acties in een webshop uitvoert.
Omdat de tests vanuit de cloud gedraaid worden is het mogelijk om de tests vanuit verschillende locaties uit te voeren. Na de tests kunnen uitgebreide rapportages van de tests geanalyseerd worden. Op deze manier is het mogelijk om performance testen te doen zonder onnodige tijd kwijt te zijn aan het onderhouden van de onderliggende infrastructuur.
OctoPerf helpt dus met het vereenvoudigen van het load testing proces en levert ook nog eens flexibiliteit in het uitvoeren hiervan.
Chaos Testing: SteadyBit
Met de komst van microservices worden de systemen steeds complexer. Er worden services gemaakt die weer afhankelijk zijn van de werking van andere services. Dit kan er voor zorgen dat een applicatie onvoorspelbaar gaat reageren. Chaos testing kan ons helpen om deze gebreken naar boven te brengen met als resultaat een robuuster systeem met een hogere beschikbaarheid.
Het doel van chaos testing is dus gericht gebreken in het systeem te introduceren. Op deze manier is het mogelijk om zwakheden in een applicatie te vinden die op het eerste oog niet zichtbaar zijn. Het proces bestaat uit de volgende stappen:
- Bepaal de basis: hoe werkt het systeem onder optimale condities?
- Maak een hypothese: wat kunnen zwakheden in het systeem zijn, hoe zal het hierop reageren?
- Test: voer de test uit en kijk hoe het systeem reageert.
- Evalueer het resultaat: evalueer de test en definieer verbeterpunten om het systeem stabieler te maken.
Op de onderstaande afbeelding is een testcase van SteadyBit te zien:
Bij deze testcase wordt er een load-test gedaan terwijl er een container uit zal vallen. Hierdoor is de beschikbaarheid van het systeem te testen wanneer er een bepaalde service minder beschikbaar is.
Met SteadyBit is het mogelijk deze tests te automatiseren en de resultaten te analyseren. Nadat de aanpassing gedaan is kan de test nogmaals uitgevoerd worden om te kijken of de aanpassing tot de oplossing van het probleem heeft geleid. Dit zal resulteren in een hogere stabiliteit van het systeem met minder kans op onvoorziene onderbrekingen. Het gebruik van SteadyBit zal helpen om een applicatie robuuster te maken en zo goed mogelijk voorbereid te zijn op onvoorziene omstandigheden.
Security: Lacework
Cyberaanvallen zijn tegenwoordig aan de orde van de dag. Iedere grote onderneming heeft security officers in dienst. Met de huidige politieke spanningen en veelvoud van bekende en onbekende kwetsbaarheden in software is het meer dan ooit belangrijk om de applicatie security op orde te hebben.
- Compliance: voldoet de configuratie aan de best practices van de cloud providers?
- Container security: bevat de container bekende zwakheden en draaien deze container in onze omgeving?
- Workload security: zijn er verdachte acties te ontdekken, wordt er misbruik gemaakt van beveiligingsproblemen?
Op de onderstaande afbeelding is een voorbeeld te zien van een verdachte actie waarbij er een security group aangemaakt wordt:
LaceWork zal uit zichzelf de applicatie en het gebruik ervan leren kennen en zal in staat zijn normaal en verdacht gedrag te onderscheiden. Het is mogelijk om na het ontdekken van een beveiligingsprobleem na te gaat wat er allemaal op het systeem gebeurd is. Dit kan er voor zorgen dat er geen onzekerheid is of het lek inderdaad gebruikt is of niet. Dit zal de teams helpen om met minimale inspanning de beveiliging op een hoog peil te houden.
Met Lacework is het dus mogelijk om een scherp oog op de security te houden. Verdachte acties worden automatisch opgemerkt waardoor er met een minimale inspanning een zo hoog mogelijke security gewaarborgd kan worden.
codecentric kan met deze verschillende tools de betrouwbaarheid van de systemen verbeteren. Mocht er interesse zijn in een van deze producten of het inrichten van de bijbehorende processen neem dan contact met ons op. We kunnen vrijblijvend een demo verzorgen om zo de functionaliteiten te laten zien en toe te lichten.