MFormations
Modern Backend Engineering

Chapitre 20

20 - Ressources

20 - Ressources

Chapitre 20 : Ressources pour l'Ingénieur Backend

Introduction

Ce chapitre compile les meilleures ressources pour un ingénieur backend moderne : outils, lectures, conférences, et communautés pour rester à jour dans un domaine en constante évolution.


1. Outils Essentiels

1.1 Développement et Test d'API

Postman

  • Type : Client API / Plateforme collaborative
  • Usage : Tester, documenter et monitorer des API REST/GraphQL
  • Fonctionnalités clés : Collections, environnements, tests automatisés, documentation intégrée, mock servers, monitors
  • Alternative : Insomnia, Bruno, Hoppscotch

Bruno

  • Type : Client API open-source
  • Usage : Alternative à Postman avec stockage local des collections
  • Avantage : Pas de compte requis, Git-friendly (collections en fichiers)

k6 (Grafana)

  • Type : Outil de test de charge
  • Usage : Test de performance et stress testing
  • Caractéristiques : Scriptable en JavaScript, métriques intégrées, intégration Grafana
  • Commandes de base :
    k6 run --vus 10 --duration 30s script.js
    k6 run --vus 100 --duration 120s --summary-export=report.json script.js
    

Swagger / OpenAPI

  • Type : Spécification d'API
  • Usage : Design-first API development, documentation automatique
  • Outils associés : Swagger Editor, Swagger UI, Swagger Codegen
  • Alternatives : Redoc, Stoplight

1.2 Conteneurisation et Orchestration

Docker

  • Type : Plateforme de conteneurisation
  • Usage : Empaqueter et exécuter des applications dans des containers
  • Commandes essentielles :
    docker build -t app:latest .
    docker compose up -d
    docker compose logs -f app
    docker system prune -a
    

Kubernetes (k8s)

  • Type : Orchestrateur de containers
  • Usage : Déploiement, scaling et gestion de containers
  • Outils : kubectl, Lens, k9s, Helm
  • Commandes essentielles :
    kubectl get pods -n production
    kubectl logs -f deployment/app
    kubectl port-forward svc/app 3000:3000
    kubectl rollout status deployment/app
    

Helm

  • Type : Package manager Kubernetes
  • Usage : Déployer des applications complexes avec des charts paramétrables
  • Commandes :
    helm create my-chart
    helm install release-name ./chart
    helm upgrade release-name ./chart
    helm rollback release-name 1
    

Terraform

  • Type : Infrastructure as Code (IaC)
  • Usage : Provisionner et gérer l'infrastructure cloud
  • Providers : AWS, GCP, Azure, Kubernetes
  • Workflow : initplanapplydestroy
  • Bonnes pratiques : Remote state avec locking, modules réutilisables, workspaces

Pulumi

  • Type : Infrastructure as Code (programmatique)
  • Usage : Alternative à Terraform utilisant des langages de programmation (TypeScript, Python, Go)
  • Avantage : Typage statique, IDE support, testing possible

1.3 Bases de Données

pgAdmin

  • Type : Interface d'administration PostgreSQL
  • Usage : Gestion visuelle de bases PostgreSQL
  • Fonctionnalités : Query editor, visual explain, backup/restore, monitoring

DBeaver

  • Type : Client de base de données universel
  • Usage : Interface pour multiples bases (PostgreSQL, MySQL, SQLite, etc.)
  • Fonctionnalités : ER diagrams, SQL editor, data export

RedisInsight

  • Type : Interface Redis
  • Usage : Visualisation et gestion de Redis
  • Fonctionnalités : Browser, CLI, memory analysis, profiling

MongoDB Compass

  • Type : Interface MongoDB
  • Usage : Visualisation et gestion de MongoDB
  • Fonctionnalités : Query builder, aggregation pipeline builder, schema analysis

Beekeeper Studio

  • Type : Client SQL open-source
  • Usage : Interface légère pour bases SQL
  • Avantage : Cross-platform, gratuit, support PostgreSQL/MySQL/SQLite

