Articles

Le 4 décembre 2023, Apache a publié un avis de sécurité concernant la vulnérabilité critique CVE-2023-50164 concernant le cadriciel Struts 2. Cette vulnérabilité permet à un attaquant non …

Source de l’article sur CERT-FR

Guide complet AWS ECS vs Kubernetes

Vous cherchez à comprendre les différences entre AWS ECS et Kubernetes ? Découvrez notre guide complet pour vous aider à choisir le bon outil !

Containerisation : la solution moderne pour un déploiement multi-plateforme où l’application entière vit dans un conteneur qui se déploie sur différentes machines

Software such as Kubernetes, Docker Swarm, and Apache Mesos are the most popular container orchestration tools. They provide a platform for developers to deploy, manage, and scale applications quickly and easily.

La conteneurisation est la solution moderne pour une déploiement multi-plateforme où l’application entière vit à l’intérieur d’un conteneur qui se déploie sur différentes machines. Les conteneurs uniques fonctionnent parfaitement pour les applications simples, mais avec une architecture de micro-services, chaque service nécessite un conteneur séparé.

Cependant, gérer plusieurs conteneurs peut être fastidieux, c’est pourquoi vous disposez d’outils d’orchestration de conteneurs qui facilitent la communication entre conteneurs, le suivi de la santé et la gestion, ainsi que les processus de protocole de sécurité.

Des logiciels tels que Kubernetes, Docker Swarm et Apache Mesos sont les outils d’orchestration de conteneurs les plus populaires. Ils fournissent une plate-forme aux développeurs pour déployer, gérer et mettre à l’échelle rapidement et facilement des applications. Ces outils permettent aux développeurs de créer des applications robustes et évolutives en utilisant des conteneurs qui peuvent être déployés sur des environnements différents. Les outils d’orchestration de conteneurs permettent aux développeurs de gérer et de surveiller facilement leurs applications, ce qui leur permet d’effectuer des mises à jour et des modifications sans interruption des services.

Les outils d’orchestration de conteneurs sont essentiels pour les développeurs qui souhaitent créer des applications modernes et évolutives. Les outils d’orchestration de conteneurs offrent une solution complète pour le déploiement, la gestion et le développement des applications. Ils offrent une solution pratique et efficace pour le déploiement et la gestion des applications sur différentes plateformes. Les outils d’orchestration de conteneurs permettent aux développeurs de créer des applications robustes et évolutives en utilisant des conteneurs qui peuvent être déployés sur des environnements différents.

Les outils d’orchestration de conteneurs sont indispensables pour les développeurs qui souhaitent créer des applications modernes et évolutives. Les outils d’orchestration de conteneurs offrent une solution complète pour le déploiement, la gestion et le développement des applications. Ils offrent une solution pratique et efficace pour le déploiement et la gestion des applications sur différentes plateformes. Les outils d’orchestration de conteneurs permettent aux développeurs de gérer facilement leurs applications et leur permettent d’effectuer des mises à jour et des modifications sans interruption des services.

Les outils d’orchestration de conteneurs sont indispensables pour les développeurs qui souhaitent créer des applications modernes et évolutives. Les outils d’orchestration de conteneurs tels que Kubernetes, Docker Swarm et Apache Mesos sont les plus populaires et offrent une plate-forme aux développeurs pour déployer, gérer et mettre à l’échelle rapidement et facilement des applications. Ces outils permettent aux développeurs de créer des applications robustes et évolutives en utilisant des conteneurs qui peuvent être déployés sur des environnements différents. Les outils d’orchestration de conteneurs permettent aux développeurs de

Source de l’article sur DZONE

Déploiement WordPress: Docker, Nginx, Apache et SSL

Déployer WordPress avec Docker, Nginx, Apache et SSL peut être une tâche complexe. Mais avec les bons outils et la bonne connaissance, vous pouvez le faire facilement!

## Facilitez le déploiement de votre site Web WordPress avec notre guide facile à suivre. Utilisez Docker Compose, Nginx, Apache et SSL pour un processus d’installation sans heurts. Nous créerons également des volumes afin que les modifications ou mises à jour soient préservées lorsque le conteneur redémarre.

