Articles

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

Ruby prend en charge WebAssembly

Ruby, le langage de programmation populaire, a récemment annoncé qu’il prend désormais en charge WebAssembly, ce qui ouvre de nouvelles possibilités pour les développeurs.

« Ruby Rejoint le Rang des Langues Capables de Cibler WebAssembly avec sa Dernière Version 3.2 »

En tant qu’informaticien enthousiaste, je suis ravi de voir que Ruby a rejoint les rangs des langages capables de cibler WebAssembly avec sa dernière version 3.2. Cette mise à jour apparemment mineure pourrait être la plus grande chose qui soit arrivée à ce langage depuis Rails, car elle permet aux développeurs Ruby d’aller au-delà du back-end. En portant leur code sur WebAssembly, ils peuvent le faire fonctionner n’importe où : sur le front-end, sur des périphériques embarqués, en tant que fonctions sans serveur, à la place des conteneurs ou sur le bord. WebAssembly a le potentiel de faire de Ruby un langage universel.

Qu’est-ce que WebAssembly?

WebAssembly (souvent abrégé en Wasm) est un format d’instructions binaires bas niveau qui s’exécute sur une machine virtuelle. Le langage a été conçu comme alternative à JavaScript. Son objectif est de faire fonctionner des applications sur n’importe quel navigateur à des vitesses proches de celles natives. Wasm peut être ciblé depuis n’importe quel langage de haut niveau tel que C, Go, Rust et maintenant également Ruby.

Les avantages de WebAssembly pour les développeurs Ruby

Les développeurs Ruby peuvent tirer parti de WebAssembly pour créer des applications plus performantes et plus flexibles. Les applications compilées en Wasm sont plus rapides et plus légères que les applications JavaScript, ce qui les rend plus faciles à télécharger et à exécuter. De plus, les applications Wasm peuvent être exécutées sur des périphériques embarqués et des systèmes d’exploitation légers, ce qui permet aux développeurs Ruby d’accéder à une gamme plus large de plates-formes et de périphériques. Enfin, le code Wasm peut être exécuté en tant que fonction sans serveur, ce qui permet aux développeurs Ruby de réduire leurs coûts de serveur et d’améliorer la scalabilité et la sécurité de leurs applications.

En conclusion, l’ajout de WebAssembly à Ruby est une excellente nouvelle pour les développeurs Ruby. Grâce à cette technologie, ils peuvent créer des applications plus performantes et plus flexibles qui peuvent être exécutées sur une variété de plates-formes et de périphériques. De plus, le code Wasm peut être exécuté en tant que fonction sans serveur, ce qui permet aux développeurs Ruby de réduire leurs coûts de serveur et d’améliorer la scalabilité et la sécurité de leurs applications. Enfin, cette technologie offre aux développeurs Ruby la possibilité de travailler avec des données volumineuses et complexes, ce qui ouvre la voie à un nouveau type d’applications.

Source de l’article sur DZONE


Introduction

James Gosling, often referred to as « Dr. Java », is a Canadian computer scientist, best known as the father of the Java programming language. He did the original design of Java and implemented its original compiler and virtual machine. Our DevRel, Grigory Petrov, had the opportunity to interview James, and we have included the entire transcript below. Hope you enjoy it!

The Interview

Grigory: As software developers and software consultants, we’re trying to organize a community in Russia: Python, Ruby, Java, and Go communities. And we want to help our fellow developers by conducting interviews that highlight essential questions for our industry. I think that your experience and your work on Java can help developers to become better. So let’s try to help them!

Source de l’article sur DZONE

Like so many others in the Apache Cassandra community, I’m extremely excited to see that the 4.0 release is finally here. There are many, many improvements to Cassandra 4.0. One enhancement that is more important than it might look is the addition of support for Java versions 9 and up. This was not trivial, because Java 9 made changes to some internal APIs that the most performance-oriented Java projects like Cassandra relied on (you can read more about this here).

This is a big deal because with Cassandra 4.0, you not only get the direct improvements to performance added by the Apache Cassandra committers, you also unlock the ability to take advantage of seven years of improvements in the JVM (Java Virtual Machine) itself.

Source de l’article sur DZONE

Though I have worked on Java for more than a decade, I have not had a chance to work on Groovy. While working for API Integration into Jenkins CI/CD pipeline, I extensively used Groovy to invoke REST API, validate the user input parameters, and business logic for that. After that, I found that Groovy is a fascinating program language for Java developers.

Why Is Groovy Easy for Java Developers?

It allows to use the Java syntax liberally and tries to be as natural as possible for Java developers. It is an object-oriented dynamic programming language for Java virtual machine (JVM) and can be integrated smoothly with any Java Program. The groovy syntax is lucid, familiar, and direct that makes to develop projects faster and easier. It demands a shorter learning curve for Java Developer to develop, test, and integrate to make production-ready code in a short span.

Source de l’article sur DZONE