Amélioration de l'environnement et des flux de travaux à idci-consulting – Introduction – Gestion de projet



Amélioration de l'environnement et des flux de travaux à idci-consulting – Introduction – Gestion de projet

0 0


Viva-Metinet

It's my viva

On Github Brah0um / Viva-Metinet

Amélioration de l'environnement et des flux de travaux à idci-consulting

Baptiste Bouchereau

Sommaire

  • Introduction
  • L'environnement de développement à IDCI
  • L'environnement de développement idéal
  • Solutions mises en place et démonstrations
  • Conclusion
  • Sites clients hors-lignes
  • Outils innaccessibles
  • 2 semaines d'arrêt

Introduction

  • Problème serveur le 26 décembre 2014.
    • Prise de décision immédiate
    • Arrêt de l'offre d'hébergement ⇨ Trouver des partenaires
    • Acquisition d'un serveur de développement ⇨ Remise en question des procédures et des outils utilisés

Introduction

Qu'est-ce qu'un environnement de développement?

Du matériel (local & distant)

Des logiciels

Des méthodes de travail

L'environnement de développement à IDCI

  • Basé sur ce que l'on voit ailleurs
  • Déploiement vers "des" serveurs

L'environnement de développement idéal

Gestion de projet

Gestion de projet

Qu'est ce que c'est?

  • Création, assignation de tâches
  • Planification
  • Notifications

Gestion de projet

Avant

Gestion de projet

Analyse

Recherche d'autres logiciel de gestion de projet

Gestion de projet

Actions à mener

Installer redmine sur le nouveau serveur de développement

Gestion du code

Gestion du code

Qu'est ce que c'est?

SCM - Logiciels de gestion de version

  • Historique des modifications
  • Travail en équipe
  • Accès concurrent

Gestion du code

Avant

  • Git avec Github
  • Svn avec Websvn

Analyse & recherche

  • On a deux outils pour une même fonction ⇨ On souhaite garder Git
  • On souhaite pouvoir héberger du code source privé ⇨ Rechercher des alternatives à Github

Gestion du code

Actions à mener

Migration des anciens projets Subversion sous Git avec git-svn

Installation de Gitlab

Intégration continue

Intégration continue

Qu'est ce que c'est?

Amélioration de la qualité du code source

  • Lancement de tâches lors de la réception de modification de code
  • ⇨ Détection rapide des erreurs
  • ⇨ Qualité du code mesurable
  • ⇨ Automatisation de la livraison

Intégration continue

Qu'est ce que c'est?

Intégration continue

Avant

Pas d'outils d'intégration continue

Intégration continue

Analyse & recherche

Intégrer gitlab avec un outil d'intégration continue

Intégration continue

Actions à mener

Mettre en place Gitlab-CI

Base de connaissance

Base de connaissance

Qu'est ce que c'est?

  • Partage de connaissance
  • Permet de regrouper des données utiles au quotidien et des savoirs faire
  • Se construit en équipe

Base de connaissance

Avant

Pas d'outils dédié à la documentation

Base de connaissance

Analyse & recherche

Trouver un outil en accord avec nos exigences

Base de connaissance

Actions à mener

Installer Dokuwiki

Partage de fichiers

Partage de fichiers

Qu'est ce que c'est?

  • Faciliter le partage de fichiers
  • Ordonner les fichiers
  • Synchronisation

Partage de fichiers

Avant

Pas d'outils dédié au partage

  • Fonctionnement par mail
  • Partage sur le réseau de manière peu organisé

Partage de fichiers

Analyse & recherche

Trouver un outil en accord avec nos exigences

Partage de fichiers

Actions à mener

Installer Owncloud

Configuration du poste de travail

Configuration du poste de travail

Qu'est ce que c'est?

Installer les logiciels nécessaire au développement d'une application

  • Récupérer le code source
  • Modifier la configuration du serveur web
  • Ajouter une nouvelle entrée DNS
  • Créer une nouvelle base de données
  • Importer les données
  • Installer les paquets nécessaires au projet
  • Modifier la configuration de projet
  • Initialiser le projet
  • ...

Configuration du poste de travail

Avant

Installation manuelle

Configuration du poste de travail

Analyse

  • Long à mettre en place
  • Complexe
  • Sujet à de nombreuses erreurs

Configuration du poste de travail

Recherche

Virtualisation

Avantage

  • Facile à manipuler
  • Installation facile
  • Simuler un environnement de production est simple

Inconvénients

  • Performances amoindries
  • Librairies non mutualisées
  • La configuration reste fastidieuse

Configuration du poste de travail

Recherche

Docker

Configuration du poste de travail

Actions à mener

Automatisation avec Docker

Démonstration

Déploiement

Déploiement

Qu'est ce que c'est?

Aboutissement du travail avec la livraison du produit

Déploiement

Avant

Déploiement

Analyse

Conséquence : impossible à réutiliser, long à mettre refaire l'architecture, pas de redondance
  • Trop spécifique à notre architecture serveur.
  • Trop sensible aux problèmes matériels

Déploiement

Recherche

Déploiement avec Ansible

Outils CM (Configuration management)

  • Courbe d'apprentissage intéressante
  • Pas d'installation nécéssaire sur les serveurs
  • Configuration réutilisable

Déploiement

Actions à mener

Créer les fichiers de configuration pour les déploiements en pre-prod et en prod

Démonstration

L'hébergement

Qu'est ce que c'est?

  • Un serveur materiel
  • Un interlocuteur avec qui travailler
  • Des méthodes de travail à établir

L'hébergement

Avant

Serveur dédié chez OVH

L'hébergement

Analyse

  • Faible proximité avec notre hébergeur
  • Manque de connaissance sur la supervision matérielle
  • Modèle non rentable : 1440€/an, 20 jours/an soit 72€/jour

L'hébergement

Recherche

Souhaits

  • Info-gérance
  • Proximité géographique
  • Facturation directe par le client
Proposition de plusieurs offres pour nos clients Possible grâce à Ansible (travailler de la meme manière sur plusieurs machines)

L'hébergement

Actions à mener

Prise de contact avec 3 hébergeurs

Actuellement en cours de discussion

Conclusion personnelle

  • De nombreuses connaissances et compétences techniques acquises
    • Docker
    • Ansible
    • Gitlab & Gitlab-CI
  • Compétences de communication mise à profit
  • Compétences pédagogiques

Ces nouvelles méthodes de travail font leur preuves

Elles restent encore très récentes et vont demander un temps de test

Conclusion globale

  • Outils adoptés et utilisés tous les jours
  • Méthodes de travail encore très récentes
  • Seul le déploiement en production reste à tester
  • Migration des sites prévue au 31 juillet 2015

Ces nouvelles méthodes de travail font/doivent encore faire leur preuves

Vont demander en temps de test

Merci de votre écoute

Avez vous des questions?

1 / 55
Amélioration de l'environnement et des flux de travaux à idci-consulting Baptiste Bouchereau