Data is the lifeblood of any website, and it’s important to ensure that your WordPress site is properly backed up. With this guide, you can easily set up a backup system that will keep your data safe and secure.

Avec notre guide facile à suivre, simplifiez le déploiement de votre site Web WordPress. Utilisez Docker Compose, Nginx, Apache et SSL pour un processus d’installation transparent.

Nous allons également créer des volumes afin que les modifications ou mises à jour soient préservées lorsque le conteneur redémarre.

Les données sont le sang de la vie de tout site Web et il est important de s’assurer que votre site WordPress est correctement sauvegardé. Avec ce guide, vous pouvez facilement configurer un système de sauvegarde qui protégera vos données en toute sécurité. Une bonne sauvegarde est la clé pour assurer la sécurité et la disponibilité des données. C’est pourquoi il est important de planifier et de mettre en œuvre un système de sauvegarde efficace.

Une fois que vous avez mis en place votre système de sauvegarde, vous pouvez commencer à sauvegarder régulièrement vos données. Il existe différentes méthodes pour sauvegarder vos données, notamment la sauvegarde manuelle, la sauvegarde automatique et la sauvegarde sur le cloud. La sauvegarde manuelle est le moyen le plus simple et le plus rapide de sauvegarder vos données. Cependant, elle nécessite une attention constante et peut être fastidieuse. La sauvegarde automatique est plus pratique car elle peut être programmée pour se produire à des moments prédéfinis. La sauvegarde sur le cloud est également une option pratique car elle permet de stocker vos données sur un serveur distant, ce qui signifie qu’elles seront toujours disponibles et sûres.

Une fois que vous avez mis en place votre système de sauvegarde, vous pouvez commencer à sauvegarder régulièrement vos données. Il est important de planifier des sauvegardes régulières afin de s’assurer que les données sont toujours à jour et que les fichiers ne sont pas corrompus. Vous pouvez également configurer des alertes pour vous avertir lorsque des sauvegardes sont effectuées ou lorsque des problèmes surviennent. Enfin, assurez-vous que vous stockez vos données dans un endroit sûr et que vous les protégez contre les virus et autres logiciels malveillants.

En suivant ce guide, vous serez en mesure de simplifier le déploiement de votre site Web WordPress et de mettre en place un système de sauvegarde efficace pour protéger vos données. Vous pouvez également configurer des alertes pour vous avertir lorsque des sauvegardes sont effectuées ou lorsque des problèmes surviennent. Enfin, assurez-vous que vous stockez vos données dans un endroit sûr et que vous les protégez contre les virus et autres logiciels malveillants.

Source de l’article sur DZONE

Apache Druid: 1000+ QPS Facile pour l'Analyse

des Données

Apache Druid offre une puissance de 1000+ QPS pour l’analyse des données, ce qui rend plus facile et plus rapide que jamais la prise de décision basée sur des données.

Les cas d’utilisation des analytics évoluent avec une augmentation du volume et des requêtes à faible latence. Mais l’échelle des analytics pour les requêtes à haut QPS nécessite une certaine considération. Si vos requêtes récupèrent des lignes simples dans des tables avec peu de colonnes ou de lignes ou agrègent une petite quantité de données, alors virtuellement n’importe quelle base de données peut répondre à vos exigences QPS.

Mais les choses deviennent difficiles si vous avez une application d’analytique (ou prévoyez en construire une) qui exécute beaucoup d’agrégations et de filtres sur des données à haute dimension et à haute cardinalité à grande échelle. Le genre d’application où beaucoup d’utilisateurs devraient pouvoir poser n’importe quelle question et obtenir leurs réponses instantanément sans contraintes sur le type de requêtes ou la forme des données.

Testing is a key factor in scaling analytics for high QPS. It’s important to understand the performance of your analytics application under different scenarios. This will help you identify bottlenecks and optimize your queries for better performance.

