Techniek

Het ontwikkelproces – een kijkje onder de moterkap

Binnen OrangeValley werken we met verschillende omgevingen en systemen om de kwaliteit van de website steeds te verbeteren. In dit blogbericht willen we kort toelichten welke systemen we zoal gebruiken om de diverse websites steeds in perfecte conditie te brengen en te houden.

Vooraf

Bij OrangeValley maken we gebruik van een OTAP straat. Dit is een bepaalde workflow die er voor zorgt dat we op een efficiente manier, gelijktijdig aan projecten kunnen werken, zonder dat we elkaars werk in de weg zitten. OTAP staat voor Ontwikkel, Test, Acceptatie en Productie. Het is met een OTAP straat eenvoudige geworden om met meerdere developers aan een project te werken. Iedere ontwikkelaar heeft een eigen ontwikkelomgeving om een bijdrage aan de website te leveren. Middels het versiebeheersysteem wordt de code van alle developers samengevoegd tot een product wat getest wordt op de testomgeving. Waar in het verleden nog wel eens stukken code van een andere developer per ongeluk werden overschreven, kunnen we nu exact zien wie welk stuk code heeft geschreven. Tevens zorgt de OTAP straat ervoor dat we duidelijke tussenversie van een product hebben, waardoor we bij eventuele problemen ook eenvoudig kunnen terugschakelen naar een vorige versie.

Voor elk van deze fasen is een aparte omgeving waarin gewerkt kan worden.

De ontwikkelomgeving

Elke ontwikkelaar heeft de beschikking over een eigen computer waar onder andere de volgende software op draait:

  • Editor
  • Webserver met PHP
  • MySQL database
  • Subversion client

De editor gebruiken we om code te schrijven. Sommige ontwikkelaars geven de voorkeur aan een IDE (Integrated Development Environment) zoals Zend Studio, anderen houden van een eenvoudige editor, zoals Textmate. Hierin wordt iedereen vrij gelaten. Wat we wel hebben afgesproken is hoe de code in elkaar dient te zitten. De webserver & database stellen de developer in staat om een website of applicatie te bekijken op de eigen laptop, zonder deze eerst te hoeven installeren op een webserver. De Subversion client is van belang om de wijzigingen in code te versturen naar de versiebeheer server en om de door andere developers gemaakte wijzigingen op te halen.

Dankzij het versiebeheersysteem kunnen we gelijktijdig in de code werken en worden eventuele conflicten snel gesignaleerd en opgelost.

De testomgeving

Testen doen we in de Testomgeving. De testomgeving is ingericht op een aparte server zoals de uiteindelijke productieomgeving, echter zijn er meer tools beschikbaar voor foutzoeken. In deze omgeving mag de ontwikkelaar ook nog kleine wijzigingen aan de code maken, totdat alles naar behoren functioneert. De gemaakte wijzigingen gaan via het versiebeheersysteem weer terug naar de ontwikkelomgeving.

De acceptatie-omgeving

Zoals de naam al doet vermoeden, is dit de omgeving waar de klant het product mag testen en beoordelen. Deze is qua configuratie identiek aan de productieomgeving. Zodra alles in orde is bevonden, accepteert de klant en zal een livegang worden voorbereid. Er worden nooit wijzigingen in de code op de acceptatieomgeving gemaakt. De acceptatieomegving kan tevens door de klant worden gebruikt om de content voor de nieuwe website voor te bereiden. In sommige situaties zijn de test- en acceptatieomgeving samengevoegd.

De productie-omgeving

Tenslotte is er de productie-omgeving. Dit is de uiteindelijke webserver waar een website op komt te draaien. Via het versiebeheersysteem wordt een geaccepteerde versie van de code geplaatst. De productieomgeving wordt ook regelmatig gebackupped en is veelal redundant uitgevoerd.