Bij islive.com BV zijn wij gespecialiseerd in verschillende technologieën. Wij geloven erin dat iedere uitdaging een gepast antwoord heeft, wat ook valt terug te zien in onze architectuur. Hieronder staat kort een omschrijving over de technieken die wij het meest gebruiken.
Omdat wij high traffic applicaties onderhouden en tienduizenden websites in ons beheer hebben is het van cruciaal belang dat alles, zelfs onder druk, naar behoren blijft draaien. Wij zetten hiervoor meerdere technologieën aan het werk.
Varnish is een reversed proxy, resource cache, load balancer en nog veel meer. Het ligt eraan wat jij ermee doet. Doordat het een eigen configuratie taal heeft welke compiled wordt naar C is het zeer makkelijk uit te breiden, aan te passen en draait het ook lekker performant.
Wij gebruiken varnish in een pool achter een load balancer om zo ervoor te zorgen dat alle requests snel beantwoord kunnen worden en de diensten dus soepel blijven werken.
Keepalived is een stukje routing software dat is geschreven in C. Het regelt loadbalancing door gebruik te maken van low-level protocol interacties (lees, VRRP) en de Linux Virtual Server (IPVS) kernel module. Het biedt layer 4 (laag 4, de transport laag) balancing en herschrijft packets naar andere addressen om zo zonder (observeerbare) overhead loadbalancing te realiseren.
De producten van islive.com BV zijn stuk voor stuk communicatie platforms. Communicatie hoort soepel te verlopen, maar ook live te zijn en met een zo klein mogelijke latency.
Wij willen real-time communicatie, maar helaas is PHP wat langzaam en hier eigenlijk niet voor geschikt (natuurlijk kunnen we reactPHP gebruiken, maar dat is niet hetzelfde).
Wij gebruiken daarom node.js waar het nodig is. Communciatie systemen, event systemen en dergelijken. Omdat node.js gewoon kan blijven draaien en goede performance biedt is dit voor ons de way to go. Door de async I/O kunnen we ook meer bereiken, in minder tijd.
Als het op real-time aankomt, ben je er met enkel een Node.js server nog niet. Je hebt ook een communicatie systeem nodig dat de gebruiker koppelt aan de server. Wij gebruiken hier socket.io voor. Met socket.io maak je gebruik van websockets en val je terug op xhr polling voor oudere browsers. Dit stelt ons ertoe in staat om zonder de overhead die bij HTTP requests komt kijken te communiceren met de server. Combineer dit met de altijd draaiende node.js backend (dus geen bootstrapping nodig voor een request), werk op basis van EventEmitter en je hebt een real-time applicatie.
Wij werken veel met open-source code en contributen hier ook aan waar mogelijk en nodig. Ook werken wij zelf op github.
PHP speelt een grote rol binnen onze organisatie. Wij werken voornamelijk met:
- Composer
- Zend Framework 2
- Doctrine 2
- AssetManager
- SxMail
Voor node.js gebruiken wij NPM (node package manager) en een heleboel modules. Een opsomming van een aantal modules en frameworks:
- Sails.js
- Waterline
- Socket.io
- Grunt
- bower (asset management)
De frontend is tegenwoordig net zo belangrijk als de backend. Met die reden hebben wij ook zorgvuldig onze opzet gekozen om zo te zorgen voor een optimale stack. Om snel te kunnen schakelen. Een greep uit onze collectie is:
- require.js (AMD)
- Almond (require.js optimized file)
- Bootstrap 3
- Zepto
Dit is slechts een samenvatting van een aantal technieken waar wij gebruik van maken, maar in de realiteit is er veel meer en verandert dit ook regelmatig. Bij naam, hebben we onder anderen nog:
- Memcache
- Redis
- MySQL
- PostgreSQL
- Mongo
- Zend optimizer+
- Bash
- Mobile
- Nginx
- Apache
- Ubuntu
- nginx-rtmp-module
- VDC
- Meer.
Heb jij tips, opmerkingen of wil je ons team versterken? Klik dan hier.