1.4 Messaging et Streaming

Kafka UI (Provectus)

  • Type : Interface Kafka
  • Usage : Gestion visuelle des topics, consumers, messages
  • Fonctionnalités : Message browser, consumer management, schema registry

Redpanda Console

  • Type : Interface Kafka/Redpanda
  • Usage : Monitoring et gestion des clusters Kafka
  • Fonctionnalités : Topics, consumer groups, schema registry, debugging

Bull Board

  • Type : Dashboard BullMQ
  • Usage : Interface web pour BullMQ queues
  • Fonctionnalités : Job management, retry, stats temps réel

RabbitMQ Management UI

  • Type : Interface RabbitMQ
  • Usage : Gestion des queues, exchanges, bindings
  • Fonctionnalités : Monitoring, management, tracing

1.5 Monitoring et Observabilité

Prometheus

  • Type : Système de monitoring et alerting
  • Usage : Collecte de métriques temps réel
  • Caractéristiques : Query language (PromQL), alerting rules, service discovery

Grafana

  • Type : Plateforme d'observabilité
  • Usage : Dashboards de métriques, logs, traces
  • Fonctionnalités : Panels personnalisables, alerting, annotations

OpenTelemetry

  • Type : Framework d'observabilité
  • Usage : Collecte standardisée de métriques, logs et traces
  • Composants : SDKs, API, Collector, Exporters
  • Avantage : Vendor-neutral, support multi-langage

Datadog

  • Type : Plateforme SaaS de monitoring
  • Usage : APM, logs, infrastructure monitoring
  • Alternatives : New Relic, Grafana Cloud, Dynatrace

ELK Stack (Elasticsearch, Logstash, Kibana)

  • Type : Stack de logging
  • Usage : Centralisation et analyse de logs
  • Alternative moderne : Grafana Loki + Promtail

Sentry

  • Type : Error tracking
  • Usage : Capture et suivi des erreurs en production
  • Fonctionnalités : Stack traces, breadcrumbs, performance monitoring

1.6 Sécurité

OWASP ZAP

  • Type : Scanner de sécurité
  • Usage : Détection de vulnérabilités dans les applications web
  • Fonctionnalités : Active scanning, passive scanning, fuzzing, API scanning

Trivy (AquaSecurity)

  • Type : Scanner de vulnérabilités
  • Usage : Scan de containers, filesystems, repos Git
  • Commandes :
    trivy image app:latest
    trivy fs --severity HIGH,CRITICAL .
    trivy repo https://github.com/org/repo
    

Snyk

  • Type : Security platform
  • Usage : Scan de dépendances, containers, IaC
  • Intégration : CI/CD, GitHub, GitLab

HashiCorp Vault

  • Type : Gestion de secrets
  • Usage : Stockage sécurisé de tokens, mots de passe, certificats
  • Fonctionnalités : Dynamic secrets, encryption as a service, leasing

1.7 CI/CD

GitHub Actions

  • Type : CI/CD plateforme
  • Usage : Automatisation des workflows de développement
  • Fonctionnalités : Matrix builds, artifacts, environments, reusable workflows

GitLab CI

  • Type : CI/CD intégré
  • Usage : Pipelines de build, test, déploiement
  • Caractéristiques : Auto DevOps, review apps, dind

ArgoCD

  • Type : GitOps CD tool
  • Usage : Déploiement continu basé sur Git
  • Fonctionnalités : Auto-sync, sync waves, rollback

2. Blogs d'Ingénierie

2.1 Blogs d'Entreprises

Netflix Tech Blog

  • URL : https://netflixtechblog.com/
  • Sujets : Architecture microservices, Chaos Engineering, caching, CDN
  • Articles notables : "The Netflix Stack", "Chaos Monkey", "Zuul Gateway"

Uber Engineering

  • URL : https://eng.uber.com/
  • Sujets : Scaling, real-time systems, maps, payments
  • Articles notables : "Uber's Real-Time Push Platform", "Schemaless Datastore"

