Apprenez le DevOps, du developpement a la mise en production.

Denisse Ben Massoundi

Developpement Web

Le développement web est le processus de conception, de construction et de livraison d’applications web exploitables en production, intégrées à une infrastructure automatisée, observable et sécurisée. Il ne se limite pas à l’écriture de code front-end ou back-end : il englobe l’ensemble du cycle de vie applicatif, depuis le poste du développeur jusqu’à l’environnement de production.
1function MyButton() {
2  return (
3    <button>
4      I'm a button
5    </button>
6  );
7}
8
9export default function MyApp() {
10  return (
11    <div>
12      <h1>Welcome to my app</h1>
13      <MyButton />
14    </div>
15  );
16}

Bases de Donnees

Les bases de données regroupent les systèmes de stockage et de gestion des données permettant de persister, organiser, interroger et sécuriser les informations applicatives, tout en garantissant la cohérence, la performance, la disponibilité et la résilience des données en production.
1database:
2  engine: postgresql
3  version: "15"
4  host: db.internal
5  port: 5432
6  name: app_db
7
8  security:
9    encryption_at_rest: true
10    encryption_in_transit: true
11
12  backups:
13    enabled: true
14    schedule: "0 2 * * *"
15    retention_days: 14
16
17  replication:
18    enabled: true
19    mode: streaming

DevOps

Le DevOps est une culture organisationnelle qui vise à renforcer la collaboration entre les équipes de développement et d’exploitation. Cette approche repose sur l’automatisation, la responsabilité partagée et l’amélioration continue afin d’accélérer la livraison des applications tout en garantissant leur qualité, leur stabilité et leur fiabilité en production.
Devops

CI/CD

Le CI/CD (Continuous Integration / Continuous Delivery ou Deployment) est un ensemble de pratiques d’automatisation visant à intégrer, tester, valider et déployer le code de manière fréquente et fiable. Il permet de réduire les erreurs humaines, d’accélérer les mises en production et d’assurer la qualité et la stabilité des applications tout au long de leur cycle de vie.
1stages:
2  - code
3  - build
4  - test
5
6code:
7  stage: code
8  image: node:20
9  script:
10    - git clone https://example.com/mon-projet.git .
11
12build:
13  stage: build
14  image: node:20
15  script:
16    - npm install
17    - npm run build
18  artifacts:
19    paths:
20      - dist/
21
22test:
23  stage: test
24  image: node:20
25  script:
26    - npm test

Cloud

Le Cloud désigne un modèle de consommation de services informatiques accessibles à la demande via Internet, permettant d’utiliser des ressources de calcul, de stockage et de services managés sans avoir à gérer directement le matériel ou les couches sous-jacentes, tout en offrant élasticité, haute disponibilité et facturation à l’usage.
cloud

Infrastructure as code

L’Infrastructure as Code (IaC) est une approche qui consiste à définir, versionner et automatiser la gestion des ressources d’infrastructure à l’aide de code déclaratif. Elle permet de provisionner, configurer et faire évoluer des environnements de manière reproductible, traçable et cohérente, en éliminant les configurations manuelles et en facilitant l’industrialisation des déploiements.
1terraform {
2  required_providers {
3    aws = {
4      source  = "hashicorp/aws"
5      version = "~> 5.0"
6    }
7  }
8}
9
10provider "aws" {
11  region = "eu-west-1"
12}
13
14resource "aws_instance" "web" {
15  ami           = "ami-0abcdef1234567890"
16  instance_type = "t3.micro"
17
18  tags = {
19    Name = "web-server"
20    Environment = "production"
21  }
22}

Monitoring

Le monitoring consiste à surveiller de manière continue l’état de fonctionnement et les performances des systèmes et des applications en production à l’aide de métriques, de seuils et d’alertes, afin de détecter rapidement les incidents, prévenir les indisponibilités et assurer le respect des niveaux de service.
dashboard Grafana

Observabilite

L’observabilité est la capacité à comprendre et expliquer le comportement interne d’un système complexe à partir de ses signaux externes, tels que les métriques, les logs et les traces, afin d’analyser les causes profondes des incidents et d’améliorer en continu la fiabilité et les performances des applications.
1scrape_configs:
2  - job_name: "application"
3    metrics_path: /metrics
4    static_configs:
5      - targets:
6          - "app:3000"
7
8alerting:
9  alertmanagers:
10    - static_configs:
11        - targets:
12            - "alertmanager:9093"

Systeme

Les systèmes informatiques regroupent l’ensemble des mécanismes liés à l’installation, la configuration, l’administration et la sécurisation des systèmes d’exploitation. Ils assurent l’exécution fiable des applications, la gestion des ressources matérielles (CPU, mémoire, stockage) et la disponibilité des services de base nécessaires au fonctionnement des environnements de production.
1system:
2  hostname: prod-server-01
3  timezone: Europe/Paris
4
5  users:
6    - name: appuser
7      shell: /bin/bash
8      sudo: true
9
10  packages:
11    - curl
12    - git
13    - htop
14
15  services:
16    ssh:
17      enabled: true
18      port: 22
19    cron:
20      enabled: true
21
22  limits:
23    nofile: 65535

