2016 – editie 1

Pipeline as code

Continuous Delivery pipelines met Jenkins 2 In de afgelopen 10 jaar heeft Jenkins zich ontpopt tot de standaard tool voor automatisering in software development. Dit jaar is de eerste grote Jenkins release sinds tijden uitgekomen: Jenkins 2.0. In dit artikel lees je wat er nieuw is. Op JavaOne vertelde Kohsuke Kawaguchi, de maker van Jenkins, dat er meer dan 120.000 …

Read More »

Spring Cloud Stream

In Java Magazine 4 hebben we kennisgemaakt met Spring Cloud en hebben we kunnen lezen hoe je de verschillende componenten kunt inzetten om REST gebaseerde microservices te maken. In dit artikel maken we de stap naar Spring Cloud Stream. Spring Cloud Stream laat zich het beste omschrijven als een framework voor het creëren van message-driven microservices.

Read More »

Custom Metrics in de praktijk

Metrieken over applicaties worden steeds belangrijker. Harde getallen, zoals gebruikersaantallen, responstijden of conversieratio’s, kunnen een goede, objectieve graadmeter zijn voor succes en het bewijs dat de applicatie de investering waard is. Daarnaast is het belangrijk, in de sneller veranderende wereld van continuous delivery en agile ontwikkeling, om vlotte feedback loops te hebben hoe de applicatie het in productie doet. Alleen de “standaard” metrieken, zoals cpu gebruik of aantallen http requests, zijn niet goed genoeg. We hebben behoefte aan onze eigen custom metrics.

Read More »

Robot Framework

Het automatiseren van testen binnen een continuous integration proces is niet meer weg te denken. Binnen ons DevOps-team zijn we op zoek geweest naar een passende oplossing voor testautomatisering. Een oplossing in de vorm van een tool of framework waar ons volledige DevOps-team mee overweg kan. Ieder teamlid moet namelijk in staat zijn tot het aanpassen en uitbreiden van de testen. Daarnaast willen we de testen voor alle door ons te ontwikkelen interfaces en back-end componenten, binnen een enkel framework, kunnen automatiseren. Om aan deze eis te kunnen voldoen, gingen we op zoek naar een framework dat naast het automatiseren van web browsers, REST, SOAP en Unix, ook met databases overweg kan.

Read More »

Failsafe

Eén van de vier punten uit het Reactive Manifesto is dat software resilient moet zijn. Resilient betekent dat onze software adequaat omgaat met foutsituaties en responsive blijft. Een praktisch en veel voorkomend voorbeeld is een applicatie die gebruik maakt van externe services. In dit scenario is het denkbaar dat deze externe services niet meer beschikbaar zijn of onvoldoende presteren.Zonder maatregelen kan het heel lang duren alvorens dit probleem zichtbaar wordt. Deze traagheid kan er bijvoorbeeld toe leiden dat kostbare resources lange tijd worden gereserveerd, wat kan leiden tot starvation en performance degradatie van de hele applicatie. Niet voor niks stelt dus het Reactive Manifesto dat een applicatie resilient moet zijn. Failsafe (https://github.com/jhalterman/failsafe) is een kleine library die precies doet wat het moet doen; het toevoegen van resilience aan onze applicatie zonder veel poespas. Failsafe biedt opties voor het opnieuw proberen aan te roepen van een service die kan stoppen met werken. We kunnen ook een fallback gebruiken in het geval dat een service die we aanroepen niet meer beschikbaar is. De library biedt ook de mogelijkheid om een zogenaamde circuit breaker te gebruiken om aanroepen naar services te omzeilen. We kunnen Failsafe gebruiken met Java 6 of hoger. Maar in Java 8 kunnen we lambda’s gebruiken in de Failsafe API voor nette en goed leesbare code.

Read More »

Advanced Akka

Wellicht heb je al eens wat over Akka gehoord of gelezen. Misschien zelfs in een van de voorgaande Java Magazine artikelen over Akka die je inmiddels ook op de NLJUG website terug kunt vinden (links staan onderaan). Deze artikelen lieten al goed zien wat er mogelijk is met Akka, maar in dit artikel behandel ik nog een aantal andere interessante features.

Read More »