Zephyrnet-logo

Hoe Tricentis snel en op schaal inzichten ontsluit in de levenscyclus van softwareontwikkeling met behulp van Amazon Redshift

Datum:

Dit is een gastpost die is geschreven in samenwerking met Parag Doshi, Guru Havanur en Simon Guindon van Tricentis.

Tricentis is de wereldleider in continu testen voor DevOps, cloud en bedrijfsapplicaties. Het is goed gepubliceerd sinds de State of DevOps 2019 DORA-statistieken werd gepubliceerd dat bedrijven met DevOps software 208 keer vaker en 106 keer sneller kunnen implementeren, 2,604 keer sneller kunnen herstellen van incidenten en 7 keer minder defecten kunnen vrijgeven. Snelheid verandert alles, en continu testen gedurende de gehele CI/CD-levenscyclus is de sleutel. Snelheid wordt echter alleen gerealiseerd als u het vertrouwen heeft om software op aanvraag uit te brengen. Tricentis wekt dat vertrouwen door softwaretools te bieden die Agile Continuous Testing (ACT) op schaal mogelijk maken. Of het nu verkennend of geautomatiseerd is, functioneel of prestatiegericht, API of UI, gericht op mainframes, aangepaste applicaties, verpakte applicaties of cloud-native applicaties, Tricentis biedt een uitgebreide suite van gespecialiseerde continue testtools die haar klanten helpen het vertrouwen te krijgen om op aanvraag vrij te geven.

De volgende fase van de reis van Tricentis is het ontsluiten van inzichten in alle testtools. Teams kunnen moeite hebben om een ​​uniform beeld te krijgen van de softwarekwaliteit vanwege silo-testen met veel verschillende tools. Voor gebruikers die een uniform beeld van de softwarekwaliteit nodig hebben, is dit onaanvaardbaar. In dit bericht delen we hoe de AWS-datalab heeft Tricentis geholpen om hun software as a service (SaaS) Tricentis Analytics-platform te verbeteren met inzichten aangedreven door Amazon roodverschuiving.

De uitdaging

Tricentis levert SaaS- en on-premises oplossingen aan duizenden klanten wereldwijd. Elke verandering in software die het testen waard is, wordt bijgehouden in testmanagementtools zoals Tricentis qTest, testautomatiseringstools zoals Tosca of Testim, of prestatietesttools zoals Neoload. Hoewel Tricentis dergelijke gegevens gedurende een decennium heeft verzameld, blijven de gegevens onbenut voor waardevolle inzichten. Elk van deze tools heeft zijn eigen rapportagemogelijkheden die het moeilijk maken om de gegevens te combineren voor geïntegreerde en bruikbare zakelijke inzichten.

Bovendien is de schaal aanzienlijk omdat de multi-tenant gegevensbronnen een continue stroom van testactiviteiten bieden, en onze gebruikers snelle gegevensvernieuwingen en historische context voor maximaal tien jaar nodig hebben vanwege nalevings- en regelgevingseisen.

Ten slotte staat data-integriteit hoog in het vaandel. Elke gebeurtenis in de gegevensbron kan relevant zijn en onze klanten tolereren geen gegevensverlies, slechte gegevenskwaliteit of discrepanties tussen de bron en Tricentis Analytics. Bij het aggregeren, samenvatten en afstemmen op een gemeenschappelijk informatiemodel mogen alle transformaties de integriteit van de gegevens van de bron niet aantasten.

De oplossing

Tricentis Analytics is gericht op het aanpakken van de uitdagingen van grote volumes, bijna realtime en visueel aantrekkelijke rapportage en analyse voor het gehele productportfolio van Tricentis.

De initiële doelstellingen van de klant waren:

  • Zorg voor export van gegevens die veilig toegankelijk zijn vanuit de AWS Cloud
  • Zorg voor een eerste set vooraf gebouwde dashboards die onmiddellijke zakelijke inzichten bieden
  • Beta test een oplossing met early adopters binnen 6 weken

Gezien de multi-tenant databron, hebben Tricentis en het AWS Data Lab-team rekening gehouden met de volgende beperkingen:

  • Lever de end-to-end pijplijn om alleen de in aanmerking komende klanten in een analyserepository te laden
  • Transformeer de multi-tenant data in single-tenant data die voor elke klant geïsoleerd zijn in strikt gescheiden omgevingen

