SECTION 1 : CONCEPTS CLES
-Analyse : c'est une méthode systémique qui
s'appuie sur la théorie des systèmes en vue d'une approche
systémique et globale d'un système d'information d'une
organisation. En génie logiciel, c'est l'ensemble des méthodes,
techniques et outils de production et maintenance de composants logiciel de
qualité.
-Conception : est une phase de cycle de vie d'un
logiciel, un ensemble d'activités qui à partir d'une demande
d'informatisation d'un processus permettent la conception, l'écriture et
la mise au point d'un logiciel. En génie logiciel, concevoir un logiciel
revient à organiser son architecture qui vient après analyse des
exigences fonctionnels.
-Développement : consiste à concevoir et
maintenir le fonctionnement des logiciels. Cette activité recouvre les
étapes d'étude, de conception, de transformation, de mise au
point et de maintenance des logiciels.
-Les oeuvres scientifiques : dans certaines disciplines,
le plus souvent des sciences dures, une oeuvre généralement
écrite par un scientifique, un chercheur ou un professeur, ou parfois
par un non scientifique et qui intervient dans le processus de diffusion des
connaissances en traitant des sujets de différentes disciplines
scientifiques. Autrement dit, les articles scientifiques publiés par les
chercheurs dans les revues scientifiques.
I.1.1. Les micros services
Les micros services désignent à la fois une
architecture et une approche moderne du logiciel dans laquelle le code
d'application est livré en petits morceaux gérables,
indépendants les uns des autres.[1]
Figure 1 :
Découpage d'une application en petits services
L'architecture Micro services propose une solution en principe
simple : découper une application en petits services, appelés
Micro services, parfaitement autonomes qui exposent une API (Application
Programming Interface) que les autres Micro services pourront consommer alors
qu'une architecture monolithe est une application dont l'ensemble du code et
des fonctionnalités sont implémenté dans un seul
programme.
Leur petite échelle et leur isolement relatif peuvent
entraîner de nombreux avantages supplémentaires, tels que :
· Les micros services définissent des API qui
exposent leurs fonctionnalités à n'importe quel client. Les
clients pourraient même être d'autres applications.
· Pour communiquer entre eux, les micro services
d'une application utilisent le modèle de communication
requête-réponse. L'implémentation typique utilise des
appels API REST basés sur le protocole HTTP.
· Chaque micro service peut être
développé à l'aide d'un langage et d'un cadre de
programmation qui conviennent le mieux au problème que le micro service
est conçu pour résoudre.
· Chaque micro service peut utiliser sa propre base
de données.
· Chaque micro service est déployé
indépendamment, sans affecter les autres micros services de
l'application.
· Les micros services sont simples, ciblés et
indépendants. L'application est donc plus facile à entretenir.
· Les fonctionnalités de l'application sont
réparties entre plusieurs services. Si un micro service échoue,
la fonctionnalité offerte par les autres micro services continue
d'être disponible.
· Caractéristiques du micro service[2]
Fonctionnalité unique
? Un micro service doit réaliser une seule
fonctionnalité de l'application globale
(Une tache bien précise)
? Un micro service peut contenir toutes les couches
logicielles (IHM [ev frontEnd], middleware et base de données)
? Un micro service possède un contexte
d'exécution séparé des autres (exemple : Machine virtuelle
ou conteneur
Flexibilité technologie : Utiliser les bons langages et
Framework selon la Fonctionnalité à réaliser.Equipe de
développement réduite
? Chaque micro service à sa propre équipe de
développement
? L'équipe de développement orientée
fonctionnalité (spécialisée)=>développement
agile et rapide.
? Développeurs backend
? Développeurs web
? Administrateurs bases de données
Déploiement ciblé
? Evolution d'une certaine partie sans tout
redéployer
? Un seul livrable à partir d'un seul code source
? Moins de coordination entre équipe quand il y a un
seul déploiement
? Déploiement plus fréquent
? Moins de risque
? Plus rapide
? Faciliter les mises à jour : l'entreprise est capable
de faire évoluer son
Application de façon très fréquente et de
répondre rapidement aux nouvelles [3]
|