Skip to content

Commit

Permalink
feat: add TODO, and gather info about etsy
Browse files Browse the repository at this point in the history
  • Loading branch information
sylvainmetayer committed Apr 24, 2019
1 parent 618fbab commit da48588
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 23 deletions.
23 changes: 21 additions & 2 deletions content/automatiser.tex
@@ -1,7 +1,11 @@
\todo{Automatiser un projet}
\todo{Automatiser un projet, 12 pages mini}

\subsection{Partie Management, gestion de projet}

\todo{Partie management, comment gérer un changement ?, 3 pages}

Conduite du changement, cela ne se fait pas en un jour.

Pré-requis, comment gérer la mise en place avec le management, ... Gérer les différentes personnes impliquées, ...

- Définir les personnes responsables du projet
Expand All @@ -14,6 +18,8 @@ \subsection{Partie Management, gestion de projet}

- First Way (DevOps handbook) : Gérer le flux de travail.

notion d'empilement, de "unplanned work" qui prends le temps de travail,

- Voir le travail à faire (Kanban)

- Limiter le travail en cours (WIP) pour éviter que tout soit en cours et que rien ne se termine
Expand All @@ -30,6 +36,10 @@ \subsection{Partie Management, gestion de projet}

\subsection{Localement, lors des phases de développement}

\todo{Localemnt, lors des phases de développement, 2 pages}

Permettre un démarrage rapide pour pouvoir se concentrer sur une fonctionnalité plutôt que sur le "ça marche pas parce que tu as pas installé ça". => Valeur ajoutée, performance, productivité

But : prévenir l'erreur avant qu'elle ne quitte le poste du développeur (et soit donc sur le dépôt Git).

- Linter
Expand All @@ -44,14 +54,20 @@ \subsection{Localement, lors des phases de développement}