Wetende dat gegevens zullen worden verenigd over vele bronnen die in elke omgeving worden ingezet, vroeg de architectuur om een ​​analyseplatform op ondernemingsniveau. De datapijplijn bestaat uit meerdere lagen:

  • Gegevens van de bron opnemen als toepassingsgebeurtenissen of CDC-streams (Change Data Capture).
  • Gegevens in een wachtrij plaatsen zodat we de gegevens terug in de tijd kunnen terugspoelen en afspelen zonder terug te gaan naar de bron
  • Lichte transformaties, zoals het opsplitsen van gegevens van meerdere huurders in gegevens van één huurder om klantgegevens te isoleren
  • Data bijhouden en presenteren in een schaalbare en betrouwbare lake house (data lake en datawarehouse) repository

Sommige klanten krijgen rechtstreeks toegang tot de repository via een API met de juiste vangrails voor stabiliteit om hun testgegevens te combineren met andere gegevensbronnen in hun onderneming, terwijl andere klanten dashboards gebruiken om inzicht te krijgen in testen. In eerste instantie definieert Tricentis deze dashboards en grafieken om inzicht te krijgen in testruns, testtraceerbaarheid met vereisten en vele andere vooraf gedefinieerde use-cases die waardevol kunnen zijn voor klanten. In de toekomst zullen eindgebruikers meer mogelijkheden krijgen om met hun eigen analyses en inzichten te komen.

Hoe Tricentis en het AWS Data Lab in 6 weken tijd tot zakelijke inzichten kwamen

Gezien de uitdaging van Tricentis Analytics met live klanten in 6 weken, werkte Tricentis samen met het AWS Data Lab. Van gedetailleerd ontwerp tot een bètaversie, Tricentis had klanten die verwachtten data te consumeren uit een datameer dat specifiek was voor alleen hun data en alle data die al meer dan tien jaar waren gegenereerd. Klanten hadden ook een eigen repository nodig, een Apache Parquet-datameer, dat zou worden gecombineerd met andere gegevens in de klantomgeving om nog meer inzichten te verzamelen.

Het AWS-accountteam stelde de AWS Data Lab Build Lab-sessie voor om Tricentis te helpen het ontwerp- en bouwproces van hun prototype te versnellen. Het Build Lab is een intensieve build van twee tot vijf dagen door een team van klantbouwers onder begeleiding van een AWS Data Lab Solutions Architect. Tijdens het Build Lab bouwt de klant een prototype in zijn omgeving, met behulp van zijn gegevens, met begeleiding bij real-world architecturale patronen en anti-patronen, evenals strategieën voor het bouwen van effectieve oplossingen, van AWS-service-experts. Met inbegrip van het prelabvoorbereidingswerk is de totale duur van de opdracht 3-6 weken en in het geval van Tricentis 3 weken: twee voor het prelabvoorbereidingswerk en één voor het lab. De weken die volgden op het lab omvatten go-to-market-activiteiten met specifieke klanten, documentatie, verharding, beveiligingsbeoordelingen, prestatietests, testen van gegevensintegriteit en automatiseringsactiviteiten.

De 2 weken voor het lab werden gebruikt voor het volgende:

  • De use case begrijpen en achteruit werken met een architectuur
  • Het Tricentis-team voorbereiden op het lab door alle trainingen te geven over de services die tijdens het lab moeten worden gebruikt

Voor deze oplossing hebben Tricentis en AWS een datapijplijn gebouwd die data verbruikt van streaming, die vóór het lab aanwezig was, en deze streaming heeft de databasetransacties vastgelegd via CDC. In de streaming worden de gegevens van elke tabel gescheiden op onderwerp en komen gegevens van alle klanten op hetzelfde onderwerp (geen isolatie). Daarom is er een pijplijn gemaakt om klanten te scheiden om hun tabellen geïsoleerd te maken door het schema op de eindbestemming bij Amazon Redshift. Het volgende diagram illustreert de oplossingsarchitectuur.