Les cas d’utilisation d’analytique évoluent avec des requêtes à haut volume et à faible latence. Mais le passage à l’échelle des analyses pour des requêtes élevées par seconde (QPS) nécessite une certaine prise en compte. Si vos requêtes récupèrent des lignes simples dans des tables avec peu de colonnes ou de lignes ou agrègent une petite quantité de données, alors pratiquement n’importe quelle base de données peut répondre à vos exigences QPS.

Mais les choses deviennent difficiles si vous avez une application d’analytique (ou prévoyez d’en construire une) qui exécute de nombreuses agrégations et filtres sur des données à haute dimension et à haute cardinalité à l’échelle. Le genre d’application où de nombreux utilisateurs devraient pouvoir poser n’importe quelle question et obtenir leurs réponses instantanément sans contraintes sur le type de requêtes ou la forme des données.

Le test est un facteur clé pour passer à l’échelle des analyses pour des QPS élevés. Il est important de comprendre les performances de votre application d’analytique dans différents scénarios. Cela vous aidera à identifier les goulots d’étranglement et à optimiser vos requêtes pour une meilleure performance.

Source de l’article sur DZONE

Validation des messages CDC avec Schemaverse (Partie 4)

Dans cette quatrième partie, nous allons apprendre à valider les messages CDC avec Schemaverse, un outil puissant et facile à utiliser pour la validation des données.

## C’est la partie quatre d’une série de billets de blog sur la construction d’un système moderne à événements avec Memphis.dev.

In this blog post, we will focus on how to use the data captured by Debezium in Memphis.dev to build an event-driven system. We will cover topics such as setting up a data pipeline, creating an event-driven workflow, and deploying the system.

Ceci est la quatrième partie d’une série de billets de blog sur la construction d’un système moderne à événements à l’aide de Memphis.dev.

Dans les deux billets de blog précédents (partie 2 et partie 3), nous avons décrit comment mettre en œuvre une pipeline de capture des données de changement (CDC) pour MongoDB à l’aide de Debezium Server et Memphis.dev.

Dans ce billet de blog, nous nous concentrerons sur la façon d’utiliser les données capturées par Debezium dans Memphis.dev pour construire un système à événements. Nous aborderons des sujets tels que la mise en place d’une pipeline de données, la création d’un flux de travail à événements et le déploiement du système.

Pour commencer, nous devons configurer une pipeline de données pour récupérer les données capturées par Debezium et les envoyer à Memphis.dev. Pour ce faire, nous devons configurer un connecteur Kafka qui envoie les données à un canal Kafka, puis configurer un canal Kafka qui envoie les données à un canal Apache Pulsar. Une fois que la pipeline de données est configurée, nous pouvons commencer à créer des flux de travail à événements basés sur ces données.

Ensuite, nous devons créer un flux de travail à événements qui prend en charge le traitement des données capturées par Debezium. Pour ce faire, nous devons créer un modèle de données qui décrit le schéma des données capturées par Debezium et définir des règles pour le traitement des données. Une fois que le modèle et les règles sont définis, nous pouvons créer un flux de travail à événements qui prend en charge le traitement des données capturées par Debezium.

Enfin, nous devons déployer le système à événements que nous avons construit. Pour ce faire, nous devons déployer le connecteur Kafka et le canal Kafka sur un cluster Kafka, puis déployer le canal Apache Pulsar sur un cluster Pulsar. Une fois que tout est déployé, nous pouvons commencer à envoyer des données capturées par Debezium à notre système à événements et à traiter ces données selon les règles que nous avons définies.

En conclusion, nous avons vu comment utiliser les données capturées par Debezium dans Memphis.dev pour construire un système à événements. Nous avons vu comment configurer une pipeline de données pour récupérer les données capt

Source de l’article sur DZONE

Analyse de log : Elasticsearch vs Apache Doris

L’analyse de log est un domaine très important pour comprendre le comportement des utilisateurs. Découvrons comment Elasticsearch et Apache Doris se comparent dans ce domaine.

Les journaux : une partie majeure des actifs de données d’une entreprise

1. Logs should be collected from all sources in a timely manner. This includes both system logs and application logs.

2. Logs should be normalized, so that they can be easily searched and analyzed.

