Stödtjänster jag övervägt för en webbaserad tjänst
Givet scenariot att jag driftade en webbaserad tjänst eller applikation, vilka stödtjänster skulle jag ha på plats utöver applikationen självt? Det här blogginlägget försöker svara på det. Inga länkar, bara korta anteckningar.
Premisser och styrande faktorer:
- Gärna SSO-inlogg.
- Möjligt att drifta i container eller på VPS.
- Öppen källkod, helst inte GPL.
- Lättviktigt hellre än många features.
Kodförråd
Jag vill ha källkoden sparad på ett ställe. Till detta önskar jag två saker: en lättare samarbetsyta (tickets, pull requests, release-hantering) samt DevOps-actions för att t ex bygga en release som container/tarball eller köra automatiserade tester.
- Forgejo
SSO
Jag vill ha möjlighet att snabbt logga in i alla (stöd-)system med ett och samma inlogg, med Open ID Connect.
- PocketID
Levande buggdatabas
Jag vill samla körfel och undantag synligt på ett ställe, så att en buggdatabas automatiskt skapas.
- Sentry
- GlitchTip (kompatibel med Sentry SDK, mer lättviktig)
Observabilitet
Jag vill kunna observera tjänsten. Hur hög last servrarna, nätverket och applikationer har (metrics), kunna aggregera och slå samman applikationsloggar (logs) och enklare nedbrytning av applikationens delar för att se om det finns uppenbara flaskhalsar (traces).
- Grafana
- Mimir
- Loki
- Tempo
Övervakning och larm
Jag vill övervaka tjänsten och sätta upp kriterier för när tjänstens delar inte mår bra, och larma när kriterierna inte uppfylls. Detta är nog det första jag skulle överväga att inte hosta själv.
- Zabbix
- Nagios
Användar- och beteendeanalys
Jag vill analysera pågående webbtrafik och se hur användarna rör sig i användargränssnittet. Exempel: se vilka delar av tjänsten som är mest populära, se vilka steg i en flerstegsprocess flest fastnar på.
- Plausible
- Matomo
IT service management (ITSM)
Jag vill ha historik och spårbarhet på saker som görs i produktion över tid, både för tjänsten i sig men också på de stödtjänster som nämns här. Alla ändringar och incidenter, planerade såväl som spontana, ska ha tickets - med information och logg.
- GLPI
- osTicket
- Zammad
- FreeITSM
Kort om hårdvaran
Detta är en ganska tung och omfattande samling tjänster. Jag hade övervägt att köra dessa i ett eget Kubernetes-kluster, eller i ett gäng Podman-pods eller Docker compose. Gärna på 1-3 servrar. Frikostligt med RAM, och all disk på separata volymer.
Jag hade övervägt att köra Debian eller Fedora Server. Eventuellt OpenSUSE Leap, Ubuntu server eller FreeBSD.
Databackup hade varit ett måste, för åtminstone 30-60 dygn.
Andra stödtjänster
Utöver ovanstående hade jag även övervägt följande tjänster som stöd för utveckling.
- Sandboxade mail, t ex Mailpit
- En dedikerad wiki, t ex MediaWiki eller BookStack
- En dedikerad CI, t ex Crow