Talend-functies ter ondersteuning van Continuous Integration / Continuous Delivery – Een eerste stap naar DevOps

De populariteit van DevOps binnen IT-organisaties neemt almaar toe. Het is een randvoorwaarde geworden voor elk bedrijf dat meedoet in de race om continue (digitale) innovatie. Nieuwe functionaliteit of een nieuw productaanbod moet gisteren op de markt worden gebracht, volgens de vereisten, van hoge kwaliteit, en goed geïntegreerd in het bestaande systeem van applicaties. Zodra het aanbod beschikbaar is, moet het betrouwbaar zijn en gemakkelijk kunnen worden aangepast aan veranderende eisen. Dit zijn niet alleen eisen die het product zelf uitdagen, maar ook het proces dat de systeemverbeteringen levert. De DevOps mentaliteit, tools en praktijken pakken deze uitdagingen aan door een cultuur van continue samenwerking te bevorderen door middel van het automatiseren van de repetitieve en voorspellende taken die betrokken zijn bij het runnen van een stabiele en effectieve DTAP straat.

Waar agile methoden zoals scrum al op grote schaal worden gebruikt, brengt DevOps een verbreding van agile principes met zich mee en vergt het een andere cultuurverandering.  Zoals hierboven beschreven brengt dit ook veranderingen met zich mee in de processen en nieuwe functionaliteit in de tools die deze processen accommoderen. Die verandering gaat niet van de ene op de andere dag, en het advies zou dan ook zijn om klein te beginnen. CI/CD principes kunnen al met handmatige stappen worden uitgevoerd. Daarom beschrijven we in dit deel van de CI/CD serie enkele van de functionaliteiten die Talend daarvoor in zijn laatste releases heeft opgenomen.

Artifact Repository

With direct support for Nexus Artifact Repository, it is possible to store stable job versions and move them through the different stages of the DTAP street. Why is this important? When scheduling the job execution directly from your source code repository, you might end up with untested functionality being deployed. In source control, frequent changes occur during development work. In case the Talend Administration Center (TAC) decides to re-compile a job, you could up with untested functionality being deployed. Stable job versions in addition to strict environment separation prevents this from happening. In addition to that, the use of self-containing jobs provides the portability required for purposes like testing, quality assurance and user-acceptance testing.

Goed geïntegreerde Git-functionaliteit

Git, als alternatief voor SVN, is geen voorwaarde voor CI, maar het biedt verschillende voordelen die samengaan met de verschillende workflows. Bijvoorbeeld, een ontwikkelaar kan een (feature) branch uitchecken, waardoor hij aan een geïsoleerd stuk code kan werken dat later weer samengevoegd kan worden in de hoofd code basis. De samenvoeging zal alleen plaatsvinden nadat hij een samenvoeg verzoek heeft gestart voor een andere ontwikkelaar om zijn werk te inspecteren. Die ontwikkelaar kan dan overschakelen naar de tak van de andere ontwikkelaar om de wijzigingen te evalueren, en het samenvoeg verzoek goed te keuren. Dit type van werkstroom bevordert het werken aan kleine batches werk, samenwerking en snelle feedback.

talend git create new branch

In het geval dat een ontwikkelaar een code wijziging samenvoegt die ook door een andere ontwikkelaar is aangeraakt, laten we zeggen een veranderde context parameter, ontstaat er een samenvoeg conflict. Voor dergelijke situaties heeft Talend een Conflicts Navigator ingebouwd. Deze navigator toont de conflicten tussen de jobs, laat toe om de jobs naast elkaar te zien, zowel visueel als op basis van code, en biedt de mogelijkheid om de conflicterende items te accepteren of te negeren.

Talend GIT conflict resolution

Een geïntegreerd commit geschiedenis venster maakt het mogelijk om de verschillende wijzigingen van de specifieke branch of tag waar een ontwikkelaar aan werkt te bekijken en hun details te bekijken. Al deze functionaliteiten, behalve het samenvoeg verzoek, zijn direct toegankelijk via de studio, zodat een ontwikkelaar niet van interface hoeft te wisselen. Een ander groot voordeel van het werken met git, ondanks dat het aan het eind genoemd wordt, is dat de interactie met de gedeelde code base een stuk sneller zal blijken te zijn door de gedecentraliseerde opslag van project broncode.

Talend GIT commit history

Test cases

Door middel van tests probeert men problemen vroeg tijdens of na de ontwikkeling op te sporen, terwijl de stappen die zijn ondernomen om een verandering in te voeren nog vers in het geheugen liggen. Dit vermindert de herstelkosten in latere stadia. Voor een ontwikkelaar om de werking van een of meer onderdelen van een job te controleren, biedt Talend de functionaliteit om direct vanuit de Studio testgevallen aan te maken. Deze testgevallen kunnen worden beschouwd als unit tests omdat ze het systeem testen op het meest granulaire niveau, op component niveau.Om een component te testen die een dataflow afhandelt, kan men eenvoudig met de rechtermuisknop op de component(en) klikken en een testgeval aanmaken vanuit het context menu. Verschillende scenario’s kunnen worden opgenomen door het definiëren van verschillende test instanties voor een set van componenten. De scenario’s onderscheiden zich dan door de te verwerken invoergegevens en de definitie van de verwachte outputs. De vergelijking van de werkelijke gegevens met deze verwachte outputs vormen onze testasserties. Een ontwikkelaar kan deze testen natuurlijk via de studio uitvoeren, maar ze kunnen ook via de TAC worden gepland om uit te voeren.

Talend Unit Test

Deze nieuwe functionaliteiten zorgen ervoor dat een Talend ontwikkelteam hun werk vaker en met meer vertrouwen kan integreren en de samenwerking en zichtbaarheid van hun werk verbeteren. In andere delen van de serie schijnen we wat licht op het automatiseren van stappen in het leveringsproces en hoe (integratie) test uitvoering kan worden geautomatiseerd.

Contacteer ons voor een gratis demo of meer informatie

Geïnteresseerd in meer informatie? Neem nu contact met ons op of neem een kijkje bij onze komende evenementen om ons persoonlijk te ontmoeten!