Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Introduction générale
Dans le monde de l'informatique, tout évolue à vitesse grand V. Les
applications existantes doivent constamment être adaptées, à un rythme
toujours plus élevé. Et force est de constater que bien souvent des
complications apparaissent en outre souvent entre les développeurs et les
équipes opérationnelles. L’approche DevOps aide à pallier à ces
problèmes. Mais quelles différences entre les équipes de développement
et opérationnelles ? Qu'est-ce que le DevOps ? Quelles sont ses origines,
ses principes ? Et à quel point est-il utile pour votre entreprise ? Tels sont
les points qui feront l'objet de cet article.
1
Introduction générale
2
Introduction générale
Chapitre 1 :
Contexte de projet
Introduction générale
1.1 Introduction
Ce chapitre sera une présentation générale pour décrire le fonctionnement de
l'entreprise qui nous accueillait pour passer le stage de fin d’année ainsi le contexte général
de ce dernier.
Dans ce cadre, nous avons réalisé une recherche qui nous a apporté une foule d’informations
venant s’ajouter à la présentation globale suivante.
Nom Matious
Date de création 2016
Fondateurs Mati MOUNI, Youssef BOUSSAFA
Directeur général Mati MOUNI
Siège social Mohammedia, Maroc
Domaine d’activité Marketing & Advertising
Statut légal S.a.r.l.
Effectif De 10 à 20 salariés
Stratégie et conseil :
- Stratégies de Branding et de communication BTOC ou BTOB.
- Stratégie et mise en place d’écosystèmes digitaux.
Introduction générale
Le rôle des Devs : Par Devs, on désigne toute personne impliquée dans la
conception, le développement et les tests d'un logiciel avant qu’il n’entre entre
production : les développeurs, les gestionnaires de produits, les testeurs, les
Product Owners et les QAs.
Introduction générale
DevOps visent par ses pratiques à mettre fin à cette bataille entre Dev et Ops
– pour parvenir à l’équilibre entre l’innovation et la stabilité. Dev et Ops
doivent comprendre les bénéfices des paradigmes DevOps. Ils sont appelés à
changer juste assez pour commencer à travailler ensemble et à trouver le bon
équilibre entre Dev et Ops dont leur organisation a besoin, et de s’améliorer
à partir de là.
Il se définit par :
Culture
Automation
Lean
Measurement
Sharing
CONCLUSION
DevOps est une approche relativement nouvelle qui comporte un grand nombre
d'avantages et qui innove sans cesse. il est possible de la mettre en place dans
toutes les entreprises quelque soit le secteur d'activité. Néanmoins il faudra d'abord
passer par une phase préalable d'analyse et d'audit afin de voir si son
implémentation impactera significativement le rendement d'une entreprise.
l’application salis-stable est une application développer par node JS en back end et Vue JS en
front end et mongo db en gestion de base de donnée .
On vas créer une image docker pour cette application puis on vas automatiser l’intégration
en liant mon compte GitHub avec la Repository docker a fin d’automatiser la création
d’image d’une manière continue .
A la fin on vas déployer l’image dans un cluster de Kuberneties .
Ce délai s’explique par le fait que c’est un processus séquentiel, impliquant différentes
équipes et qu’à chaque étape, il faut synchroniser les acteurs, faire des demandes, les
planifier, tout cela générant des délais.
1.5 Conclusion
Afin de se situer dans le contexte du projet, nous avons introduit l’organisme d’accueil
pour définir le cadre général de ses activités, après nous avons décortiqué les finalités du
projet en présentant l’objectif final, et les outils qui nous a permis d’aboutir à cet objectif.
Le chapitre suivant discutera sur la définition de la technologie BIM, ses types, ses
avantages sur l’entreprise ainsi la focalisation sur le BIM GEM et son rôle dans l’exploitation
et la maintenance.
Introduction générale
Chapitre 2 :
Conteneurisation avec docker
Introduction générale
2.1 Introduction
Ce chapitre introduit le concept de conteneurisation on passe par une définition
générale de cette technologie, ses différents outils. Et on se termine par la creation de l’image
de l’application .
2.2 La conteneurisation
2.2.1 Définition de la conteneurisation
Docker
Docker est la solution de conteneurisation la plus utilisée aujourd’hui. Il utilise
une Interface de programmation « Libcontainer » pour démarrer, gérer et arrêter
des conteneurs. Il est basée sur le fonctionnement de LXC et y ajoute des capitée
de niveau supérieur. La gestion des versions permet de comprendre certains
problèmes, il est possible de revenir à une version antérieure. De plus, les
conteneurs peuvent servir d’images à un autre, donc le partage de conteneurs en
public est possible. Ce service en ligne est appelée Docker Hub, il contient des
images de conteneurs, ce qui permet aux utilisateurs de faire des échanges. Cela
rend l’installation d’un conteneur extrêmement facile (aussi simple qu’un
téléchargement sur internet).
Docker permet donc de facilitée l’installation d’application dans des conteneurs
et la mise à jour, mais c’est le noyau linux qui s’occupe de la création de
conteneurs.
Docker est disponible sur linux comme sur Windows.
Introduction générale
2.2.4 Docker
Introduction générale
Isoler de l’environnement
La plateforme Docker
Les alternatives
Docker n’est pas la seule plateforme de container sur le marché,
mais elle demeure la plus utilisée. Son principal concurrent est
CoreOS rkt. Cet outil profite du support de SELinux, ce qui le
sécurise. Parmi les autres plateformes majeures, on compte
Canonical LXD, ou encore Virtuozzo OpenVZ, la plus ancienne
plateforme de container.
On peut aussi évoquer l’écosystème d’outils qui
fonctionnent avec la plateforme pour des tâches telles
que le clustering ou la gestion de containers. On peut
citer comme exemple Kubernetes, l’outil de Container
Orchestration open source créé par Google.
Introduction générale
1.Introduction :
A. Conditions préalables :
Accès à une machine locale Ubuntu 18.04 ou à un serveur de
développement en tant qu'utilisateur non root avec des privilèges sudo...
(ou installé docker CLI sur mac ou windows )
Docker installé sur votre serveur,.
Docker Compose installé sur votre serveur.
Pour commencer, nous irons chercher l'application de démonstration dans notre répertoire
GitHub privée.
et on vas créer en premier lieu créer les image docker de chaque serveur séparément :
a.Back end :
Introduction générale
b.Frontend
2.3 Conclusion
Jghejdkkl ;slx..
Introduction générale
Chapitre 3 :
Automatisation avec Jenkins
3.1 Introduction
Notre projet de fin d’étude sera basé sur la gestion, la maintenance et l’exploitation
d’un bâtiment dans un processus BIM et sa relation avec TwinOps. C’est pour cela on va
expliquer dans ce chapitre les différentes notions de GEM et les outils exploitables.
L'Intégration Continue, dans sa forme la plus simple, se compose d'un outil qui surveille les
modifications de code dans votre gestionnaire de configuration. Dès qu'un changement est détecté, cet
Introduction générale
outil va automatiquement compiler et tester votre application. Si la moindre erreur arrive alors l'outil
va immédiatement avertir les développeurs afin qu'ils puissent tout de suite corriger le problème.
Mais l'Intégration Continue est bien plus que cela. L'Intégration Continue peut aussi suivre la santé de
votre projet en surveillant la qualité du code et les métriques de couverture et ainsi aider à maintenir la
dette technique à un niveau bas et à abaisser les coûts de maintenance. Rendre visible publiquement
les métriques de qualité de code encourage les développeurs à être fiers de la qualité de leur code et à
essayer de toujours l'améliorer. Combinée à une suite de tests d'acceptance automatisés, l'IC peut aussi
se transformer en outil de communication en affichant une image claire de l'état des développements
en cours. Et elle peut simplifier et accélerer la livraison en vous aidant à automatiser le processus de
déploiement, vous permettant de déployer la dernière version de votre application soit
automatiquement soit d'un simple clic.
Dans le fond, l'Intégration Continue c'est réduire les risques en fournissant des retours rapides. En
premier lieu, de par sa conception, elle permet d'identifier et de corriger les problèmes d'intégration et
les regressions plus rapidement ce qui permet de livrer plus facilement et avec moins de bogues. En
donnant une meilleure visibilité sur l'état du projet à tous les membres de l'équipe, techniques comme
non-techniques, l'Intégration Continue facilite la communication au sein de l'équipe et encourage la
collaboration pour résoudre les problèmes ainsi que l'amélioration du processus. Et, en automatisant le
processus de déploiement, l'Intégration Continue vous permet de mettre votre logiciel dans les mains
des testeurs et des utilisateurs finaux plus rapidement, avec plus de fiabilité et avec moins d'efforts.
Ce concept de déploiement automatisé est important. En effet, si vous poussez ce concept de
déploiement automatisé à sa conclusion logique, vous pourriez mettre en production tout build qui
passerait sans encombre les tests automatisés nécessaires. Cette pratique de déployer en production
tous les builds ayant réussi est appelée communément Déploiement Continu.
Cependant, une approche pure du Déploiement Continu n'est pas toujours souhaitable. Par exemple,
de nombreux utilisateurs n'apprécieraient pas d'avoir une nouvelle version disponible plusieurs fois
par semaine et préféreraient un cycle de livraison plus prévisible (et transparent). Des considérations
commerciales et marketing peuvent aussi entrer en compte pour déterminer quand une nouvelle
version doit être déployée.
La notion de Livraison Continue est très proche de cette idée de Déploiement Continu en prenant en
compte ces considérations. Lors d'une Livraison Continue tout build qui a réussi à passer les tests
automatisés pertinents et les contrôles qualité peut virtuellement être déployé en production au moyen
d'un processus lancé par un simple clic, et ainsi se retrouver dans les mains de l'utilisateur final en
quelques minutes. Cependant, ce processus n'est pas automatique : c'est au métier, plutôt qu'à
l'Informatique de décider quel est le moment opportun pour livrer les dernières modifications.
Ainsi les techniques d'Intégration Continue, et plus particulièrement le Déploiement Continu et la
Livraison Continue, permettent d'apporter la valeur à l'utilisateur final plus rapidement. Combien de
temps faut-il à votre équipe pour mettre une petite modification du code en production ? Dans ce
temps quelle est la part des problèmes qui auraient pu être corrigés plus tôt si vous aviez su quelles
modifications faisait Joe au bout du couloir ? Quelle part est prise par le pénible travail des équipes de
la qualité pour tester manuellement ? Combien d'étapes manuelles, dont les secrets ne sont connus que
de quelques initiés seulement, sont nécessaires à un déploiement ? L'Intégration Continue n'est pas la
solution miracle, elle permet de rationaliser certains de ces problèmes.
Mais l'Intégration Continue est tout autant une mentalité que des outils. Pour tirer un maximum de
profit de l'IC, une équipe doit adopter un comportement IC. Par exemple, vos projets doivent avoir un
build fiable, reproductible et automatisé, sans intervention humaine. La correction des builds en erreur
devrait être une priorité absolue, et ne devrait pas être oubliée dans un coin. Le processus de
déploiement devrait être automatisé, sans étape manuelle. Et puisque la confiance que vous mettez
Introduction générale
dans votre serveur d'intégration dépend en grande partie de la qualité de vos tests, l'équipe doit mettre
l'accent sur la qualité des tests et des pratiques associées.
3.3 Jenkins
3.3.1 Introduction
Tout d'abord, Jenkins est facile à utiliser. L'interface utilisateur est simple, intuitive et
visuellement agréable, et Jenkins dans son ensemble a une très petite courbe
d'apprentissage. Comme nous le verrons dans le chapitre suivant, vous pouvez démarrer
avec jenkins en quelques minutes.
Cependant jenkins n'a pas sacrifié puissance ou extensibilité : il est aussi extrêmement
flexible et s'adapte facilement à vos moindres désirs. Des centaines d'extensions open
source sont disponibles, et de nouvelles aparaissent toutes les semaines. Ces extensions
couvrent tout : les outils de gestion de configuration, les outils de build, les métriques de
qualité de code, les annonceurs de build, l'intégration avec des systèmes externes, la
personalisation de l'interface utilisateur, des jeux et bien d'autres fonctionnalités encore.
Les installer est simple et rapide.
Enfin, mais ce n'est pas négligeable, une bonne part de la popularité de Jenkins vient de
la taille et du dynamisme de sa communauté. La communauté Jenkins est immense,
dynamique, réactive et c'est un groupe accueillant, avec ses champions passionnés, ses
listes de diffusion actives, ses canaux IRC et son blog et son compte twitter très bruyants.
Le rythme de développement est très intense, avec des livraisons hebdomadaires
comportant les dernières évolutions, corrections et mises à jour des extensions.
Cependant, Jenkins répond tout aussi bien aux attentes des utilisateurs qui ne souhaitent
pas mettre à jour toutes les semaines. Pour ceux qui veulent un rythme moins trépidant, il
existe une version Long-term Support, ou LTS. Il s'agit d'un ensemble de versions qui
sont à la traine par rapport à la toute dernière en termes de nouveautés mais qui apportent
plus de stabilité et moins de changements. Les versions LTS sortent environ tous les trois
mois, les correctifs importants y sont intégrés. Ce concept est identique
aux versions Ubuntu LTS .
3.3.2 historique
Introduction générale
En 2009, Oracle racheta Sun. Vers la fin 2010, des tensions apparurent entre la communauté
de développeurs d'Hudson et d'Oracle, dont la source était les problèmes de l'infrastructure
Java.net, aggravées par la politique d'Oracle au sujet de la marque Hudson. Ces tensions
révélaient de profonds désaccords sur la gestion du projet par Oracle. En effet, Oracle voulait
orienter le projet vers un processus de développement plus controlé, avec des livraisons moins
fréquentes, alors que le coeur des développeurs d'Hudson, mené par Kohsuke, preferait
continuer à fonctionner selon le modèle communautaire ouvert, flexible et rapide qui avait si
bien fonctionné pour Hudson par le passé.
En Janvier 2011, la communauté des développeurs Hudson vota pour renommer le projet en
Jenkins. Par la suite ils migrèrent le code originel d'Hudson vers un nouveau projet Github et
y poursuivirent leur travail. La grande majorité des développeurs du coeur et des plugins leva
le camp et suivit Kohsuke Kawaguchi et les autres principaux contributeurs dans le camp de
Jenkins, où le gros de l'activité de développement peut être observée aujourd'hui.
Après ce fork, la majorité des utilisateurs suivit la communauté des développeurs Jenkins et
passa à Jenkins. Au moment où ces lignes sont écrites, les sondages montrent qu'environ 75%
des utilisateurs d'Hudson sont passés à Jenkins, 13 % utilisent encore Hudson et 12% utilisent
Jenkins et Hudson ou sont en cours de migration vers Jenkins.
Cependant, Oracle et Sonatype (la compagnie derière Maven et Nexus) ont poursuivi leur
travail à partir du code d'Hudson (qui est maintenant lui aussi hébergé chez GitHub
à https://github.com/hudson), mais selon un axe différent. En effet, les développeurs de
Sonatype se sont concentrés sur des modifications dans l'architecture, notamment sur
l'intégration avec Maven, sur le framework d'injection de dépendances, et sur l'architecture
des plugins.
.
Introduction générale