Roadmap de déploiement

roadmap-deploiement
Philippe Escalle CTO
Un CTO est avant tout une personne organisée et structurée. Il doit être capable de répondre à toutes les questions et connaître son projet sur le bout des doigts. Mais plus encore, il doit avoir une vision claire et globale de tout le processus, depuis l'idée initiale jusqu'à la réalisation finale. J'aime dire qu'un CTO transforme des idées en réussites concrètes. Voici une roadmap que j'ai utilisée pour un projet de création d'un CMS sur mesure, conçu pour gérer des multi-sites avec Kubernetes.

Un CTO est avant tout une personne organisée et structurée. Il doit être capable de répondre à toutes les questions et connaître son projet sur le bout des doigts. Mais plus encore, il doit avoir une vision claire et globale de tout le processus, depuis l'idée initiale jusqu'à la réalisation finale. J'aime dire qu'un CTO transforme des idées en réussites concrètes. Voici une roadmap que j'ai utilisée pour un projet de création d'un CMS sur mesure, conçu pour gérer des multi-sites avec Kubernetes.

 


 Préparation et conception

  1. Cahier des charges conceptuel

    • Définir les objectifs du site (fonctionnalités, public cible, expérience utilisateur).
    • Lister les pages principales et leur contenu.
  2. Cahier des charges techniques

    • Définir les technologies utilisées (Laravel, Kubernetes, VueJs, RabbitMq, etc.).
    • Prévoir les contraintes (scalabilité, sécurité, performances).
  3. Achat du domaine

    • Choisir un fournisseur
    • Prévoir des sous-domaines pour staging et production ou un pod dédié.
  4. Conception graphique

    • Maquette Figma : Concevoir toutes les pages clés avec des interactions.
    • Choix des polices : Vérifier leur compatibilité web (Google Fonts ou autre).
    • Création ou achat des éléments graphiques : Récupérer et exporter les icônes, SVG, Lotties et visuels nécessaires.
  5. Prototypage HTML statique

    • Maquette HTML d'une page : Créer une version statique pour valider le design.
  6. Diagrammes UML

    • Réaliser un diagramme de classes pour les entités principales.
    • Créer un diagramme de séquence pour les processus complexes (authentification, commandes, etc.).


Environnement de développement et staging

  1. Création d’un environnement de staging

    • Configurer un namespace Kubernetes dédié.
  2. Configuration des variables d'environnement

    • Utiliser un gestionnaire sécurisé (ex. Kubernetes Secrets, le .env de laravel).
  3. Configuration de Kubernetes

    • Déployer les pods, services, et ingress.
    • Configurer un LoadBalancer ou ingress pour staging.
  4. Mise en place de Git pour staging

    • Configurer une branche spécifique (ex. staging) pour les tests.
    • Mettre en place un pipeline CI/CD (GitLab, GitHub Actions).
  5. Création de la base de données

    • Initialiser la base avec une migration Laravel.
  6. Déploiement et migration

    • Automatiser le déploiement via CI/CD.
    • Exécuter les migrations avec des tests fonctionnels.
  7. Création du thème

    • Développer le thème en utilisant le framework CSS.
  8. Construction de l'interface utilisateur

    • Menu : Créer une navigation adaptable.
    • Footer : Inclure les mentions légales et des liens utiles.
    • Blocs spécifiques : Concevoir les sections clés (carousel, formulaires, etc.).
    • Composants spécifiques : Créer des composants réutilisables avec Laravel et alpineJs.
  9. Création de la première page

    • Ajouter du contenu de test et valider les performances.

3. Environnement de production (Mise à jour)

  1. Création de l'environnement de production

    • Configurer un namespace Kubernetes séparé pour la production.
  2. Configuration des variables d'environnement

    • Synchroniser les variables sensibles avec les Secrets Kubernetes.
  3. Configuration des pods Kubernetes

    • Activer l'auto-scalabilité si nécessaire, si c'est de l'événementiel, configurer le Scheduled Scaling.
  4. Installation et configuration des éléments essentiels pour SEO et analytics

    • Installation du sitemap :
    • Installation de Google Analytics :
    • Installation de robot.txt :
  5. Installation des dépendances JS et API
    Installer et compiler les dépendances front-end (Webpack, Vite) :

  6. Faire pointer le domaine sur le pod de production