3. Logs should be stored in a secure and reliable way.

4. Logs should be analyzed in real-time, so that any suspicious activities can be detected quickly.

5. Logs should be used for data analysis, so that trends and patterns can be identified.

Le testing est une partie importante de l’actif de données d’une entreprise et apporte des avantages à celle-ci sur trois aspects : l’observabilité du système, la sécurité informatique et l’analyse des données. Les logs sont le premier recours pour le dépannage, la référence pour améliorer la sécurité du système et le gisement de données à partir duquel vous pouvez extraire des informations qui mènent à la croissance de l’entreprise.

Les logs sont les enregistrements séquentiels des événements dans le système informatique. Si vous réfléchissez à la façon dont les logs sont générés et utilisés, vous saurez à quoi devrait ressembler un système d’analyse des logs idéal :

1. Les logs doivent être collectés de toutes les sources de manière opportune. Cela inclut à la fois les logs système et les logs applicatifs.

2. Les logs doivent être normalisés, de sorte qu’ils puissent être facilement recherchés et analysés.

3. Les logs doivent être stockés de manière sûre et fiable.

4. Les logs doivent être analysés en temps réel, afin que toute activité suspecte puisse être détectée rapidement.

5. Les logs doivent être utilisés pour l’analyse des données, afin que les tendances et les modèles puissent être identifiés.

Le testing est un outil essentiel pour garantir que les logs sont collectés, normalisés, stockés et analysés correctement. En effet, le testing peut vous aider à identifier les problèmes qui peuvent affecter la qualité des données et à vérifier que les processus sont correctement mis en œuvre. Le testing peut également vous aider à déterminer si votre système est capable de réagir rapidement aux événements critiques et de détecter les activités suspectes.

Le testing peut également être utilisé pour vérifier que les données collectées sont cohérentes et complètes, afin que les analyses puissent être effectuées de manière fiable et précise. Enfin, le testing peut être utilisé pour vérifier que les données sont stockées de manière sûre et fiable, ce qui est essentiel pour une analyse des données fiable.

En conclusion, le testing est un outil essentiel pour garantir que les logs sont collectés, normalisés, stockés et analysés correctement. Il permet également de vérifier que les données collectées sont cohérentes et complètes, afin que les analyses puissent être effectuées de manière fiable et précise. Enfin, le testing peut être utilisé pour vérifier que les donné

Source de l’article sur DZONE

Utiliser les fonctionnalités de prévisualisation JDK21 et/ou les classes incubatrices

Découvrez comment tirer le meilleur parti des fonctionnalités de prévisualisation JDK21 et des classes incubatrices pour améliorer votre code Java.

Comment configurer votre build Maven pour prendre en charge une leçon de jeu avec les nouvelles fonctionnalités de JDK21 (ou même plus récentes) comme les fonctionnalités d’aperçu et peut-être certaines classes de l’incubateur ? C’est plus facile que vous ne le pensez. Commençons la configuration. Je suppose que vous souhaitez jouer avec les fonctionnalités d’aperçu de JDK21, par exemple les modèles de chaînes (JEP430). Je viens de sélectionner ce JEP pour la démonstration. Vous pouvez sélectionner n’importe quel JEP en aperçu. La première chose à savoir est que vous devez activer les fonctionnalités d’aperçu via :

Parfois, vous souhaitez jouer avec les nouvelles fonctionnalités de JDK21 (ou même des JDK plus récents) comme les fonctionnalités de prévisualisation et peut-être certaines classes de l’incubateur. Alors, comment pouvez-vous configurer votre build Maven pour prendre en charge une telle leçon de jeu? C’est plus facile que vous ne le pensez. Commençons la configuration. Mon hypothèse est que vous souhaiteriez jouer avec les fonctionnalités de prévisualisation de JDK21, par exemple les modèles de chaîne (JEP430). Je n’ai sélectionné ce JEP que pour la démonstration. Vous pouvez sélectionner n’importe quel JEP en prévisualisation. La première chose à savoir est que vous devez activer les fonctionnalités de prévisualisation via:

