16 juni 2009

Pijlers onder (genealogische) websites - deel 1

Dit keer een serie wat meer technisch georiënteerde artikels over belangrijke pijlers onder mijn genealogische websites qua software en services. Een kijkje achter de schermen… over het gebruik van open source en Internet services, gemaakte architectuurkeuzen en maatwerk programmatuur.

  1. Deel 1 - Genealogie Online

image Genealogie Online

Onderstaand figuur geeft de belangrijkste software (linker pijler) en services (rechter pijler) weer waar Genealogie Online op is gebaseerd:image

Software

In de software pijler (van alle in deze serie besproken diensten) kun je de LAMP solution stack herkennen. Het acroniem LAMP staat voor een bundel van gratis/opensource software oplossingen voor dynamische websites:

  • Linux is het gebruikte (open source) operating systeem voor de server, meer specifiek Debian;
  • Apache “serveert” alle dynamisch content, het is de (open source) webserver die bijvoorbeeld in maart 2009 zo’n 9,2 miljoen bevragingen (hits) kreeg (wat zo’n 41 GB aan netwerk verkeer genereert), het “lichtere” Lighttpd wordt gebruikt als webserver voor een deel van de statische (cachable) content als afbeeldingen, CSS stylesheets en Javascript bestanden (voordat het naar Amazon CloudFront gaat, verderop meer info hierover);
  • MySQL is de (relationele, open source) database die alle data van de websites bevat (de productie data van Genealogie Online alleen al is 1,3 GB groot), wat beheerd wordt met de webapplicatie phpMyAdmin;
  • PHP/Perl – de programmeertalen waarmee de applicaties zijn gemaakt, voor Genealogie Online houdt dit bijvoorbeeld in dat op basis van (maatwerk) Perl programmatuur een GEDCOM wordt verwerkt tot (ruim 7 miljoen, maatwerk) PHP pagina’s. Deze architectuurkeuze (generatie i.p.v. dynamisch vanuit GEDCOM of database) heeft grote voordelen qua schaalbaarheid en performance, maar ook nadelen, bijvoorbeeld qua flexibiliteit. Om de PHP pagina’s sneller te maken wordt er eAccelerator gebruikt (als extensie op Apache).

Een software component dat niet onbenoemd mag blijven is Swish-e. Deze open-source applicatie indexeert alle content op Genealogie Online en maakt deze doorzoekbaar. Waarom niet gewoon op Google vertrouwen? Omdat Google veel tijd nodig heeft om de bijna 7 miljoen pagina’s (die ook nog wel eens wijzigen) te indexeren, als de Google-spiders alle content al ophalen (geen garanties!). Alternatief om de websites doorzoeken te maken op (familie)naam heeft als nadeel dat er dan een groot deel van de rijke inhoud (denk aan notities) niet doorzocht wordt.

Componenten

Enkele kleinere software delen, ook wel componenten of widgets genoemd, die noemenswaardig zijn:

Services

Waar software op de server zelf is geïnstalleerd en draait (en onderhouden moet worden), worden services op servers van andere partijen geboden en door Genealogie Online gebruikt.

  • Amazon CloudFront (en het onderliggende Amazon S3) wordt gebruikt als Content Delivery Network. Statische content (de al eerder genoemde afbeeldingen, CSS stylesheets en Javascript bestanden) wordt hiermee “geserveerd” door een andere server en andere netwerkverbinding, wat meer bandbreedte over laat voor de overige dynamische content (ook al is de domeinnaam gewoon img3.coret.org, css3.coret.org en js3.coret.org!). Deze zeer schaalbare service van Amazon is één van de weinige betaalde services die wordt gebruikt;
  • Scribd (iPaper) is een gratis service waar document kunnen worden gepubliceerd. Deze service wordt door Genealogie Online gebruikt om bijvoorbeeld alle stambomen en kwartierstaten in PDF formaat op te “hosten” (zie voorbeeld). Naast een betere user experience is ook dit een manier om bandbreedte te besparen.
  • Google Feedburner wordt gebruikt voor het beschikbaar stellen van de diverse RSS feeds. Ook hier geldt weer, alle RSS readers en browsers halen de web feeds van Google Feedburner en alleen Google Feedburner haalt de web feeds op van Genealogie Online waardoor er dus weer een boel bandbreedte wordt bespaard.
  • Google Analytics is een gratis dienst van Google die geeft inzicht in het bezoek van de website: hoeveel gebruikers, waar komen ze vandaan (land/website), wat doen ze (en hoe lang) en dit alles in inzichtelijke grafieken. Deze informatie kan gebruikt worden om de website te optimaliseren.
    image
  • Google Translate is (wederom) een gratis dienst van Google die realtime webpagina’s vertaalt in andere talen. Op Genealogie Online zorgt deze voor de automatisch vertaling naar Engels.

Eerste indruk

Met dit eerste kijkje achter de schermen heb ik een indruk willen geven van wat een website als Genealogie Online behelst. Een deel van het werk is het maken (en onderhouden) van programmatuur. Maar een belangrijk deel van de software en services is er al, klaar om gebruikt te worden! Hierbij is het merendeel van de software en services ook nog eens gratis! De “investering” zit ‘m (naast hosting en bandbreedte) vooral in het slim “componeren” van eigen/andermans software en services om een mooie & nuttige website voor (in dit geval) stamboomonderzoekers neer te zetten. Veel aandacht gaat er bij goed lopende websites zitten in performance en schaalbaarheid.

Heeft u specifieke vragen over de software of services, plaats deze dan in de reacties bij dit artikel!

In deel 2 van deze serie zal ik ingaan op de pijlers onder het Stamboom Forum en de Stamboom Gids.