Articles

La longue route vers les threads virtuels Java

.

Explorer les threads virtuels Java peut être une route longue et difficile, mais avec un peu de persévérance, les résultats en valent la peine!

Il a fallu presque 30 ans. L’introduction de Threads Virtuels Java 1.21 rendra enfin le multitâche presque sans effort dans Java. Pour pleinement apprécier leur nature révolutionnaire, il est utile de jeter un coup d’œil aux diverses solutions imparfaites offertes par Java au fil des ans pour résoudre le problème « faire un travail utile pendant que nous attendons autre chose ».

Il a fallu presque 30 ans. L’introduction de Threads Virtuels de Java 1.21 rendra enfin la multitâche dans Java presque sans effort. Pour pleinement apprécier leur nature révolutionnaire, il est utile de jeter un coup d’œil aux différentes solutions imparfaites offertes par Java au fil des ans pour résoudre le problème «faire un travail utile pendant que nous attendons autre chose».

Java 1 

L’introduction de Java version 1 en 1995 était remarquable. Un langage fortement typé, orienté objet et syntaxe similaire à C qui offrait de nombreuses fonctionnalités, y compris des Threads faciles à utiliser. La classe Thread représentait un objet qui exécuterait le code sélectionné dans un thread séparé du thread d’exécution principal. L’objet Thread était lui-même un wrapper pour un thread de niveau système d’exploitation réel connu sous le nom de thread de plate-forme, également appelé thread noyau. La logique à exécuter était décrite en implémentant une interface Runnable. Java s’occupait de toute la complexité du lancement et de la gestion de ce thread séparé. Maintenant, il sera presque trivial d’effectuer plusieurs tâches simultanément, ou du moins c’est ce qu’il semblerait. Considérez l’exemple suivant:

Les limites des threads

Malgré tous les avantages qu’offre Java, les threads ont leurs limites. Les threads sont très coûteux à créer et à gérer, et leur utilisation peut entraîner une surutilisation des ressources système et une augmentation des temps de latence. De plus, les threads ne peuvent pas être partagés entre plusieurs processus, ce qui signifie que le code doit être dupliqué pour chaque processus et gère indépendamment. Cela peut entraîner des problèmes de cohérence et de synchronisation entre les threads et les processus.

Pour résoudre ces problèmes, Java a introduit un certain nombre de solutions, notamment les threads légers, les threads poolés et les futures. Bien que ces solutions aient permis d’améliorer la gestion des threads, elles n’ont pas réussi à résoudre tous les problèmes liés à la gestion des threads et à l’utilisation des ressources système.

Cependant, avec l’introduction des Threads Virtuels de Java 1.21, ces problèmes sont enfin résolus. Les Threads Virtuels sont une solution plus efficace pour la gestion des threads qui offre une meilleure utilisation des ressources système et une meilleure gestion des threads. Les Threads Virtuels sont basés sur le concept de «threads légers» qui permettent aux développeurs de créer et de gérer facilement des threads sans avoir à se soucier des coûts associés à la gestion des threads. De plus

Source de l’article sur DZONE

Déployer GitLab sur AWS EC2 avec Walrus