XML

org.apache.maven.plugins

maven-compiler-plugin

true

Une fois cette étape terminée, vous pouvez ajouter des dépendances supplémentaires à votre projet pour prendre en charge les fonctionnalités de prévisualisation. Pour le JEP430, vous devez ajouter la dépendance suivante:

XML

org.openjdk.jmh

jmh-core

1.21.0-SNAPSHOT

test

Une fois cette étape terminée, vous pouvez commencer à utiliser les fonctionnalités de prévisualisation dans votre projet. Vous pouvez également utiliser des outils tels que JMH pour mesurer les performances des fonctionnalités de prévisualisation et comparer leurs performances avec les versions stables. Vous pouvez également utiliser des outils tels que JUnit pour tester le comportement des fonctionnalités de prévisualisation et vous assurer qu’elles fonctionnent comme prévu. Enfin, vous pouvez utiliser des outils tels que SonarQube pour surveiller la qualité du code et vous assurer que les fonctionnalités de prévisualisation ne compromettent pas la qualité du code.

Une fois que vous avez configuré votre projet pour prendre en charge les fonctionnalités de prévisualisation, vous pouvez commencer à explorer les données et à tirer parti des nouvelles fonctionnalités. Vous pouvez par exemple analyser les données pour voir comment les nouvelles fonctionnalités affectent les performances ou la qualité du code. Vous pouvez également utiliser des outils tels que Spark ou Hadoop pour traiter et analyser des jeux de données volumineux et tirer des conclusions sur les performances et la qualité des fonctionnalités de prévisualisation. Vous pouvez même créer des modèles d’apprentissage automatique pour prédire le comportement des n

Source de l’article sur DZONE

10 alternatives à Docker pour votre application SaaS

Découvrez 10 alternatives à Docker pour votre application SaaS afin d’améliorer votre expérience de développement et de déploiement.

Les technologies Docker ont révolutionné le paysage de gestion de l’infrastructure de telle sorte que Docker est maintenant devenu synonyme de conteneurs. Il est important de comprendre que tous les dockers sont des conteneurs, mais tous les conteneurs ne sont pas des dockers. Bien que Docker soit la technologie de conteneur la plus couramment utilisée, il existe plusieurs autres alternatives à Docker. Dans ce blog, nous explorerons les alternatives Docker à votre application SaaS. Qu’est-ce que Docker? Docker est une plate-forme de conteneurisation d’applications très populaire dans les cercles informatiques. Ce logiciel open source permet aux développeurs de facilement empaqueter des applications avec leurs dépendances, le système d’exploitation, les bibliothèques et autres ressources liées à l’exécution dans des conteneurs et de les déployer automatiquement sur n’importe quelle infrastructure. Avec l’architecture cloud-native et les environnements multi-cloud devenant des choix populaires pour la plupart des organisations, Docker est le choix le plus pratique pour construire, partager, déployer et gérer des conteneurs à l’aide d’API et de commandes simples dans ces environnements.

La technologie Docker a révolutionné le paysage de gestion des infrastructures de telle sorte que Docker est maintenant synonyme de conteneurs. Il est important de comprendre que tous les dockers sont des conteneurs, mais tous les conteneurs ne sont pas dockers. Bien que Docker soit la technologie de conteneur la plus couramment utilisée, il existe plusieurs autres alternatives à Docker. Dans ce blog, nous explorerons les alternatives Docker à votre application SaaS.

Qu’est-ce que Docker?

Docker est une plate-forme de conteneurisation d’applications très populaire dans les cercles informatiques. Ce logiciel open source permet aux développeurs de facilement empaqueter des applications avec leurs dépendances, le système d’exploitation, les bibliothèques et d’autres ressources liées au temps d’exécution dans des conteneurs et de les déployer automatiquement sur n’importe quelle infrastructure. Avec l’architecture cloud-native et les environnements multi-cloud devenant des choix populaires pour la plupart des organisations, Docker est le choix le plus pratique pour construire, partager, déployer et gérer des conteneurs à l’aide d’API et de simples commandes dans ces environnements. 

