«Sans serveur» signifie simplement que vous disposez de microservices relativement simples, généralement juste une petite webapp ou une seule fonction qui est automatiquement connectée à une interface REST. Les mêmes concepts s'appliquent que ceux que vous utiliseriez pour des services Web plus traditionnels: généralement un mélange d'écrivains syslog distants et ElasticSearch.
Le syslog en réseau ou distant existe depuis longtemps et dispose d'un ensemble d'outils assez robuste. Vous devrez exécuter le (s) serveur (s) central (s) syslog mais le protocole est très simple et il existe des bibliothèques clientes pures dans toutes les langues que vous pouvez utiliser pour envoyer des journaux. Un problème commun avec le syslog distant est qu'il est traditionnellement basé sur UDP. Cela signifie qu'en cas de forte charge, certains messages de journal peuvent être perdus. Cela pourrait être une bonne chose, aider à éviter une surcharge en cascade, mais c'est quelque chose dont il faut être conscient. Certains démons syslog plus récents prennent également en charge un protocole basé sur TCP, mais la prise en charge du client est moins unifiée, alors faites vos recherches.
La connexion à ElasticSearch est plus récente mais très populaire. Ceci est principalement utile en raison du tableau de bord Kibana et de Logstash taklit (souvent appelé ELK, ElasticSearch + Logstash + Kibana). Amazon propose même une option ElasticSearch hébergée, ce qui facilite un peu le démarrage. ES utilise une API REST relativement simple, donc toute langue avec un client HTTP (lire: tous) devrait être d'accord avec la connexion à ES mais assurez-vous de faire attention au blocage des opérations réseau en cas de pannes partielles du système (c.-à-d. Assurez-vous que votre l'application ne restera pas bloquée dans un appel de journalisation qui ne réussira jamais et cessera de répondre aux demandes des utilisateurs).
Les topologies de journalisation plus complexes ne sont limitées que par votre imagination, bien que ces jours-ci, vous verrez une grande utilisation de la base de données / file d'attente / de ce que vous voulez appeler comme un point de connexion dans des systèmes de distribution de journaux très complexes. .
Du côté "sans serveur", vous souhaiterez généralement intégrer ces systèmes directement au niveau du réseau, donc envoyer des données de journal directement à syslog ou ES à partir de votre service / fonction, plutôt que d'écrire dans des fichiers locaux (bien que cela puisse faire écho à ceux-ci également pour le débogage local et le développement).