Expressen öppen källkod

På Expressen använder vi oss av en flora av öppen källkods-projekt, exempelvis ElasticSearch, Node.JS och Redis. Därför, och för att vi kommit fram till att det är det mest effektiva sättet att dela kod mellan våra olika utvecklingsteam, har vi valt att släppa en del generella moduler som vi själva utvecklar som öppen källkod. Dessa finns tillgängliga på Expressens GitHub-profil och beskrivs även kortfattat nedan.

asynccache

En pluggbar asynkron cache för Node.JS.

npm install exp-asynccache

amqp-connection

En modul som gör det enkelt att publicera/konsumera meddelanden från RabbitMQ och andra AMQP-servrar.

npm install exp-amqp-connection

cachebuster

En modul för cachehantering för statiska filer speciellt utformad för att hantera driftmiljöer med flera servrar.

npm install exp-cachebuster

exp-config

En modul för konfigurationshantering i Node.JS-applikationer. Modulen stödjer inläsning av olika konfigurationsfiler för olika miljöer samt överridning av specifika värden med hjälp av .env-filer samt miljövariabler.

npm install exp-config

fake-amqp

En modul för att stubba ut AMQP (Advanced Message Queuing Protocol) i tester i Node.JS-projekt. Då vi använder oss mycket av RabbitMQ använder vi denna modul för att testa kod som publicerar och/eller lyssnar efter meddelanden på köer som i produktion hanteras av RabbitMQ.

npm install exp-fake-amqp

leader-election

En modul för att kunna köra flera instanser av en applikation men säkerställa att jobb enbart körs av en instans i taget. Bygger på att man använder Consul för orkestrering.

npm install exp-leader-election

fetch

En modul för att hämta och cachea HTTP-resurser

npm install exp-fetch

frame-bridge

Frame Bridge förenklar kommunikation mellan en webbsida och en iframe på en annan domän. Definiera ett "API" på respektive sida och anropa funktioner i detta. Returvärden och callbacks hanteras m.h.a. promises. Bryggan använder post message "under huven".

bower install frame-bridge

bigip_exporter

Prometheus exporter för BIG-IP statistik. Använder F5's iControl REST API.

Releases: https://github.com/ExpressenAB/bigip_exporter/releases

cloudmonitor_exporter

Prometheus exporter för Akamai Cloudmonitor statistik.

Releases: https://github.com/ExpressenAB/cloudmonitor_exporter/releases

egresstrator

Skapa iptables regler i container network namespaces.

Releases: https://github.com/ExpressenAB/egresstrator/releases