Stripe Blog

  • URL : https://stripe.com/blog/engineering
  • Sujets : API design, payments, developer experience, reliability
  • Articles notables : "API Design", "Idempotency", "Scaling to 100M requests"

Airbnb Engineering

Discord Engineering

Meta Engineering

  • URL : https://engineering.fb.com/
  • Sujets : Large-scale systems, AI/ML, infrastructure
  • Articles notables : "TAO: Facebook's Distributed Data Store", "Apache Cassandra"

Google Cloud Blog

Spotify Engineering

Linkedin Engineering

Dropbox Engineering

2.2 Blogs Individuels

Martin Fowler

Dan Abramov

Julia Evans

Bredan Gregg

Charity Majors

Sarah Drasner

2.3 Publications Techniques

High Scalability

The New Stack

InfoQ

A List Apart


3. Conférences

3.1 Conférences Internationales

KubeCon + CloudNativeCon

  • Fréquence : Annuelle (Europe, Amérique du Nord, Chine)
  • Sujets : Kubernetes, Cloud Native, Service Mesh, Serverless
  • Public : Cloud engineers, DevOps, SRE
  • Format : Keynotes, sessions techniques, workshops, sponsor hall
  • Site : https://kubecon.io/

AWS re:Invent

  • Fréquence : Annuelle (Las Vegas, Novembre/Décembre)
  • Sujets : Cloud AWS, architecture, networking, databases, machine learning
  • Public : Cloud architects, engineers, CTOs
  • Format : Keynotes, breakout sessions, workshops, certifications
  • Site : https://reinvent.awsevents.com/

QCon

  • Fréquence : Annuelle (Londres, San Francisco, Shanghai)
  • Sujets : Architecture logicielle, pratiques de développement avancées
  • Public : Lead developers, architects, managers techniques
  • Format : Tracks, workshops, panels

Devoxx

  • Fréquence : Annuelle (Belgique, France, UK, Pologne)
  • Sujets : Java, JVM, architectures, DevOps, cloud
  • Public : Développeurs Java et JVM

DockerCon

  • Fréquence : Annuelle
  • Sujets : Docker, containers, Moby, sécurité
  • Format : Sessions techniques, ateliers

GOTO Conference

  • Fréquence : Annuelle (Chicago, Berlin, Copenhague)
  • Sujets : Software development, architecture, leadership
  • Public : Senior engineers, architects, CTOs

Strange Loop

  • Fréquence : Annuelle (St. Louis, Septembre)
  • Sujets : Languages, databases, distributed systems, creative tech
  • Particularité : Contenu très technique et diversifié

SREcon

  • Fréquence : Annuelle (multiple continents)
  • Sujets : Site reliability engineering, production systems
  • Organisateur : USENIX

3.2 Conférences Européennes

Devoxx France

  • Lieu : Paris
  • Période : Avril
  • Langue : Français
  • Sujets : Java, web, cloud, DevOps

Paris Web

  • Lieu : Paris
  • Période : Octobre
  • Sujets : Web, accessibilité, performance, design

Cloud Nord

  • Lieu : Lille
  • Période : Avril
  • Sujets : Cloud, DevOps, Kubernetes

Riviera Dev

  • Lieu : Sophia Antipolis
  • Période : Mai/Juin
  • Sujets : Développement logiciel, architecture

3.3 Vidéos de Conférences

  • YouTube : Chaînes officielles de chaque conférence
  • InfoQ : Présentations et interviews filmées
  • Confreaks : Archives de conférences techniques
  • DevTube : Plateforme de vidéos techniques

4. Podcasts

4.1 Podcasts Techniques (Anglais)

Software Engineering Daily

  • Animation : Sean Falconer
  • Fréquence : Quotidien
  • Sujets : Interviews d'ingénieurs sur des sujets techniques variés
  • Durée : 20-45 minutes
  • Site : https://softwareengineeringdaily.com/

The Changelog

  • Animation : Adam Stacoviak, Jerod Santo
  • Fréquence : Hebdomadaire
  • Sujets : Open-source, développement, communauté
  • Durée : 45-90 minutes

