Reconstruire une plate-forme d'infrastructure informatique d'entreprise est une tâche complexe. La refonte de la plateforme est souvent déclenchée par un ensemble changeant de facteurs clés de l'entreprise, et c'est exactement ce qui se produit actuellement. En termes simples, les plates-formes qui dominent la technologie informatique des entreprises depuis près de 30 ans ne peuvent plus répondre aux demandes des charges de travail nécessaires pour faire progresser l'entreprise.
Au cœur de la transformation numérique, ce sont les données, qui sont devenues la chose la plus précieuse en entreprise. Les organisations sont depuis longtemps confrontées aux problèmes des données qu’elles consomment en raison de formats incompatibles, des limitations des bases de données traditionnelles et de l’incapacité de combiner de manière flexible des données provenant de plusieurs sources. L’émergence des technologies émergentes promet de changer tout cela.
L'amélioration des modèles de déploiement de logiciels est un aspect majeur de la suppression des obstacles à l'utilisation des données. Une plus grande « agilité des données » nécessite également des bases de données plus flexibles et des plateformes de streaming en temps réel plus évolutives. En fait, il existe au moins sept technologies fondamentales qui peuvent être combinées pour fournir aux entreprises une « structure de données » flexible et en temps réel.
Contrairement aux technologies qu'elles remplacent, ces sept innovations logicielles s'adaptent aux besoins de nombreux utilisateurs et à de nombreux cas d'utilisation. Les entreprises ont la possibilité de prendre des décisions plus rapides et plus éclairées et de créer de meilleures expériences client.
1. Base de données NoSQL
Le SGBDR domine le marché des bases de données depuis près de 30 ans. Cependant, face à la croissance continue du volume de données et à l’accélération de la vitesse de traitement des données, les bases de données relationnelles traditionnelles ont montré leurs lacunes. Les bases de données NoSQL prennent le relais en raison de leur rapidité et de leur capacité à évoluer. Dans le cas des bases de données documentaires, elles fournissent un modèle plus simple du point de vue du génie logiciel. Ce modèle de développement plus simple accélère la mise sur le marché et aide les entreprises à répondre plus rapidement aux besoins des clients et des utilisateurs internes.
2. Plateforme de diffusion en direct
Répondre aux clients en temps réel est crucial pour l'expérience client. Ce n’est un mystère pour personne que les industries en contact direct avec le consommateur ont connu des perturbations massives au cours de la dernière décennie. Cela dépend de la capacité d'une entreprise à réagir aux utilisateurs en temps réel. Le passage à un modèle en temps réel nécessite la diffusion d'événements.
Les applications basées sur les messages existent depuis des années. Cependant, les plateformes de streaming d’aujourd’hui sont beaucoup plus grandes et moins chères que jamais. Les progrès récents de la technologie de streaming ont ouvert la porte à de nombreuses nouvelles façons d’optimiser votre entreprise. En fournissant des boucles de rétroaction en temps réel aux équipes de développement et de test de logiciels, le streaming d'événements peut également aider les entreprises à améliorer la qualité de leurs produits et à développer de nouveaux logiciels plus rapidement.
3. Docker et conteneurs
Les conteneurs présentent de grands avantages pour les développeurs et les opérateurs, ainsi que pour l'organisation elle-même. L'approche traditionnelle de l'isolation de l'infrastructure est le partitionnement statique, qui attribue à chaque charge de travail un bloc fixe de ressources distinct (qu'il s'agisse d'un serveur physique ou d'une machine virtuelle). Le partitionnement statique peut faciliter le dépannage, mais le coût d'un matériel largement sous-utilisé est élevé. Par exemple, un serveur Web moyen n’utilise que 10 % de la puissance de calcul totale disponible.
L'énorme avantage de la technologie des conteneurs est sa capacité à créer une nouvelle façon d'isolement. Ceux qui connaissent le mieux les conteneurs pensent peut-être qu'ils peuvent obtenir les mêmes avantages en utilisant des outils comme Ansible, Puppet ou Chef, mais en réalité, ces technologies sont très complémentaires. De plus, quels que soient les efforts des entreprises, ces outils d’automatisation ne parviennent pas à obtenir l’isolation nécessaire pour déplacer librement les charges de travail entre différentes infrastructures et configurations matérielles. Le même conteneur peut fonctionner sur du matériel nu dans un centre de données sur site ou sur une machine virtuelle dans le cloud public sans aucune modification. Il s’agit d’une véritable mobilité de la charge de travail.
4. Dépôts de conteneurs
Les référentiels de conteneurs sont essentiels à l'agilité. Sans un processus DevOps pour créer des images de conteneurs et une corbeille pour les stocker, chaque conteneur devrait être créé sur chaque machine avant de pouvoir s'exécuter. Un référentiel permet de lancer des images de conteneurs sur la machine qui lit le référentiel. Cela devient plus complexe lors du traitement dans plusieurs centres de données. Si vous créez une image de conteneur dans un centre de données, comment déplacer l'image vers un autre centre de données ? Idéalement, en tirant parti d'une plate-forme de données convergée, les entreprises auront la possibilité de mettre en miroir les référentiels entre les centres de données.
Un détail clé ici est que les capacités de mise en miroir entre le cloud computing sur site et le cloud peuvent différer considérablement des capacités de mise en miroir entre les centres de données d'une entreprise. Les plates-formes de données convergées résoudront ce problème pour les entreprises en fournissant ces capacités, que l'organisation utilise une infrastructure de centre de données ou une infrastructure de cloud computing.
5. Orchestration des conteneurs
Chaque conteneur semble avoir son propre système d'exploitation privé plutôt qu'un partitionnement matériel statique. Contrairement aux machines virtuelles, les conteneurs ne nécessitent pas de partitionnement statique du calcul et de la mémoire. Cela permet aux administrateurs de lancer un grand nombre de conteneurs sur un serveur sans avoir à se soucier de grandes quantités de mémoire. Avec des outils d'orchestration de conteneurs comme Kubernetes, il devient très simple de lancer des conteneurs, de les déplacer et de les redémarrer ailleurs dans l'environnement.
Une fois les nouveaux composants d'infrastructure en place, documentez les bases de données comme MapR-DB ou MongoDB, les plateformes de streaming d'événements comme MapR-ES ou Apache Kafka (les outils d'orchestration comme Kubernetes), et après la mise en œuvre du processus DevOps pour créer et déployer des logiciels dans Conteneurs Docker, il faut comprendre la question de savoir quels composants doivent être déployés dans ces conteneurs.
6. Microservices
Historiquement, le concept de microservices n'est pas nouveau. La différence aujourd’hui est que les technologies habilitantes (bases de données NoSQL, streaming d’événements, orchestration de conteneurs) peuvent évoluer avec la création de milliers de microservices. Sans ces nouvelles approches en matière de stockage de données, de streaming d’événements et d’orchestration architecturale, les déploiements de microservices à grande échelle ne seraient pas possibles. L'infrastructure requise pour gérer de grands volumes de données, d'événements et d'instances de conteneurs ne pourra pas atteindre les niveaux requis.
Les microservices visent à fournir de l'agilité. Les microservices consistent généralement en une fonction ou un petit ensemble de fonctions. Plus l’unité de travail fonctionnelle est petite et ciblée, plus il est facile de créer, tester et déployer le service. Ces services doivent être découplés, sinon l’entreprise perdra la promesse des microservices agiles. Les microservices peuvent dépendre d'autres services, mais généralement via une API REST à charge équilibrée ou un streaming d'événements. En utilisant le streaming d'événements, les entreprises peuvent facilement suivre l'historique des événements à l'aide de sujets de demande et de réponse. Cette approche présente des avantages significatifs en matière de dépannage puisque l'intégralité du flux de requête et toutes les données de la requête peuvent être relues à tout moment.
Étant donné que les microservices encapsulent une petite partie du travail et qu'ils sont découplés les uns des autres, il y a peu ou pas d'obstacles au remplacement ou à la mise à niveau des services au fil du temps. En mode hérité, s'appuyer sur un couplage étroit comme RPC impliquait de devoir fermer toutes les connexions puis les rétablir. L'équilibrage de charge est un gros problème lors de leur mise en œuvre, car la configuration manuelle les rend sujets aux erreurs.
7. Fonctions en tant que service
Tout comme nous avons vu les microservices dominer le secteur, nous verrons également l'essor de l'informatique sans serveur ou peut-être plus précisément l'appellerons Fonctions en tant que service ( FaaS). FaaS crée des microservices de telle manière que le code peut être enveloppé dans un cadre léger, intégré dans un conteneur, exécuté à la demande (basé sur une sorte de déclencheur), puis équilibré automatiquement la charge, grâce au cadre léger. La beauté de FaaS est qu’il permet aux développeurs de se concentrer presque entièrement sur cette fonctionnalité. Le FaaS apparaît donc comme la conclusion logique de l’approche des microservices.
Le déclenchement d'événements est un élément clé du FaaS. Sans cela, les fonctions peuvent être appelées et les ressources consommées uniquement lorsque le travail doit être effectué. L’invocation automatique des fonctions rend le FaaS vraiment précieux. Imaginez que chaque fois que quelqu'un lit le profil d'un utilisateur, un événement d'audit se produit, une fonctionnalité qui doit s'exécuter pour avertir l'équipe de sécurité. Plus précisément, il peut filtrer uniquement certains types d'enregistrements. Cela peut être facultatif, après tout, il s’agit d’une fonctionnalité professionnelle entièrement personnalisable. Il est important de noter qu’il est très simple de réaliser un tel workflow en utilisant un modèle de déploiement tel que FaaS.
Rassembler des événements
La magie derrière le déclenchement des services réside en réalité dans les événements du flux d'événements. Certains types d'événements sont utilisés comme déclencheurs plus fréquemment que d'autres, mais tout événement qu'une entreprise souhaite être un déclencheur peut le devenir. L'événement déclencheur peut être une mise à jour d'un document, exécutant le processus OCR sur le nouveau document, puis ajoutant le texte du processus OCR à la base de données NoSQL. Si l'on réfléchit d'une manière plus intéressante, la reconnaissance et la notation des images peuvent être effectuées via un cadre d'apprentissage automatique chaque fois qu'une image est téléchargée. Il n’y a pas de limitations fondamentales ici. Si un événement déclencheur est défini, un événement se produit, l'événement déclenche la fonction et la fonction termine son travail.
FaaS sera la prochaine étape dans l’adoption des microservices. Cependant, il existe un facteur majeur à prendre en compte lors de l’approche du FaaS : la dépendance vis-à-vis du fournisseur. FaaS cache des mécanismes de stockage spécifiques, une infrastructure matérielle et une orchestration spécifiques, qui sont autant de bonnes choses pour les développeurs. Mais en raison de cette abstraction, les offres FaaS hébergées représentent l’une des plus grandes opportunités de dépendance vis-à-vis d’un fournisseur que le secteur informatique ait jamais connues. Ces API n'étant pas standardisées, la migration d'un produit FaaS vers le cloud public est presque impossible sans perdre près de 100 % du travail effectué. Si le FaaS est abordé de manière plus structurée en tirant parti des événements provenant de plates-formes de données convergées, la transition entre les fournisseurs de cloud deviendra plus facile.