Déployer GitLab sur AWS EC2 avec Walrus est une tâche complexe, mais pas impossible. Découvrez comment le faire dans ce tutoriel !

  • An AWS Account with access to EC2 and VPC.

  • A Walrus Account.

  • H2 : Walrus, plateforme open-source de gestion d’applications, équipe votre équipe avec des modèles conçus pour optimiser les meilleures pratiques. Dans cet article, nous vous guiderons à travers le processus de création d’un modèle AWS GitLab et déploiement d’un serveur GitLab sur une instance EC2 AWS.

  • An AWS account with permissions to create and manage EC2 instances.

  • A Walrus account with access to the Walrus CLI.

  • Creating the Template

    The first step is to create a template for your GitLab server. This template will define the configuration of the server, such as the instance type, the operating system, and the software packages that will be installed. You can use the Walrus CLI to create a template from scratch, or you can use one of the pre-built templates provided by Walrus.

    Une plateforme de gestion d’applications open source appelée Walrus équipe votre équipe de modèles conçus pour optimiser les meilleures pratiques. Dans cet article, nous vous guiderons à travers le processus de création d’un modèle AWS GitLab et de déploiement d’un serveur GitLab sur une instance EC2 AWS.

    Prérequis

    1. Un dépôt GitHub ou GitLab pour stocker le modèle.

    2. Un compte AWS avec les autorisations nécessaires pour créer et gérer des instances EC2.

    3. Un compte Walrus avec accès à la ligne de commande Walrus.

    Créer le modèle

    La première étape consiste à créer un modèle pour votre serveur GitLab. Ce modèle définira la configuration du serveur, telles que le type d’instance, le système d’exploitation et les logiciels qui seront installés. Vous pouvez utiliser la ligne de commande Walrus pour créer un modèle à partir de zéro ou utiliser l’un des modèles préconstruits fournis par Walrus.

    Une fois que vous avez créé le modèle, vous pouvez le stocker dans votre dépôt GitHub ou GitLab. Vous pouvez ensuite utiliser le logiciel Walrus pour déployer le modèle sur votre instance EC2. Le logiciel Walrus vous permet de définir des paramètres tels que la taille de l’instance, le système d’exploitation et les packages logiciels à installer. Une fois que vous avez configuré tous les paramètres, vous pouvez cliquer sur le bouton « Déployer » pour déployer le modèle sur votre instance EC2.

    Une fois le déploiement terminé, vous pouvez accéder à votre serveur GitLab en utilisant l’adresse IP publique de votre instance EC2. Vous pouvez également utiliser le logiciel Walrus pour surveiller l’état de votre serveur GitLab et mettre à jour le modèle si nécessaire. Vous pouvez également utiliser le logiciel Walrus pour sauvegarder et restaurer votre serveur GitLab en cas de problème.

    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

    Risques et solutions de sécurité de la virtualisation

    La virtualisation offre de nombreux avantages, mais elle comporte aussi des risques et des défis en matière de sécurité. Découvrons ensemble les solutions pour les gérer.

    ## Risques de sécurité liés à la virtualisation

    Attacks on Virtual Machines

    VMs are the main target of attackers in a virtualized environment. Attackers can exploit vulnerabilities in the operating system or applications running on the VMs to gain access to the virtualization environment. Once they gain access, they can launch attacks on other VMs or steal sensitive data.

    Hypervisor Attacks

    The hypervisor is the core component of virtualization technology. It is responsible for managing the VMs and other virtualization components. Attackers can exploit vulnerabilities in the hypervisor to gain access to the virtualization environment and launch attacks on other VMs.

    Solution pour les risques de sécurité liés à la virtualisation

    Les organisations du monde entier adoptent de plus en plus la technologie de virtualisation pour ses nombreux avantages, tels que des économies de coûts, une efficacité améliorée, une flexibilité, une scalabilité et une récupération en cas de sinistre. Cependant, l’adoption accrue de la technologie de virtualisation a également entraîné une augmentation des risques de sécurité. Les risques de sécurité liés à la virtualisation sont causés par divers facteurs, tels que les vulnérabilités du logiciel de virtualisation, les attaques sur les machines virtuelles (VMs) et les attaques sur le hyperviseur. Cet article examine les risques de sécurité liés à la virtualisation et les solutions pour les atténuer.

    Vulnérabilités du logiciel de virtualisation

    Le logiciel de virtualisation est le cœur de la technologie de virtualisation. Il est responsable de la gestion des VMs, du hyperviseur et des autres composants de la virtualisation. Les vulnérabilités du logiciel de virtualisation peuvent être exploitées par des attaquants pour obtenir un accès non autorisé à l’environnement de virtualisation. Les attaquants peuvent exploiter ces vulnérabilités pour prendre le contrôle de l’environnement de virtualisation, voler des données sensibles et lancer des attaques sur d’autres VMs dans l’environnement virtuel.

    Attaques sur les machines virtuelles

    Les VMs sont la principale cible des attaquants dans un environnement virtualisé. Les attaquants peuvent exploiter des vulnérabilités du système d’exploitation ou des applications exécutées sur les VMs pour accéder à l’environnement de virtualisation. Une fois qu’ils ont accès, ils peuvent lancer des attaques sur d’autres VMs ou voler des données sensibles.

    Attaques sur le hyperviseur

    Le hyperviseur est le composant principal de la technologie de virtualisation. Il est responsable de la gestion des VMs et des autres composants de la virtualisation. Les attaquants peuvent exploiter des vulnérabilités du hyperviseur pour accéder à l’environnement de virtualisation et lancer des attaques sur d’autres VMs.

    Mesures pour atténuer les risques de sécurité liés à la virtualisation

    Il existe plusieurs mesures qui peuvent être prises pour atténuer les risques de sécurité liés à la virtualisation. L’une des principales mesures est l’utilisation d’une stratégie de sécurité robuste pour protéger le système contre les menaces externes et internes. La stratégie devrait inclure des mesures telles que l’utilisation d’un pare-feu pour bloquer les connexions non autorisées, la mise en œuvre d’une politique stricte d’accès aux données et l’utilisation d’outils de codage pour assurer la sécurité des données sensibles. De plus, il est important que les administrateurs système mettent à jour régulièrement le logiciel et le matériel afin d’atténuer les vul

    Source de l’article sur DZONE

    Guide pratique de sécurité des conteneurs

    Vous cherchez à mieux comprendre la sécurité des conteneurs ? Découvrez ce guide pratique qui vous aidera à protéger vos applications et vos données !

    Lire le rapport : Rapport sur les tendances des conteneurs DZone 2023

    Avec l’essor de l’architecture conteneurisée, les entreprises réalisent l’importance croissante de la sécurité des conteneurs. Bien que les conteneurs offrent indéniablement de profonds avantages, tels que la portabilité, la flexibilité et l’évolutivité, ils introduisent également des défis de sécurité sans précédent. Dans ce rapport, nous aborderons les principes fondamentaux et les stratégies de sécurité des conteneurs et nous nous pencherons sur deux méthodes spécifiques : la gestion des secrets et le patching. De plus, nous examinerons les outils et les techniques pour sécuriser les clés, les jetons et les mots de passe.

    La gestion des secrets est une pratique essentielle pour assurer la sécurité des conteneurs. Les bases de données cryptographiques sont un moyen efficace de stocker et de gérer les secrets. Les bases de données cryptographiques peuvent être utilisées pour stocker des informations sensibles telles que les clés d’accès, les jetons d’authentification et les mots de passe. Les bases de données cryptographiques peuvent également être utilisées pour générer des clés et des jetons dynamiques, ce qui permet aux applications d’accéder aux données sensibles sans avoir à stocker les informations dans le conteneur.

    Le patching est une autre pratique essentielle pour assurer la sécurité des conteneurs. Les outils de patching peuvent être utilisés pour mettre à jour le système d’exploitation et les applications logicielles installées dans le conteneur. Les outils de patching peuvent également être utilisés pour vérifier la présence de vulnérabilités et appliquer les correctifs appropriés. Les outils de patching peuvent également être utilisés pour surveiller l’activité du conteneur et détecter toute activité suspecte.

    En conclusion, la sécurité des conteneurs est une préoccupation croissante pour les entreprises. La gestion des secrets et le patching sont des pratiques essentielles pour assurer la sécurité des conteneurs. Les bases de données cryptographiques peuvent être utilisées pour stocker et gérer les secrets, tandis que les outils de patching peuvent être utilisés pour mettre à jour le système d’exploitation et les applications logicielles installées dans le conteneur. De plus, les outils de patching peuvent également être utilisés pour surveiller l’activité du conteneur et détecter toute activité suspecte.

    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

    La dernière version de test de Windows 10 ‘Redstone 5’, Build 17704, inclut un certain nombre de nouvelles fonctionnalités axées sur l’entreprise, mais supprime également la technologie de gestion des fenêtres ‘Sets’ de Microsoft.
    Source de l’article sur ZDNet

    Microsoft déploie sa deuxième série de correctifs en juin pour la version Windows 10 April 2018 de sa plateforme. Les problèmes rencontrés par les utilisateurs de Google Chrome, parmi d’autres, sont en principe résolus.
    Source de l’article sur ZDNet

    N’importe qui avec un Mac peut désormais tester le nouveau Dark Mode et plus de fonctionnalités annoncées à la WWDC 2018. Il suffit de faire attention aux bugs et de réaliser une sauvegarde avant de télécharger la version beta publique.
    Source de l’article sur ZDNet

    La build n°17692 de Windows 10 Redstone 5 apporte le support du clavier SwitftKey à Windows, en plus d’une poignée d’autres nouvelles fonctionnalités. En revanche, le blocage des vidéos en lecture automatique dans Edge est reporté à une prochaine version.
    Source de l’article sur ZDNet