Go Time

  • Animation : Panel d'hôtes
  • Fréquence : Hebdomadaire
  • Sujets : Go programming language, écosystème Go
  • Réseau : Changelog Media

Kubernetes Podcast from Google

  • Animation : Adam Glick, Craig Box
  • Fréquence : Hebdomadaire
  • Sujets : Kubernetes, cloud native, actualités
  • Durée : 15-30 minutes

The InfoQ Podcast

  • Animation : Équipe InfoQ
  • Fréquence : Hebdomadaire
  • Sujets : Interviews de leaders tech, architectures
  • Durée : 30-60 minutes

Syntax

  • Animation : Wes Bos, Scott Tolinski
  • Fréquence : Hebdomadaire
  • Sujets : Développement web fullstack, JavaScript
  • Durée : 30-90 minutes

ShopTalk Show

  • Animation : Chris Coyier, Dave Rupert
  • Fréquence : Hebdomadaire
  • Sujets : Web design, développement frontend/backend
  • Durée : 30-60 minutes

Darknet Diaries

  • Animation : Jack Rhysider
  • Fréquence : Mensuel
  • Sujets : Cybersecurity, hacking, histoires vraies
  • Durée : 40-90 minutes

Security Now

  • Animation : Steve Gibson, Leo Laporte
  • Fréquence : Hebdomadaire
  • Sujets : Cybersecurity, actualités sécurité
  • Durée : 60-120 minutes

Microservices Podcast (Sam Newman)

  • Animation : Sam Newman
  • Fréquence : Irrégulier
  • Sujets : Microservices, architecture, patterns
  • Particularité : Auteur de "Building Microservices"

4.2 Podcasts Techniques (Français)

Le Podcast de l'InfoQ France

  • Sujets : Architecture, développement, management IT
  • Format : Interviews et analyses

Cast-IT

  • Sujets : Développement, DevOps, carrière IT
  • Format : Interviews de professionnels

Les Cast Codeurs

  • Sujets : Java, JVM, écosystème technique
  • Particularité : Podcast historique de la communauté Java française

Dev4Jobs

  • Sujets : Carrière, techniques, actualités IT
  • Format : Émissions thématiques

Artisan Développeur

  • Sujets : Artisanat logiciel, pratiques de développement
  • Format : Réflexions sur le métier

5. Chaînes YouTube

5.1 Chaînes Techniques

Fireship

  • Sujets : Développement web, frameworks, tendances
  • Format : Vidéos courtes (100s), tutoriels
  • Mise en avant : "100 seconds of code", "TechStack"

Web Dev Simplified

  • Sujets : Fullstack web development
  • Format : Tutoriels pas à pas
  • Niveau : Débutant à intermédiaire

Ben Awad

  • Sujets : React, GraphQL, TypeScript, fullstack
  • Format : Coding streams, tutorials, discussions

Theo (t3.gg)

  • Sujets : TypeScript, React, web dev
  • Format : Analyses, débats techniques

Nick Chapsas

  • Sujets : .NET, C#, backend, architecture
  • Format : Tutoriels avancés, bonnes pratiques

TechWorld with Nana

  • Sujets : DevOps, Docker, Kubernetes, Jenkins
  • Format : Cours complets, tutoriels
  • Particularité : Débutants bienvenus

Hussein Nasser

  • Sujets : Backend, bases de données, networking, architectures
  • Format : Explications approfondies, whiteboard

ByteByteGo (Alex Xu)

  • Sujets : System design, architectures distribuées
  • Format : Animations, explications visuelles
  • Particularité : Auteur de "System Design Interview"

Gaurav Sen

  • Sujets : System design, distributed systems
  • Format : Whiteboard, études de cas
  • Chaîne : GKCS (Gaurav K. Chaudhary Systems)

5.2 Chaînes DevOps

NetworkChuck

  • Sujets : Réseau, Linux, ethical hacking
  • Format : Tutoriels dynamiques, challenges