Les alternatives à Docker

Il existe plusieurs alternatives à Docker pour votre application SaaS. Ces alternatives peuvent être classées en fonction de leur fonctionnalité et de leur architecture. Les principales alternatives à Docker sont :

• Kubernetes : Kubernetes est une plate-forme open source pour automatiser le déploiement, la mise à l’échelle et la gestion des applications conteneurisées. Il offre une solution complète pour la gestion des conteneurs et peut être utilisé avec n’importe quel type de conteneur, y compris Docker.

• Rancher : Rancher est une plate-forme open source qui permet aux organisations de gérer facilement leurs clusters de conteneurs. Il fournit une interface utilisateur conviviale pour gérer les conteneurs et fournit des outils pour gérer les bases de données, les réseaux et la sécurité.

• CoreOS : CoreOS est une plate-forme open source qui fournit une solution complète pour la gestion des clusters de conteneurs. Il offre un ensemble complet d’outils pour gérer les conteneurs et fournit des outils pour gérer les bases de données, les réseaux et la sécurité.

• LXC : LXC (Linux Containers) est une solution open source qui permet aux développeurs d’utiliser des conteneurs Linux pour isoler et exécuter des applications sur un système d’exploitation partagé. Il offre une solution complète pour la gestion des conteneurs et peut être utilisé avec n’importe quel type de conteneur, y compris Docker.

• OpenVZ : OpenVZ est une solution open source qui permet aux développeurs d’utiliser des conteneurs Linux pour isoler et exécuter des applications sur un système d’exploitation partagé. Il offre une solution complète pour la gestion des conteneurs et peut être utilisé avec n’importe quel type de conteneur, y compris Docker.

• Apache Mesos : Apache Mesos est une plate-forme open source qui permet aux organisations de gérer facilement leurs clusters de conteneurs. Il fournit une interface utilisateur conviviale pour gérer les conteneurs et fournit des outils pour gérer les bases de données, les réseaux et la sécurité.

• Cloud Foundry : Cloud Foundry est une plate-forme open

Source de l’article sur DZONE

Traitement de flux supérieur : l'impact d'Apache Flink sur l'architecture Data Lakehouse.

Le traitement de flux supérieur est une technologie qui offre de nombreux avantages aux entreprises. Apache Flink est l’un des principaux outils pour exploiter pleinement les avantages de l’architecture Data Lakehouse.

« Explorer le Paradigme du Data Lakehouse: Une Solution Prometteuse pour les Décisions Basées sur les Données »

Dans l’ère de la prise de décision basée sur les données, le paradigme du Data Lakehouse est apparu comme une solution prometteuse, réunissant le meilleur des data lakes et des data warehouses. En combinant la scalabilité des data lakes avec les fonctionnalités de gestion des données des entrepôts, les Data Lakehouses offrent une infrastructure de données hautement scalable, agile et rentable. Ils fournissent un support robuste pour les charges de travail analytiques et opérationnelles, permettant aux organisations d’extraire plus de valeur de leurs données.

Dans nos articles précédents, nous avons exploré en profondeur le concept des Data Lakehouses. Data Lakehouses: The Future of Scalable, Agile, and Cost-Effective Data Infrastructure a posé les bases en mettant en évidence les principaux avantages commerciaux des lakehouses. A New Era of Data Analytics: Exploring the Innovative World of Data Lakehouse Architectures a examiné de plus près les aspects architecturaux des lakehouses, tandis que Delta, Hudi et Iceberg: The Data Lakehouse Trifecta se sont concentrés sur les trois principales solutions lakehouse: Delta Lake, Hudi et Iceberg.

Afin de mieux comprendre comment le Data Lakehouse peut être mis en œuvre dans un environnement d’entreprise, nous allons maintenant examiner le processus de testing. Le testing est un élément essentiel du développement logiciel et est également très important pour l’implémentation réussie des Data Lakehouses. Le processus de testing permet aux organisations de s’assurer que leurs systèmes sont conformes aux exigences et aux spécifications fonctionnelles et techniques. Il permet également de vérifier que le système est prêt à être mis en production et qu’il fonctionne correctement.

