Dans cette vidéo, je vous explique l'essentiel à retenir des microservices : - Qu'est que l'architecture en microservices? - Quels sont les principes clés des microservices? - Quelles différences entre applications en microservices et applications monolithes? - Pourquoi passer aux microservices ? - Comment travailler avec des microservices? - Quels sont les liens entre microservices et technologie de containers (ex: Docker) ? - Comment les microservices permettent le déploiement continu? - En quoi l'adoption des microservices permet-elle d'avoir un meilleur time-to-market?
N'hésitez pas à poser vos questions, donner des idées de vidéos ou à donner votre avis dans les commentaires.
Bonjour! Bienvenue dans cette nouvelle vidéo!
Aujourd'hui, on se retrouve pour parler microservices
Les microservices, c'est un peu le sujet tendance du moment
Google, Amazon, Facebook, Airbnb, Twitter, Netflix
Ils ne jurent tous plus que par ça
Et si vous avez cliqué sur cette vidéo, c'est que vous aussi vous voulez en savoir plus sur les microservices.
Ca tombe bien car je vais vous expliquer dans cette vidéo
l'essentiel à retenir sur les microservices.
Tout ça c'est maintenant et c'est parti mon cookie!
Pour vous expliquer les microservices, je vais prendre l'exemple...
...Des power rangers! Oui vous avez bien entendu!
Et ce qui va nous intéresser plus particulièrement,
c'est que chacun des parents rogers possède un zord
Et le zord est une espèce de char d'assaut géant
que le power rangers peut contrôler et chaque zord possède un
pouvoir différent et spécifique lié à son power ranger
Et à la fin de chaque épisode, les power rangers fusionnent leur zord
pour former le megazord et le megazord c'est une espèce de robot de
combat ultime formé par les différents zords
chaque zord représente alors une partie du megazord avec un rôle spécifique
Et l' architecture microservices c'est la même chose
Le megazord c'est une application et cette application est composé des
différents zords qui sont donc les microservices.
Pour une définition un peu plus sérieuse de l'architecture microservices, on peut
dire que c'est une approche d'architecture logicielle où une
application est décomposée en plusieurs petits services et ces services sont
spécialisés dans une seule tâche. A noter que quand on parle de service,
il faut comprendre service métier, c'est à dire un groupe de services techniques
qui fournissent une fonctionnalité avec un sens ce métier
Dans l'exemple d'un site de vente en ligne, on aura par exemple des microservices
pour les fonctionnalités de panier, de page d'accueil, d'historique ou d'inventaire, etc.
Ensuite, larchitecture microservices a été inventé pour répondre aux
problèmes des applications monolithes
Une application monolithe a pour ambition de
traiter toutes les demandes possible et de répondre à un maximum de cas d'usage
sauf qu'avec le temps, les applications ont tendance à grossir de plus en plus
puisqu'elles intègrent toujours plus de nouvelles fonctionnalités mais en
supprimant rarement les anciennes fonctionnalités même lorsqu'elles
deviennent inutiles ou obsolètes
et avec le temps, les différentes briques
développe des interdépendances entre elles
Progressivement la quantité de code augmente
Et ce code devient de plus en plus complexe et il devient
alors impossible d'avoir en tête un modèle global du projet
On se retrouve alors devant une application difficile
à maîtriser et à faire évoluer. Enfin, plus un projet est gros et plus,
il est critique pour l'entreprise et moins on va prendre de risque pour tester des nouveautés
Pour une application monolithe,
on va donc préféré la stabilité à l'innovation et la réponse de
l'architecture microservices à ce problème est simple, il suffit de découper
l'application en différents modules fonctionnels, en microservices donc.
Chaque microservice exécute une partie spécifique et unique de l'application
Ces services peuvent être accédés par le client via l'API du microservice
Le but de l'architectur microservices est de redonner un maximum
d'agilité et d'évolutivité à une application.
Côté technique, l'architecture microservices est très souvent couplée à la
technologie des conteneurs et notamment à docker,
Si vous n'êtes pas familier avec les conteneurs et docker
aller voir ma vidéo dédiée sur le sujet
prenez juste cinq minutes pour la regarder et vous comprendrez
l'essentiel des conteneurs et de Docker
Ici, le principe est d'avoir un conteneur par unité de microservice
Ainsi, chaque microservice à son propre environnement d'exécution
pour héberger son code avec les conteneurs
Il est donc très facile
en fonction du besoin d'adapter le nombre de micro service à la hausse comme à la baisse
Si un service est plus demandé lors d'un pic de charge
Il suffit de créer plus de conteneurs hébergeant ce microservice
A contrario, quand la demande de ce service diminue,
il suffit de ne garder que le minimum de microservice pour couvrir la demande
Dans l' architecture microservices, il suffit juste d'adapter le nombre de ce
micro services aux besoins alors que dans une application monolithe,
il aurait fallu modifier la totalité de l'application à cause des interdépendances
Et c'est en étant couplé avec l'utilisation des conteneurs,
que chaque micro service devient autonome vis-à-vis des autres microservices,
ce qui veut dire qu'avec une application découpée en microservices,
il est plus simple de cibler les différentes parties impactées lors d'une évolution
ce qui facilite la modification des parties concernées
sans prendre de risque pour le reste de l'application non impliqué.
Les mises à jour et les nouvelles fonctionnalités peuvent être déployées
beaucoup plus facilement et rapidement rendant le déploiement continu possible
Ensuite, concernant l'organisation humaine,
la taille des projets est limitée à une équipe de quelques personnes.
Chaque équipe est alors autonome et va gérer son organisation et sa base de code
Cette équipe est alors libre des choix techniques
Tout ce que l'on vient de voir en termes
de bonnes pratiques sur les microservices a une finalité :
permettre à l'entreprise d'avoir un avantage concurrentiel : Un time to market rapide!
Le time to market, c'est le délai
entre la naissance d'une idée et son lancement sur le marché
Avoir un time to market rapide est décisif parce que cela veut dire
que l'entreprise est capable de lancer de nouveaux produits, d'adapter ses produits
aux besoins du marché, d'intégrer les dernières innovations, tout ça rapidement
Et évidemment plus le time to market est rapide, plus elle a
des chances de damer le pion à ses concurrents et de gagner des nouvelles parts de marché
Et c'est justement la promesse des microservices puisque
les microservices permettent de déployer plus rapidement et plus facilement
Enfin, dernier point d'attention :
Plus les itérations sont nombreuses et rapides
notamment dans le cadre d'un déploiement continu et plus les différentes équipes
vont devoir se synchroniser rapidement ce qui va demander la mise en place
d'une organisation favorisant les échanges, la communication et la
coordination entre les différentes équipes,
mais l'entreprise doit aussi aligner les priorités et les objectifs de ces
différentes équipes sur les enjeux business de l'entreprise
Cette vidéo sur les microservices est fini j'espère qu'elle vous a plu
et qu'elle vous a aidé! Si c'est le cas comme d'habitude, mettez un pouce bleu
Donnez moi votre avis dans les commentaires
Abonnez-vous et nous on se dit à bientôt! Ciao!