Learn Linux TV

  • Sujets : Linux, administration système
  • Format : Tutoriels complets

DevOps Toolkit

  • Sujets : DevOps, Kubernetes, monitoring
  • Format : Démonstrations, comparatifs

6. Communautés

6.1 Forums et Q&A

Stack Overflow

  • URL : https://stackoverflow.com/
  • Usage : Questions/réponses techniques
  • Tags backend : node.js, typescript, docker, postgresql, redis

Dev.to

  • URL : https://dev.to/
  • Usage : Articles techniques, partage de connaissances
  • Particularité : Communauté inclusive et bienveillante

Reddit

  • Subreddits backend : r/node, r/typescript, r/devops, r/kubernetes, r/programming

6.2 Serveurs Discord et Slack

Reactiflux

  • Plateforme : Discord
  • Sujets : React, JavaScript, développement web
  • Taille : 200k+ membres

Node.JS Community

  • Plateforme : Discord
  • Sujets : Node.js, backend JavaScript
  • Activité : Entraide technique

Kubernetes Community

6.3 Plateformes d'Apprentissage

Exercism

  • URL : https://exercism.org/
  • Usage : Exercices de code avec mentorat
  • Langages : Node.js, TypeScript, Go, Rust, Python

LeetCode

  • URL : https://leetcode.com/
  • Usage : Préparation aux entretiens (algorithmes, system design)
  • Contenu : Problèmes, contests, mock interviews

Codewars

Frontend Masters

Egghead.io

6.4 Newsletters

Node Weekly

JavaScript Weekly

DevOps Weekly

KubeWeekly

DB Weekly

Software Engineering Daily Newsletter

  • Sujets : Articles, podcasts
  • Fréquence : Quotidienne

The Pudding

  • Sujets : Data-driven storytelling
  • Fréquence : Mensuel

7. Outils de Productivité

7.1 Terminal et Shell

iTerm2 (macOS) / Windows Terminal / Alacritty

  • Fonctionnalités : Split panes, profiles, tmux integration
  • Améliorations : Oh My Zsh, powerlevel10k, zsh-autosuggestions

tmux

  • Usage : Multiplexeur de terminaux
  • Fonctionnalités : Sessions persistantes, split panes, attach/detach

Neovim / VS Code

  • Choix : Éditeur de code
  • Extensions recommandées : ESLint, Prettier, Docker, GitLens, Thunder Client

7.2 Gestion de Projet

Linear

  • Usage : Issue tracking et project management
  • Particularité : Rapide, orienté équipes engineering

Notion

  • Usage : Documentation, wikis, bases de connaissances
  • Usage technique : ADRs, runbooks, architecture docs

7.3 Version Control

Git

  • Outils : Git CLI, GitKraken, Sourcetree
  • Workflows : GitFlow, GitHub Flow, Trunk-based development
  • Bonnes pratiques : Commits atomiques, messages conventionnels

GitHub / GitLab CLI

  • Usage : Interaction avec les plateformes depuis le terminal

8. Ressources pour l'Apprentissage Continu

8.1 Système Design

  • Book : "System Design Interview" by Alex Xu
  • Book : "Designing Data-Intensive Applications" by Martin Kleppmann
  • Blog : High Scalability
  • YouTube : ByteByteGo, Gaurav Sen
  • Course : "Grokking the System Design Interview" (DesigningML)

8.2 Architecture Logicielle

  • Book : "Clean Architecture" by Robert C. Martin
  • Book : "Building Microservices" by Sam Newman
  • Book : "Fundamentals of Software Architecture" by Mark Richards
  • Pattern : CQRS, Event Sourcing, Saga, Circuit Breaker

8.3 Cloud Native

  • Certifications : AWS SA / GCP ACE / CKA
  • Kata : Killercoda, Katacoda
  • Labs : AWS Workshops, Google Codelabs

8.4 Sécurité

  • Certifications : AWS Security, CompTIA Security+
  • Pratique : OWASP WebGoat, OWASP Juice Shop
  • CTF : Hack The Box, TryHackMe