Le testing des Data Lakehouses peut être divisé en trois étapes principales : la vérification des fonctionnalités, la validation des performances et la validation des données. La vérification des fonctionnalités consiste à vérifier que toutes les fonctionnalités du système sont correctement implémentées et qu’elles répondent aux exigences et aux spécifications fonctionnelles. La validation des performances consiste à vérifier que le système est capable de gérer le volume et la variété des données et qu’il est capable de fournir les résultats attendus dans les délais impartis. Enfin, la validation des données consiste à vérifier que les données sont correctement stockées et accessibles dans le système.

Le processus de testing des Data Lakehouses est essentiel pour s’assurer que le système est conforme aux exigences et qu’il fonctionne correctement. Il permet aux organisations d’identifier et de résoudre rapidement tout problème avant la mise en production, ce qui permet d’améliorer la qualité du système et d’accroître sa fiabilité. En outre, le testing permet aux organisations de s’assurer que leurs systèmes sont prêts à être mis en production et qu’ils sont capables de fournir les résultats attendus.

Source de l’article sur DZONE

Partie 2: Microservices avec Apache Camel et Quarkus

Dans cette partie, nous allons apprendre à créer des microservices avec Apache Camel et Quarkus. Nous verrons comment les deux outils peuvent être utilisés ensemble pour créer des applications modernes et performantes.

Exécution locale d’une application microservices basée sur Apache Camel et AWS SDK

Dans la première partie de cette série, nous avons vu une application de transfert d’argent simplifiée basée sur les microservices, mise en œuvre à l’aide des outils de développement Java Apache Camel et AWS SDK (Software Development Kit) et de Quarkus comme plate-forme d’exécution. Comme indiqué, il existe de nombreux scénarios de déploiement qui pourraient être envisagés pour exécuter la production d’une telle application; le premier et le plus simple consiste à l’exécuter localement de manière autonome. C’est le scénario que nous examinerons dans ce nouveau post.

Quarkus est capable d’exécuter vos applications de deux manières: en mode JVM (Java Virtual Machine) et en mode natif. Le mode JVM est la manière classique standard d’exécuter des applications Java. Ici, l’application en cours d’exécution n’est pas exécutée directement sur le système d’exploitation, mais dans un certain milieu d’exécution où des bibliothèques et des API Java sont intégrées et enveloppées. Ces bibliothèques et API peuvent être très volumineuses et elles occupent une partie spécifique de la mémoire appelée Resident Set Size (RSS). Pour en savoir plus sur le RSS et Quarkus (par opposition à la façon dont Spring Boot le gère), voir ici.

Lorsque vous exécutez votre application avec Quarkus en mode JVM, vous pouvez utiliser un outil appelé GraalVM pour compiler votre application en code natif. GraalVM est un outil open source qui permet de compiler des applications Java en code natif. Il prend en charge plusieurs langages, dont Java, JavaScript, Ruby, Python et R. GraalVM est capable de compiler votre application Java en code natif très rapidement, ce qui permet à votre application de s’exécuter plus rapidement et avec moins de consommation de mémoire. Il est également possible d’utiliser GraalVM pour compiler votre application en code natif et l’exécuter directement sur le système d’exploitation, sans passer par le mode JVM. Cela permet à votre application de fonctionner plus rapidement et avec une consommation de mémoire minimale.

Ainsi, grâce à l’utilisation du logiciel Quarkus et de GraalVM, vous pouvez facilement déployer votre application microservices-based money transfer sur votre système local. Vous pouvez également utiliser GraalVM pour compiler votre application en code natif et l’exécuter directement sur le système d’exploitation, ce qui permet à votre application de fonctionner plus rapidement et avec une consommation de mémoire minimale. Cela peut être très utile pour les applications qui nécessitent une exécution rapide et une consommation minimale de mémoire. De plus, vous pouvez également déployer votre application sur des plates-formes cloud telles que AWS ou Azure afin de bénéficier des avantages supplémentaires offerts par ces plates-formes.

Source de l’article sur DZONE