Copy
Bergler Software Solutions introduceert haar maandelijks ‘Developers-blog’, bestemd voor IT-managers, leidinggevenden, software-ontwikkelaars etc. Bekijk onze meest recente publicaties!

Gebruik van ‘worker roles’ in Azure


Als je weleens gebruik maakt van worker roles in Azure dan weet je dat het nogal een hoofdpijn geeft om die dingen te deployen. Een deployment tijd van 10 tot 20 minuten is niet ongewoon en in een wereld van continuous delivery en snelle feedback cycles is dat niet bepaald optimaal te noemen. Welke opties geeft Azure nog meer om dit probleem op te lossen?


 

Web App
Als je webapplicaties wilt ontwikkelen voor de Cloud zou ik adviseren om altijd voor een web app oplossing te gaan tenzij er een dwingende reden is dat er een web role nodig zou zijn (en virtuele machines alleen te gebruiken als het echt niet anders kan). Op die manier heb je de beste mogelijkheden voor ontwikkeling, deployment en debugging van je applicatie.

Web Job
Met de komst van de web jobs is er een goede mogelijkheid om ook achtergrond processen uit te voeren op Azure zonder dat je een worker role gebruikt. Wanneer je een taak hebt die kan draaien op het Azure websites platform (dus zonder registry, Com+, GDI, custom software etc) en niet al te intensief gebruik maakt van de CPU of het geheugen dan is de web job de ideale oplossing.

Worker roles
Wanneer je een achtergrond taak hebt die intensief is of niet wordt ondersteund door het Azure websites platform (en dus ook niet als web job kan draaien) dan is het tijd om te kijken naar worker roles. Ben je bewust dat een worker role meer te vergelijken is met een stuk infrastructuur als met een stuk software, zeker qua deployment. Wanneer je cloud services gebruikt als schaalbare en stateless onderdelen van je infrastructuur zul je weinig deployments van de rol zelf uitvoeren.


» Lees het hele artikel

Inversion of control


Wanneer je object georiënteerde “loosly coupled” software wil opzetten, loop je al vrij snel tegen de uitdaging aan dat objecten elkaar nodig hebben. Er zijn allerhande design best practices om met deze afhankelijkheden om te gaan en in het kader van deze post wil ik je meenemen in de mogelijkheden van Inversion of Control (IOC) frameworks.

Een IOC-framework neemt de verantwoordelijkheid voor het aanmaken van objecten en het managen van de lifecycle van deze objecten over van de applicatie. Stel bijvoorbeeld dat je een proces voor het inlezen, verwerken en versturen van tekstbestanden wilt automatiseren. Dan zou je onderstaande code mogelijk terugzien in de software:

De instantiering van de importer, de processor en de writer staan hier hard in de code. Zou je dit vervangen door een IOC-framework dan zou er misschien zoiets staan:

Op het oog misschien niet zo’n spectaculaire verbetering, maar toch zijn er grote voordelen behaald!


» Lees het hele artikel

Arjen Kraak, Scrum Master Bergler Software Solutions

 
Samen met een aantal collega’s van Bergler Software Solutions, bouwen we een nieuwe website voor een klant actief in de reisbranche. In dit team vervul ik de rol van “Scrum Master +”. Dit is mij op het lijf geschreven, dagelijks intensief contact met de Product Owner terwijl ook technisch inhoudelijke vraagstukken op mijn backlog staan.

Ik help de Product Owner de ruwe requirements “SMART” te krijgen zodat het team ermee aan de slag kan. Het helpt mij dat ik ook technisch uit de voeten kan en daarom kan inspelen welke informatie de ontwikkelaars nodig hebben. Toen ik de opdracht startte, trof ik een oplossing aan waarbij geen keuze’s waren gemaakt op basis van SOLID principes. Om het team snel productief te krijgen heb ik de oplossing opgesplitst in deeloplossingen zodat elk onderdeel een heldere verantwoordelijkheid kreeg.

Het applicatie landschap waarin wordt gewerkt bevat veel afhankelijkheden. Zo bestaan er afhankelijkheden naar een WCF-service en een Web API-interface. Aangezien de website eigenschappen heeft van een webshop, moet er ook functionaliteit worden geboden voor het betalen van reizen.

De realisatie is op dit moment (maart 2016) in volle gang. Dagelijks worden er opleveringen gedaan en worden de eerste stappen gezet naar een “DevOps” operatie. Het team heeft een velocity die langzaam maar gestaag toeneemt. Hoewel er nog veel werk moet worden verzet, ziet de eindklant verbeteringen op het gebied van gebruikerservaring en performance.

Arjen Kraak

Ik start vanuit de "waarom?" vraag om duurzame software oplossingen te realiseren voor mijn klanten. Ik zoek hierbij de verbinding met de business en zorg ervoor dat wensen en eisen door business en IT worden begrepen en afgestemd. Mijn opdrachtgevers help ik graag bij het opstellen van de probleemstelling. 
Ik krijg energie wanneer ik deze probleemstelling uiteindelijk kan vertalen naar een ontwerp en realisatie van de oplossing met een team van ontwikkelaars. Software architectuur en ontwikkeling zijn mijn passie, die ik graag deel met collega's.
Copyright © 2016 Bergler Nederland BV, Alle rechten voorbehouden.


Klik hier om u af te melden voor onze nieuwsbrief