Reseaux

Les réseaux informatiques regroupent l’ensemble des mécanismes permettant d’assurer la communication, le routage et la sécurisation des échanges entre systèmes et services. Ils couvrent la configuration des interfaces réseau, l’adressage IP, le filtrage des flux, l’exposition des services et la gestion des accès afin de garantir connectivité, performance et sécurité des environnements de production.
1network:
2  hostname: prod-server-01
3
4  interfaces:
5    eth0:
6      dhcp: true
7    eth1:
8      address: 10.0.1.10/24
9      gateway: 10.0.1.1
10
11  dns:
12    servers:
13      - 1.1.1.1
14      - 8.8.8.8
15
16  firewall:
17    default_policy: deny
18    rules:
19      - allow: 22
20      - allow: 80
21      - allow: 443
22
23  routing:
24    ip_forward: false

Virtualisation

La virtualisation permet de créer et gérer des machines virtuelles isolées sur un hôte physique à l’aide d’un hyperviseur. Vagrant fournit une couche d’abstraction et d’automatisation pour définir ces machines de manière déclarative, facilitant la création d’environnements reproductibles, cohérents et versionnés pour le développement et les tests.
1Vagrant.configure("2") do |config|
2  config.vm.box = "ubuntu/jammy64"
3
4  config.vm.define "vm-web" do |vm|
5    vm.vm.hostname = "vm-web-01"
6
7    vm.vm.network "private_network", ip: "192.168.56.10"
8
9    vm.vm.provider "virtualbox" do |vb|
10      vb.cpus = 2
11      vb.memory = 4096
12    end
13
14    vm.vm.provision "shell", inline: <<-SHELL
15      apt-get update
16      apt-get install -y nginx
17    SHELL
18  end
19end

Conteneurisation

Les conteneurs sont des environnements d’exécution isolés basés sur des images OCI, permettant de packager une application avec ses dépendances afin de garantir portabilité, reproductibilité et cohérence entre les environnements. Ils offrent un cycle de vie standardisé pour construire, exécuter et distribuer des applications sans dépendre du système hôte.
1version: "3"
2services:
3  app:
4    image: web-app:latest
5    container_name: web-app
6    restart: unless-stopped
7
8    resources:
9      limits:
10        cpus: "0.5"
11        memory: 256M
12
13    ports:
14      - "8080:8080"
15
16    environment:
17      - NODE_ENV=production
18
19    command: npm start

Orchestration

L’orchestration Kubernetes permet de gérer automatiquement le déploiement, la scalabilité et l’exposition d’applications conteneurisées sur un cluster, en assurant disponibilité et gestion des ressources.
kubernetes orchestration
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  name: web-app
5spec:
6  replicas: 3
7  selector:
8    matchLabels:
9      app: web
10  template:
11    metadata:
12      labels:
13        app: web
14    spec:
15      containers:
16        - name: web
17          image: nginx:latest
18          ports:
19            - containerPort: 80
20---
21apiVersion: v1
22kind: Service
23metadata:
24  name: web-service
25spec:
26  selector:
27    app: web
28  ports:
29    - port: 80
30      targetPort: 80
31  type: ClusterIP

Securite

La sécurité regroupe l’ensemble des mécanismes et contrôles visant à protéger les systèmes, les applications et les données contre les accès non autorisés, les vulnérabilités et les attaques, en garantissant la confidentialité, l’intégrité et la disponibilité des informations.
1security:
2  authentication:
3    method: oauth2
4    token_expiration: 3600
5
6  authorization:
7    principle: least_privilege
8
9  secrets:
10    storage: vault
11    rotation: enabled
12
13  firewall:
14    default_policy: deny
15    rules:
16      - allow: 22
17      - allow: 80
18      - allow: 443

Bonnes pratiques

Les bonnes pratiques regroupent les standards et recommandations pour organiser, configurer et maintenir les systèmes et applications de manière fiable, efficace et sécurisée, facilitant la maintenance, la reproductibilité et la qualité des déploiements.
1best_practices:
2  code_quality:
3    linting: enabled
4    tests: mandatory
5
6  configuration:
7    version_control: git
8    reproducible_env: true
9
10  deployment:
11    automated: true
12    rollback_enabled: true
13
14  security_baseline:
15    authentication: oauth2
16    secrets_management: vault
17    principle_of_least_privilege: true

UNE TOUCHE D'HUMOUR ?

RESEAUX

GitLab QR CodeLinkedIn QR CodeLinketree QR CodeEmail QR Code

CONTACT

Je suis ouvert à toute opportunité !

Me contacter

© 2026 DENISSE MASSOUNDI Tous droits réservés.