Het belangrijkste idee van deze architectuur is om gebeurtenisgestuurd te zijn met uiteindelijke consistentie. Telkens wanneer nieuwe testcases of testresultaten worden gemaakt of gewijzigd, worden gebeurtenissen geactiveerd zodat de verwerking onmiddellijk plaatsvindt en nieuwe momentopnamebestanden beschikbaar zijn via een API of gegevens worden opgehaald met de vernieuwingsfrequentie van de rapportage- of BI-tool (Business Intelligence). Elke keer de Amazon eenvoudige opslagservice (Amazon S3) sink-connector van Apache Kafka levert een bestand op Amazon S3, Amazon EventBridge triggert een AWS Lambda functie om het multi-tenant-bestand om te zetten in afzonderlijke bestanden, één per klant per tafel, en deze in specifieke mappen op Amazon S3 te plaatsen. Terwijl de bestanden worden gemaakt, wordt een ander proces geactiveerd om de gegevens van elke klant in hun schema of tabel op Amazon Redshift te laden. Op Amazon Redshift werden gematerialiseerde weergaven gebruikt om de query's voor de dashboards gereed te maken en gemakkelijker terug te sturen naar de Apache Superset. Ook zijn de gerealiseerde weergaven geconfigureerd om automatisch te vernieuwen (met de automatisch vernieuwen optie), zodat Amazon Redshift de gegevens automatisch zo snel mogelijk in de gerealiseerde weergaven bijwerkt na wijzigingen in de basistabellen.

In de volgende secties gaan we dieper in op specifieke implementatie-uitdagingen en aanvullende functies die klanten onderweg nodig hebben.

Gegevens exporteren

Zoals eerder vermeld, willen sommige klanten een export van hun testgegevens krijgen en hun datameer creëren. Voor deze klanten biedt Tricentis incrementele gegevens als Apache Parquet-bestanden en heeft het de mogelijkheid om te filteren op specifieke projecten en specifieke datumbereiken. Om de gegevensintegriteit te waarborgen, gebruikt Tricentis zijn technologie die bekend staat als Tosca DI (geen onderdeel van de AWS Data Lab-sessie).

Gegevensbeveiliging

De oplossing maakt gebruik van de volgende vangrails voor gegevensbeveiliging:

  • Vangrails voor gegevensisolatie – Tricentis-brondatabasesystemen worden door alle klanten gebruikt en daarom bevinden gegevens van verschillende klanten zich in dezelfde database. Om klantspecifieke gegevens te isoleren, heeft Tricentis een unieke identifier die klantspecifieke gegevens onderscheidt. Alle query's filteren gegevens op basis van de discriminator om klantspecifieke gegevens te verkrijgen. EventBridge activeert een Lambda-functie om multi-tenant bestanden om te zetten in single-tenant (klant) bestanden om in klantspecifieke S3-mappen terecht te komen. Een andere Lambda-functie wordt geactiveerd om gegevens uit klantspecifieke mappen naar hun specifieke schema in Amazon Redshift te laden. De laatste Lambda-functie is op de hoogte van gegevensisolatie en activeert een waarschuwing en stopt de verdere verwerking van gegevens die niet van een specifieke klant zijn.
  • Vangrails voor gegevenstoegang – Om de toegangscontrole te waarborgen, paste Tricentis toe rolgebaseerde toegangscontrole principes voor gebruikers en serviceaccounts voor specifieke werkgerelateerde bronnen. Toegang tot Amazon Managed Streaming voor Apache Kafka (Amazone MSK), Amazon S3, Amazon relationele databaseservice (Amazon RDS) en Amazon Redshift werd bestuurd door privileges toe te kennen op rolniveau en aan die rollen de juiste middelen toe te wijzen.

Betaal per gebruik en schaalbaarheid van lineaire kosten

Het doel van Tricentis is om te betalen voor de gebruikte rekenkracht en opslag en om de analyse-infrastructuur te laten groeien met lineaire kostenschaalbaarheid. Om de opslagkosten in het gegevensvlak beter te beheren, slaat Tricentis alle onbewerkte en tussentijdse gegevens op in Amazon S3-opslag in een gecomprimeerd formaat. De Amazon MSK en Amazon Redshift hebben de juiste maat voor de belasting van Tricentis Analytics en kunnen op- of afschalen zonder downtime op basis van toekomstige zakelijke behoeften. Gegevens over alle winkels, inclusief Amazon MSK, Amazon Redshift en Amazon S3, zijn onderworpen aan gelaagd opslag- en bewaarbeleid volgens de vereisten voor het bewaren en archiveren van klantgegevens om de kosten verder te verlagen en lineaire kostenschaalbaarheid te bieden.

In het besturingsvlak worden Debezium- en Kafka Connect-bronnen in- en uitgeschakeld, zodat u alleen betaalt voor wat u gebruikt. Lambda-triggers worden geactiveerd op basis van een gebeurtenis of een schema en uitgeschakeld na het voltooien van taken.

