Passer au contenu principal

Outils et environnement technique

BBC-Partners Solutions - Direction Innovation et Technologie


1. Stack technique par pôle

1.1 Vue d'ensemble

┌─────────────────────────────────────────────────────────────────────────────┐
│                        STACK TECHNIQUE DIT                                  │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│  FRONTEND   │  │   BACKEND   │  │   MOBILE    │  │   DEVOPS    │
├─────────────┤  ├─────────────┤  ├─────────────┤  ├─────────────┤
│ HTML/CSS/JS │  │ Python      │  │ Flutter     │  │ Docker      │
│ React/Vue   │  │ PHP         │  │ React Native│  │ CI/CD       │
│ TypeScript  │  │ Node.js     │  │ Swift/Kotlin│  │ Linux       │
└─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘

┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│     IoT     │  │     R&D     │  │ DATA SCIENCE│
├─────────────┤  ├─────────────┤  ├─────────────┤
│ Arduino     │  │ Polyvalent  │  │ Python      │
│ ESP32       │  │ Prototypage │  │ Pandas      │
│ MQTT        │  │ POC         │  │ ML/BI       │
└─────────────┘  └─────────────┘  └─────────────┘

1.2 Pôle FrontEnd Dev

Catégorie Technologies
Langages HTML5, CSS3, JavaScript, TypeScript
Frameworks React.js, Vue.js
Styling Sass/SCSS, Tailwind CSS, Bootstrap
Build tools Webpack, Vite
Tests Jest, Cypress
Qualité ESLint, Prettier

1.3 Pôle BackEnd Dev

Catégorie Technologies
Langages Python, PHP, JavaScript (Node.js)
Frameworks Django, Laravel, Express.js
Bases de données PostgreSQL, MySQL, MongoDB
ORM SQLAlchemy, Eloquent, Sequelize
API REST, GraphQL
Tests PyTest, PHPUnit, Mocha
ERP Odoo (Python)

1.4 Pôle Mobile

Catégorie Technologies
Cross-platform Flutter, React Native
iOS natif Swift, SwiftUI
Android natif Kotlin, Jetpack Compose
Tests XCTest, Espresso, Flutter Test
Distribution App Store Connect, Google Play Console

1.5 Pôle DevOps

Catégorie Technologies
Conteneurisation Docker, Docker Compose
Orchestration Kubernetes (si applicable)
CI/CD GitLab CI, GitHub Actions, Jenkins
Infrastructure Linux (Ubuntu, Debian)
Monitoring Prometheus, Grafana, ELK Stack
Cloud Selon hébergeur partenaire
Scripting Bash, Python

1.6 Pôle Team IoT

Catégorie Technologies
Microcontrôleurs Arduino, ESP32, ESP8266, Raspberry Pi
Langages C/C++, MicroPython
Protocoles MQTT, HTTP, CoAP, LoRa, BLE
Plateformes cloud AWS IoT, Azure IoT, ThingsBoard
Capteurs Température, humidité, mouvement, etc.

1.7 Pôle Data Science

Catégorie Technologies
Langages Python, SQL
Librairies Pandas, NumPy, Scikit-learn, TensorFlow
Visualisation Matplotlib, Seaborn, Plotly
BI Power BI, Tableau, Metabase
Notebooks Jupyter, Google Colab
Bases analytiques PostgreSQL, ClickHouse

2. Outils de développement

2.1 Gestion du code source

Outil Usage Accès
Git Versioning Tous les développeurs
GitLab / GitHub Hébergement des dépôts, CI/CD Équipe DIT

Organisation des dépôts :

bbc-partners/
├── maintex/
│   ├── maintex-frontend     # Application web Maintex
│   ├── maintex-backend      # API Maintex
│   └── maintex-mobile       # Application mobile Maintex
├── projects/
│   ├── client-a-projet-x    # Projets clients
│   └── client-b-projet-y
├── odoo/
│   ├── odoo-modules-custom  # Modules Odoo personnalisés
│   └── odoo-integrations    # Connecteurs et intégrations
├── iot/
│   └── iot-projects         # Projets IoT
└── shared/
    ├── libraries            # Librairies partagées
    └── templates            # Templates de projet

2.2 Environnements de développement (IDE)

IDE Usage principal Pôles
VS Code Développement polyvalent Tous
PyCharm Python, Django, Odoo BackEnd, Data Science
WebStorm JavaScript, TypeScript FrontEnd
Android Studio Android Mobile
Xcode iOS Mobile
Arduino IDE Firmware IoT

2.3 Outils de test

Type de test Outils
Tests unitaires Jest, PyTest, PHPUnit
Tests d'intégration Postman, Newman
Tests E2E Cypress, Selenium
Tests mobiles Appium, XCTest, Espresso
Tests de charge JMeter, Locust

3. Outils de gestion de projet

3.1 Suivi des tâches et backlog

Outil Usage
Jira / GitLab Issues / Trello Gestion du backlog, sprints, tickets

Structure des tickets :

  • Epics : Grandes fonctionnalités
  • User Stories : Besoins utilisateurs
  • Tasks : Tâches techniques
  • Bugs : Anomalies à corriger

