[:fr]Voici deux solutions pour la création de plateforme/infrastructure pour le développement web

Source : http://igm.univ-mlv.fr/~dr/XPOSE2012/Integration%20Continue/concept.html#1

Faire un plan avec les trucs ci-dessous : https://www.padok.fr/blog/outils-devops

Outil Devops

gestion de code source :

Git et Subversion : historiques

Les tests d’intégration continue / déploiement continu

Jenkins : Plus utilisés

Conteneurs

  • Docker est
  • RKT

HAproxy : load balancing

Automatisation et gestion de configuration : Ansible : gestion de la configuration des serveurs esclaves ;

Gestion de projet

Jira est un outil de gestion de projet Agile qui permet de planifier, suivre et gérer les projets de développement logiciel. Avec Jira, chaque membre de l’équipe de développement peut suivre l’avancée des projets et définir les priorités du sprint.

D’un autre côté, Trello se démarque par son intuitivité et sa simplicité pour gérer les différentes tâches du projet.

Gestion des secrets

Avec le besoin d’avoir une sécurisation toujours plus performante, de nouveaux outils de gestion des secrets apparaissent comme Vault. Vault permet une organisation des secrets statique et dynamique.

Secrets, le service de gestion des secrets de Kubernetes est une alternative à Vault.

Kubernetes

Packer : Voir ici : https://wooster.checkmy.ws/2014/06/cms-dev-environnement/

Soit :

  • Packer
  • Vagrant cloud

L’exécution d’un template Packer fait appel à 3 composants :

  • des composants “Builders” permettant de piloter la machine virtuelle qui va être créée en fonction du fournisseur
  • des composants “Provisioners” servant à préparer la configuration de la machine
  • des composants optionnels “Post-Processor” permettant de définir des formats de sortie.

Exemple :

https://github.com/geerlingguy/packer-debian-10
{
  "variables": {
  },
  "builders": [{
    "type": "virtualbox-iso",
    "name": "trusty64",
    "guest_os_type": "Ubuntu_64",
    "iso_url": "http://releases.ubuntu.com/trusty/ubuntu-14.04.3-server-amd64.iso",
    "iso_checksum": "01545fa976c8367b4f0d59169ac4866c",
    "iso_checksum_type": "md5",
    "guest_os_type": "Ubuntu_64",
    "http_directory": "http",
    "disk_size": "20000",
    "hard_drive_interface": "sata",
    "ssh_username": "vagrant",
    "ssh_password": "vagrant",
    "ssh_wait_timeout": "1200s",
    "shutdown_command": "echo 'vagrant' | sudo -S shutdown -P now",
    "boot_command": [
        "<esc><esc><enter><wait>",
        "/install/vmlinuz noapic ",
        "preseed/url=http://:/preseed.cfg ",
        "debian-installer=en_US auto locale=en_US kbd-chooser/method=USA ",
        "hostname= ",
        "fb=false debconf/frontend=noninteractive ",
        "keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
        "keyboard-configuration/variant=USA console-setup/ask_detect=false ",
        "netcfg/choose_interface=auto ",
        "initrd=/install/initrd.gz -- <enter>"
    ],
    "vboxmanage": [
        ["modifyvm", "", "--memory", "512"],
        ["modifyvm", "", "--cpus", "1"],
        ["modifyvm", "", "--natpf1", "ssh,tcp,127.0.0.1,2222,,22"],
        ["modifyvm", "", "--macaddress2", "auto"],
        ["modifyvm", "", "--nic2", "hostonly"],
        ["modifyvm", "", "--hostonlyadapter2", "vboxnet2"]

    ]
  }],
    "provisioners": [{
    "type": "shell",
    "execute_command": "echo 'vagrant' |  sudo -E -S sh ''",
    "script": "./post-install.sh"
  }],
  "post-processors": [{
    "type": "vagrant",
    "compression_level": "4",
    "keep_input_artifact": true
  }]
}

Le procéder

cisecuritychecking2

Logiciel

Sonarqube : Lien

Jenkins : Lien

Source : https://fredix.xyz/2019/05/build-push-deploy/

  1. Ecrire un Dockerfile
  2. Construire une image
  3. La publier sur un registre (le plus souvent le hub docker)
  4. Ecrire un docker-compose pour l’instancier sur son serveur.

L’étape 1 peut être longue selon la complexité du projet, mais comme ce n’est pas le sujet ici j’ai pris un projet basique.
L’étape 2 peut être faite sur un PC/VM Linux sauf si l’architure cible n’est pas du x86. Dans ce cas il faudra construire l’image sur un raspberry PI (si la cible est de l’ARMv7) ou un serveur ARM64v8 chez scaleway.
L’étape 3 devra être faite depuis la machine où l’on a construit l’image.
L’étape 4 sur son serveur Docker ou un des managers du Docker swarm.

Nexus : Lien

Solution basique ( Sans intégration continue )

Solution évolué ( Avec intégration continue )

Jenkins

https://code.tutsplus.com/tutorials/introduction-to-jenkins-an-open-source-continuous-integration-server–cms-23879[:en]Voici deux solutions pour la création de plateforme/infrastructure pour le développement web

Source : http://igm.univ-mlv.fr/~dr/XPOSE2012/Integration%20Continue/concept.html#1

 [:]