Geautomatiseerde gegevensintegriteit

Hoge gegevensintegriteit is een fundamenteel ontwerpprincipe van Tricentis Analytics. Gelukkig heeft Tricentis een product genaamd ToscaDI, dat wordt gebruikt om de meting van gegevensintegriteit over veel verschillende gegevensbronnen te automatiseren. Het belangrijkste idee is om het door de machine gegenereerde gegevenstype en logvolgordenummer (LSN) te gebruiken om de nieuwste momentopnamegegevens van de CDC-stromen (Change Data Capture) weer te geven. Tricentis bereikte de automatiseringsmijlpaal voor gegevensintegriteit buiten het AWS Data Lab-venster door Tosca DI automatisch te activeren in verschillende stadia van de AWS serverloze architectuur (eerder geïllustreerd). verlies of onbedoelde gegevensmanipulatie. In toekomstige versies zal Tricentis veel diepere gegevensintegriteitsverificatierecordtellingen hebben en specifieke velden opnemen om de gegevenskwaliteit (bijvoorbeeld nullness) en semantische of formaatvalidatie te waarborgen. Tot op heden heeft de combinatie van CDC en gegevensopschoning geresulteerd in een ultrahoge gegevensintegriteit bij het vergelijken van brongegevens met de uiteindelijke inhoud van het Parquet-bestand.

Prestaties en preventie van gegevensverlies

De prestaties zijn afgestemd op maximale doorvoer in drie stadia van de pijplijn:

  • Gegevensopname – De gegevensintegriteit tijdens opname is drastisch verbeterd met behulp van CDC-gebeurtenissen en stelde ons in staat om te vertrouwen op de gerespecteerde replicatiemechanismen in PostgreSQL en Kafka, waardoor het systeem werd vereenvoudigd en veel van de eerdere gegevenscorrecties werden geëlimineerd. De Amazon S3-sinkconnector streamt gegevens verder in realtime naar Amazon S3 door gegevens te partitioneren in bestanden met een vaste grootte. Gegevensbestanden met een vaste grootte voorkomen verdere latentie vanwege ongebonden bestandsgroottes. Als gevolg hiervan waren de gegevens van hogere kwaliteit en werden ze veel sneller in realtime gestreamd.
  • Datatransformatie – Batchverwerking is zeer kostenefficiënt en rekenefficiënt, en kan verschillende potentiële prestatieproblemen verminderen, mits op de juiste manier geïmplementeerd. Tricentis gebruikt batchtransformatie om gegevens te verplaatsen van multi-tenant Amazon S3 naar single-tenant Amazon S3 en tussen single-tenant Amazon S3 naar Amazon Redshift door middel van micro-batchloading. De batchverwerking wordt geënsceneerd om te werken binnen de limieten voor Lamba-aanroepen en de maximale limieten voor Amazon Redshift-verbindingen om de kosten minimaal te houden. De transformatiepijplijn kan echter worden geconfigureerd om in realtime te gaan door elk inkomend S3-bestand op een EventBridge-gebeurtenis te verwerken.
  • Vragen over gegevens – Gematerialiseerde weergaven met de juiste sorteersleutels verbeteren de prestaties van herhaalde en voorspelbare dashboardworkloads aanzienlijk. Tricentis-pijplijnen gebruiken dynamisch laden van gegevens in weergaven en vooraf berekende resultaten in gematerialiseerde opvattingen om de prestaties van dashboards naadloos te verbeteren, samen met het instellen van geschikte eenvoudige en samengestelde sorteersleutels om de prestaties te versnellen. De prestaties van Tricentis-query's worden verder versneld door predikaten met een beperkt bereik in sorteersleutels.

Implementatie-uitdagingen

Tricentis werkte binnen de standaardlimiet van 1,000 gelijktijdige Lambda-functieruns door op elk moment de beschikbare functies bij te houden en alleen die vele functies te activeren waarvoor slots beschikbaar zijn. Voor de geheugenlimiet van 10 GB per functie genereerde Tricentis met de juiste grootte van de Amazon S3-sinkconnector bestanden en single-tenant S3-bestanden die niet groter waren dan 4 GB. De beperking van de Lambda-functie kan worden voorkomen door een hogere limiet van gelijktijdige uitvoeringen aan te vragen als dat later nodig is.