3.2 Documentation

Outil Usage
Confluence / Notion / Wiki GitLab Documentation projet et technique
Swagger / OpenAPI Documentation des APIs
Storybook Documentation des composants UI

3.3 Communication

Outil Usage
Slack / Microsoft Teams Messagerie instantanée
Email Communications formelles
Visioconférence Réunions à distance

4. Infrastructure et environnements

4.1 Environnements applicatifs

Environnement Objectif Accès Déploiement
Local Développement individuel Développeur Manuel
Dev Intégration continue Équipe DIT Automatique (CI)
Staging Recette et validation DIT + DPS Automatique
Production Utilisateurs finaux Tous utilisateurs Manuel (validé)

4.2 Architecture type

┌─────────────────────────────────────────────────────────────────────────────┐
│                      ARCHITECTURE ENVIRONNEMENTS                            │
└─────────────────────────────────────────────────────────────────────────────┘

     LOCAL              DEV                STAGING            PRODUCTION
┌─────────────┐   ┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ Poste       │   │ Serveur     │    │ Serveur     │    │ Serveur     │
│ développeur │   │ Dev         │    │ Staging     │    │ Production  │
├─────────────┤   ├─────────────┤    ├─────────────┤    ├─────────────┤
│ Docker      │   │ Docker      │    │ Docker      │    │ Docker      │
│ Compose     │   │ CI/CD       │    │ Config      │    │ HA/LB       │
│             │   │             │    │ similaire   │    │ Backup      │
│             │   │             │    │ à Prod      │    │ Monitoring  │
└─────────────┘   └─────────────┘    └─────────────┘    └─────────────┘
      │                 │                  │                  │
      └─────────────────┴──────────────────┴──────────────────┘
                              │
                    ┌─────────▼─────────┐
                    │   Base de données │
                    │   (par environnement)
                    └───────────────────┘

4.3 Hébergement

Service Fournisseur Usage
Serveurs Hébergeur partenaire Applications, bases de données
Stockage Hébergeur partenaire Fichiers, backups
CDN À définir Assets statiques (si besoin)

4.4 Sécurité infrastructure

Mesure Description
Pare-feu Filtrage des accès réseau
SSL/TLS Chiffrement des communications
VPN Accès sécurisé à l'infrastructure
Backup Sauvegardes quotidiennes
Monitoring Surveillance 24/7

5. Pipeline CI/CD

5.1 Étapes du pipeline

┌─────────────────────────────────────────────────────────────────────────────┐
│                           PIPELINE CI/CD                                    │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐
│  LINT   │──▶│  BUILD  │──▶│  TEST   │──▶│ SECURITY│──▶│ DEPLOY  │
└─────────┘   └─────────┘   └─────────┘   └─────────┘   └─────────┘
     │             │             │             │             │
     ▼             ▼             ▼             ▼             ▼
  Code style   Compilation   Tests auto   Scan sécu    Déploiement
  Formatage    Artefacts     Couverture   Dépendances  Environnement

5.2 Configuration type (GitLab CI)

stages:
  - lint
  - build
  - test
  - security
  - deploy

lint:
  stage: lint
  script:
    - npm run lint        # ou équivalent selon le projet

build:
  stage: build
  script:
    - docker build -t app .

test:
  stage: test
  script:
    - npm run test
  coverage: '/Coverage: \d+\.\d+%/'

security:
  stage: security
  script:
    - npm audit           # ou équivalent

deploy_staging:
  stage: deploy
  script:
    - ./deploy.sh staging
  only:
    - develop

deploy_production:
  stage: deploy
  script:
    - ./deploy.sh production
  only:
    - main
  when: manual

6. Outils de monitoring et observabilité

6.1 Surveillance applicative

Outil Usage
Prometheus Collecte de métriques
Grafana Tableaux de bord et visualisation
Sentry Suivi des erreurs applicatives

6.2 Surveillance infrastructure

Outil Usage
Grafana Dashboards infrastructure
Alertmanager Gestion des alertes
Uptime monitoring Disponibilité des services

6.3 Logs

Outil Usage
ELK Stack Centralisation et analyse des logs
Loki Alternative légère pour les logs

7. Matrice outils / pôles

Outil FrontEnd BackEnd Mobile DevOps IoT R&D Data
Git
VS Code
Docker
Jira/GitLab
Postman
Grafana

Légende : ● Utilisation principale | ○ Utilisation ponctuelle


8. Gestion des accès

8.1 Principe du moindre privilège

Chaque collaborateur dispose uniquement des accès nécessaires à ses fonctions.

8.2 Matrice des accès

Ressource Développeur Resp. Pôle Scrum Master Directeur DIT
Dépôts Git (lecture)
Dépôts Git (écriture)
Environnement Dev
Environnement Staging
Environnement Production
Outils de monitoring
Administration infrastructure DevOps

Légende : ● Accès complet | ○ Accès limité ou sur demande


Documents connexes


Document maintenu par la DIT - BBC-Partners Solutions