\subsection{L'importance des tests}

\todo{Importance des tests, 1-2 pages}

Tout l'automatisation ne sert à rien sans une bonne campagne de tests, fonctionnel, unitaire, d'intégration, E2E, ...

Parler de Protractor et Squash sur \bv. Tests automatisés unitaires (phpunit) permettant à la plateforme d'intégration continue de vérifier la conformité du code par rapport aux attentes métiers.

différence entre intégration continue et tests unitaires (image du lavabo + séchoir à main côte à côte). Les tests unitaires vont tester la cohérence d'une partie du système tandis que l'intégration va tester la cohérence de l'échange entre divers systèmes / fonctions.

rapidité des tests à une importance pour un retour rapide aux dev

\subsection{Intégration et déploiement continu}

\todo{Intégration de déploiement continu, 3-4 pages}

Retour le plus rapide possible pour éviter des bugs en prod.

Vérifier les dépendances (failles, ...)
Expand All @@ -64,15 +80,18 @@ \subsection{Intégration et déploiement continu}

Jenkins, Travis, Déployer automatiquement à partir d'un push sur dev, en recette, intégration, staging, et lorsque tout passe, en production.

Infra As Code

\textit{Exemple : parler de NAQ Automatisation de la création de la base de données et de la restauration des données}

\subsection{Et la sécurité dans tout ça ?}

\todo{Sécurité, 1-2 page }

Gestion des tokens, gestion des comptes.
Un compte admin ou plusieurs sous compte avec des droits limités ? En cas d'intrusion, un attaquant a moins de chance de corrompre tout le système.
Infra : restriction d'accès (htaccess / firewall / ..?)


Attention à l'endroit ou sont fait les builds/tests. Il est préférable, pour des raisons de sécurité évidente d'utiliser un outil auto-hébergé, open source, plutôt que des outils clés en main, ou les données sont envoyées sur des serveurs inconnus.

Dans certains cas, l'application ne doit pas quitter le périmètre de l'entreprise,il faut donc avoir la maitrise totale de la chaine d'industrialisation
4 changes: 2 additions & 2 deletions content/conclusion.tex
@@ -1,8 +1,8 @@
\todo{Conclusion, 7 pages}

Quant à la conclusion, elle doit certes d’abord résumer le mémoire et identifier les apports et solutions du développement, mais aussi, fonction classique, ouvrir des perspectives et appeler de futures contributions. Pour la première des fonctions de la conclusion, il s’agit le plus clairement possible, d’indiquer dans quelle mesure le travail et/ou la réflexion de l’apprenant-stagiaire ou alternant a abouti à des résultats concrets, opérationnels, en tout état de cause constructifs.Pour la seconde des fonctions de la conclusion, l’élargissement, le rédacteur doit savoir faire le point objectivement et ouvrir les pistes de réflexions pour résoudre un problème ou améliorer des solutions. Selon le sujet, il sera utile de situer les implications possibles de la question traitée dans un domaine plus large que l’informatique.
- Pourquoi n'existe pas une solution unique ? => car chaque projet différent

La conclusion ne doit donc pas être bâclée; sa dimension sera d’environ un dixième du mémoire.
- Pourquoi complexité des processus de déploiement ? => car complexité application en hausse, et demande utilisateur avec toujours plus de simplicité, et donc complexe à réaliser. Passage d'une "application à la bonne franquette", à un vrai processus éprouvé pour durer

\subsection{Bénéfices}

Expand Down
23 changes: 16 additions & 7 deletions content/cycle_vie_application.tex
@@ -1,14 +1,7 @@
\todo{Cycle de vie d'une application, 8 pages}


Une sous partie par cycle de vie de l'application (démarrage, vente, avant-vente, maintenance...)

Lister étapes à faire, avant vente, appel d'offre, commerciale, gestion exigence et ce qui est développé, backlog lié au autres, livraison, qualité, exigences, organisation...


\subsection{Expression du besoin}


- A quoi va servir le produit, à quel besoin répond-il ?

- Etude de faisabilité / concurrence
Expand All @@ -19,6 +12,8 @@ \subsection{Expression du besoin}

- Collecte d'information sur la faisabilité / besoin du projet.

\todo{Expression du besoin}

\subsection{Planification}

- Définition d'un budget
Expand All @@ -35,6 +30,8 @@ \subsection{Planification}

- Définition des priorités : Must, Should, May en vue de réaliser un MVP

\todo{Planification}

\subsection{Réalisation}

- Réalisation graphique
Expand All @@ -45,6 +42,8 @@ \subsection{Réalisation}

- Développement de tests

\todo{Réalisation}

\subsection{Mise en recette}

- Premier contact de l'application avec le client
Expand All @@ -57,6 +56,8 @@ \subsection{Mise en recette}

- Environnement pré-production / intégration \& co avant mise en production.

\todo{Mise en recette}

\subsection{Mise en production}

- Choix de la date important (ex: Transport, pas 10j avant la rentrée et tous les parents qui renouvelent l'abonnement de leur enfant.)
Expand All @@ -69,6 +70,8 @@ \subsection{Mise en production}

- Besoin de métrique pour pouvoir déterminer le succès de l'application

\todo{Mise en production}

\subsection{Maintenance}

- Correction de bug au fur et à mesure
Expand All @@ -79,8 +82,12 @@ \subsection{Maintenance}

- Système de remontée d'erreur organisée

\todo{Maintenance}

\subsection{Évolution}

\todo{Evolution}

- Vie du projet

- Audit de sécurité, pour se tenir à jour
Expand All @@ -89,6 +96,8 @@ \subsection{Évolution}

\subsection{Fin de vie d'un projet / Décommissionnement}

\todo{Fin de vie d'un projet}

- Remplacement par une autre solution : transfert des données

- Débat légal sur la conversation ou non des données
Expand Down
20 changes: 13 additions & 7 deletions content/introduction.tex
@@ -1,7 +1,3 @@
\todo{Introduction, 5-6 pages}

\todo{Quand la partie introduction sera terminée, supprimer les parties.}

\subsection{Accroche}
L'automatisation a toujours été perçue comme un moyen de gagner en productivité, temps, et donc de rendre des projets toujours plus rentable.

Expand All @@ -18,6 +14,8 @@ \subsection{Accroche}
L'automatisation va permettre d'améliorer la fiabilité ainsi que la confiance des développeurs et clients dans le projet, puisque des tests automatisés ainsi qu'une chaine d'industrialisation complètement automatisée permet ainsi de déployer avec confiance une application.

Nous allons donc tenter de répondre à la problématique suivante :

\todo{Terminer l'accroche}

{\LARGE \problematique}

Expand All @@ -31,6 +29,8 @@ \subsection{Définition}
fait d'automatiser l'exécution d'une tâche, d'une suite d'opérations...
\end{quote}

\todo{Définir l'automatisation}

\subsection{Historique}

Idées :
Expand All @@ -43,11 +43,12 @@ \subsection{Historique}

- ...


\textit{L’introduction doit remplir une fonction traditionnelle : délimiter et présenter le projet ou la mission et son contexte professionnel, annoncer les parties principales du développement. L’introduction représente environ un dixième du mémoire. Il faut absolument insister sur la bonne impression qu’elle doit donner au lecteur comme premier et décisif contact avec le mémoire.}
\todo{Faire un historique de l'automatisation}

\subsection{Que peut-on automatiser ?}

\todo{Que peut-on automatiser ?}

\subsection{Pourquoi automatiser ?}

Quels en sont les avantages ?
Expand All @@ -56,6 +57,8 @@ \subsection{Pourquoi automatiser ?}

- éviter script executé avec mauvais paramètres

\todo{Pourquoi automatiser ?}

\subsection{Présentation entreprise \& mission}

L'entreprise dans laquelle j'effectue mon alternance depuis septembre 2017 est \onepoint.
Expand Down Expand Up @@ -113,5 +116,8 @@ \subsubsection{Contexte de l'alternance}

\textit{Elaborer un schéma directeur à partir d’orientations stratégiques} => Conduite de changement

\todo{Contexte alternance}

\subsection{Annonce du plan}

\subsection{Annonce du plan}
\todo{Annonce du plan}
26 changes: 21 additions & 5 deletions content/mise_en_oeuvre.tex
@@ -1,20 +1,36 @@
\subsection{Cas pratique}

Solutions existantes
\todo{Cas pratique, 5-6 pages}

Chef, puppet, ansible, jenkins, travis, docker, terraform, heroku, aws, ...
Exemple de transformation : Etsy

Combinaison d'outils qui répondent à un besoin, pattern.
- Vente de produit fait main

- Créé en 2003

Faire un état de l'art pratique, sur une société par exemple. (\textit{m6 cloud ?})
- Au début, livraison 2 fois / semaines, mais cela durait 4h.

Transformation d'une entreprise : Etsy
Besoin d'améliorer le processus pour pouvoir suivre la cadence.

Passage d'un développement lourd, non organisé à un déploiement de micro service, avec plusieurs MEP / jours.

\subsection{Difficulté d'avoir la panacée}

\todo{Difficulté d'avoir la panacée, 1-2 pages}

- pourquoi n'existe pas une solution unique ?

- Pourquoi complexité des processus de déploiement ?

- chaque outil répond à un besoin, mais existe-t-il un outil all-in-one ? (non)

Solutions existantes

Chef, puppet, ansible, jenkins, travis, docker, terraform, heroku, aws, ...

Combinaison d'outils qui répondent à un besoin, pattern.


\textbf{ATTENTION : NE PAS REPONDRE A LA QUESTIOn, SEULEMENT SOULEVER DES INTERROGATIONS POUR LE LECTEUR}

Cas pratique (démo entreprise migration) / Comment le généraliser (NE PAS RÉPONDRE A CETTE QUESTION). Cas précis et généraliser, parler des autres solutions. Difficulté d'avoir une solution clé en main, une solution à tout, la panacée
Expand Down

0 comments on commit da48588

Please sign in to comment.