Tricentis ondervond ook enkele Amazon Redshift-verbindingsbeperkingen. Amazon Redshift heeft quota's en aanpasbare quota's die het gebruik van serverbronnen beperken. Om Amazon Redshift-limieten van maximale verbindingen effectief te beheren, gebruikte Tricentis verbindingspools om optimaal verbruik en stabiliteit te garanderen.

Resultaten en volgende stappen

De samenwerkingsbenadering tussen Tricentis en het AWS Data Lab zorgde voor een aanzienlijke versnelling en het vermogen om tijdlijnen te halen voor het opzetten van een big data-oplossing waar Tricentis-klanten jarenlang van zullen profiteren. Sinds dit schrijven zijn klantonboarding, waarneembaarheid en waarschuwingen en beveiligingsscans geautomatiseerd als onderdeel van een DevSecOps-pijplijn.

Binnen 6 weken was het team in staat om een ​​data-exportdienst voor een van de klanten van Tricentis te beta-en.

Tricentis verwacht in de toekomst meerdere gegevensbronnen toe te voegen, zich te verenigen in de richting van een gemeenschappelijke, alomtegenwoordige taal voor het testen van gegevens en rijkere inzichten te bieden, zodat onze klanten de juiste gegevens in één overzicht kunnen hebben en het vertrouwen in hun levering van software op schaal en snelheid.

Conclusie

In dit bericht hebben we je door de reis geleid die het Tricentis-team met het AWS Data Lab heeft gemaakt tijdens hun deelname aan een Build Lab-sessie. Tijdens de sessie werkten het Tricentis-team en AWS Data Lab samen om een ​​best passende architectuur voor hun use cases te identificeren en een prototype te implementeren om nieuwe inzichten voor hun klanten te leveren.

Ga naar voor meer informatie over hoe het AWS Data Lab u kan helpen uw ideeën om te zetten in oplossingen AWS-datalab.


Over de auteurs

  Parag Doshi is Vice President of Engineering bij Tricentis, waar hij blijft leiden naar de visie van innovatie met de snelheid van verbeelding. Hij brengt innovatie op de markt door hoogwaardige engineering SaaS van wereldklasse te bouwen, zoals qTest, het belangrijkste testmanagementproduct, en een nieuwe mogelijkheid genaamd Tricentis Analytics, die inzichten in de levenscyclus van softwareontwikkeling ontsluit voor alle soorten testen. Voorafgaand aan Tricentis was Parag de oprichter van Anthem's Cloud Platform Services, waar hij een hybride cloud en DevSecOps-mogelijkheden aandreef en 100 missiekritieke applicaties migreerde. Hij stelde Anthem in staat om een ​​nieuw bedrijf voor het beheer van apotheekvoordelen op te bouwen in AWS, resulterend in een totale operationele winst van $ 800 miljoen voor Anthem in 2020 volgens Forbes en CNBC. Hij bekleedde ook functies bij Hewlett-Packard, waar hij meerdere functies vervulde, waaronder Chief Technologist en hoofd architectuur voor DXC's Virtual Private Cloud, en CTO voor HP's Application Services in de regio Amerika.

Goeroe Havanur fungeert als Principal, Big Data Engineering en Analytics-team in Tricentis. Guru is verantwoordelijk voor gegevens, analyse, ontwikkeling, integratie met andere producten, beveiliging en nalevingsactiviteiten. Hij streeft ernaar samen te werken met andere Tricentis-producten en klanten om het delen van gegevens, de gegevenskwaliteit, de gegevensintegriteit en de naleving van gegevens te verbeteren via het moderne big data-platform. Met meer dan 20 jaar ervaring in datawarehousing, een verscheidenheid aan databases, integratie, architectuur en beheer, streeft hij naar uitmuntendheid.

Simon Guidon is architect bij Tricentis. Hij heeft expertise in grootschalige gedistribueerde systemen en modellen voor databaseconsistentie, en werkt met teams in Tricentis over de hele wereld aan schaalbaarheid en hoge beschikbaarheid. Je kunt zijn Twitter @simongui volgen.

Ricardo Serafim is een Senior AWS Data Lab Solutions Architect. Met een focus op datapijplijnen, datalakes en datawarehouses, helpt Ricardo klanten bij het creëren van een end-to-end-architectuur en het testen van een MVP als onderdeel van hun pad naar productie. Buiten zijn werk houdt Ricardo ervan om met zijn gezin te reizen en naar voetbalwedstrijden te kijken, voornamelijk van de "Timão" Sportclub Corinthians Paulista.

spot_img

Laatste intelligentie

spot_img