Continuous delivery naar de cloud met AppHarbor

 
10 oktober 2013

Zoals de meeste developers maak ik vaak kleine testprojecten om een nieuwe technologie, een nieuw framework of iets anders uit te proberen. Vaak in de vorm van een simpele website, zoals de signalr test uit de vorige nieuwsbrief, of een simpele webservice, bijvoorbeeld een REST service om met een mobiele applicatie tegenaan te praten. Deze testprojecten wil ik eenvoudig online hebben draaien zonder een eigen serverpark te hoeven beheren en omdat het zeer kort-cyclische experimenten zijn wil ik snel en vaak uitrollen. Continuous delivery naar de cloud in het klein dus! Als je je richt op het .Net platform dan is AppHarbor een ideaal platform om hier snel en eenvoudig mee aan de slag te gaan.

Een overview van AppHarbor

AppHarbor draait op de cloud infrastructuur van Amazon en bestaat uit een aantal onderdelen.

  1. PAAS Platform
    AppHarbor is een PAAS oplossing (http://en.wikipedia.org/wiki/Platform_as_a_service) waar ASP.Net websites op gedraaid kunnen worden. In de meest simpele variant is dit een gratis dienst waarbij je ASP.Net websites kunt draaien met beperkte processing capaciteit onder een AppHarbor url. Wil je meer processing kracht, meerdere workers, eigen url’s, eigen SSL certificaten of gebruik maken van background workers (voor achtergrond taken) dan kom je in de betaalde varianten.
  2. Build infrastructuur
    AppHarbor heeft een build infrastructuur om je sourcecode uit te checken, te compileren, je unittests te draaien en je applicatie uit te rollen. De infrastructuur werkt volgens een aantal conventies. Als AppHarbor een versie heeft uitgecheckt dan gaat hij opzoek naar een solution file en buildt deze. Binnen de solution gaat hij opzoek naar projecten met referenties naar een testframework en runt hiervoor de unittests. Als dat succesvol is zoekt AppHarbor binnen de solution een webproject en rolt deze ui. AppHarbor ondersteund verschillende unit test frameworks en koppelt eenvoudig met versiebeheersystemen als GitHub, bitbucket en codeplex.
  3. Add-on ecosysteem
    AppHarbor heeft een add-on ecosysteem van verschillende online services die je kunt gebruiken vanuit je applicatie, bijvoorbeeld een database, aangeboden als service en eenvoudig te integreren met je applicatie.

Hoe werkt dat in de praktijk

In het kort: Je maakt een website in Visual Studio (1). Als je een werkende/gewijzigde versie hebt push je die versie naar GitHub (2). Dit triggert (3) AppHarbor die de laatste versie uit GitHub haalt, de solution buildt en eventuele unittests draait (4). Als de build en de unittests succesvol zijn wordt deze versie uitgerold (5) en is je website beschikbaar voor gebruik (6). En bij het ontwikkelen kun je gebruik maken van de add-ons die het platform biedt (7).

picture 1

Build status en deployment

Op de website van AppHarbor kun je een goed overzicht krijgen van de build- en deploystatus van je systeem. Je ziet een overzicht van alle builds die er gedraaid hebben met daarbij details zoals de commit die het getriggerd heeft, het tijdstip van de build, of deze succesvol was en wanneer een versie uitgerold is.

build status

Van hieruit kun je de details in. je kunt bijvoorbeeld de geslaagde en gefaalde unittests in detail bekijken of de gedetailleerde log van het build proces bekijken. Verder kun je vanuit het overzicht een specifieke versie uitrollen. Zo kun je gemakkelijk naar een eerdere versie terug als de laatst uitgerolde versie niet helemaal naar wens werkt.

De add-ons

Zoals al vermeld komt AppHarbor met een compleet ecosysteem van add-ons (https://appharbor.com/addons). Hiermee kun je eenvoudig gebruik maken van verschillende online service. Dit maakt het uitproberen van zo’n service een stuk laagdrempeliger. Er is bijvoorbeeld een ‘Hosted Graphite’ service waarmee je eenvoudig gebruik kunt maken van graphite (timebased grafieken, erg hip: http://bit.ly/19rEB9Z) zonder dat je speciaal hiervoor een linux machine hoeft te installeren en jezelf door de installatie hoeft te worstelen http://bit.ly/GGDKpY.

En er zijn nog veel meer services waarvan je wellicht het bestaan nog niet wist maar die zeker wel de moeite waard zijn. Bijvoorbeeld RavenDB, Elasticsearch, Redis, loader.io, mailgun en logentries. Het ontdekken van ‘nieuwe’ services en deze eenvoudig kunnen uitproberen alleen al is een goede reden om met AppHarbor aan de slag te gaan.

Wat nog meer en aanmelden maar

Eenvoudig je website online, continuous deployment, grip op je build proces, experimenteren met nieuwe tools en dat allemaal op een zeer gebruikersvriendelijke manier maakt AppHarbor een genot om mee te werken. Vooralsnog is het primair op .Net gericht maar er loopt al een beta om node.js te draaien. Om een eventuele laatste drempel weg te nemen volgt hier een 10 stappenplan om je eerste applicatie in AppHarbor te krijgen. Beknopt weergegeven, maar het is ook heel simpel. Heb je nog vragen, kijk dan op https://appharbor.com/page/support of mail mij.

stappenplan

[[ In de interne nieuwsbrief van Sogyo schrijf ik, onder de titel ‘gave technologie’, over technologiën waar ik enthousiast over ben en waarvan ik vind dat iedere collega op zijn minst moet weten dat het bestaat.
Dit artikel komt uit de Sogyo Nieuwsbrief van oktober 2013 ]]


Werken met ?
Kijk dan bij onze mogelijkheden voor zowel starters als ervaren engineers.


Categorieën: Development, Deployment, .Net, Gave Technologie

Tags: , , ,