Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. AWS Lambda
  3. Les fonctions Lambda et Eclipse Microprofile
Extrait - AWS Lambda Développez des micro-services en Java sur la plateforme serverless d'Amazon
Extraits du livre
AWS Lambda Développez des micro-services en Java sur la plateforme serverless d'Amazon
1 avis
Revenir à la page d'achat du livre

Les fonctions Lambda et Eclipse Microprofile

Introduction

Eclipse Microprofile est un ensemble de spécifications pour le développement des micro-services en Java. Il s’agit d’un projet communautaire qui connaît un certain nombre d’implémentations open source. Commencé en juin 2016, ce projet est en permanente évolution et fournit des spécifications d’API dédiées au développement des micro-services.

Introduction dans Eclipse Microprofile

Pendant plus de vingt ans, JCP (Java Community Process) a été la principale organisation coordonnatrice des efforts qui ont conduit à des dizaines de spécifications et implémentations, connues généralement sous le syntagme Java EE (Java Enterprise Edition). Des spécifications incontournables comme Servlet (JSR 315), EJB (Enterprise Java Beans - JSR 345), JMS (Java Messaging Service - JSR 343), JAX-WS (Java API for XML Based Services - JSR 224), JAX-RS (Java API for RESTful Web Services - JSR 339) et beaucoup d’autres, ainsi que leurs implémentations de référence, ont été produites sous l’égide de Java EE.

Mais lorsque, par un accident de l’histoire, toutes ces spécifications, ainsi que leurs implémentations, se sont subitement retrouvées sous la propriété d’Oracle, cela a mis un coup d’arrêt brutal à l’innovation et l’ensemble de la communauté internationale Java, avec JUG (Java Users Group) en tête, tout comme la grande majorité des acteurs de l’industrie logicielle, ont souhaité promouvoir un nouveau standard open source. Ce nouveau standard open source n’a pas tardé à apparaître et son nom est Eclipse Microprofile.

La première version des spécifications Microprofile...

Quarkus : Eclipse Microprofile par Red Hat

Les débuts du projet Quarkus datent de 2019. Quarkus est un environnement de développement Java qui implémente les spécifications Eclipse Microprofile et supporte nativement Kubernetes ; Kubernetes étant la plateforme la plus connue d’orchestration de container Linux.

De plus, Quarkus est aussi un environnement d’exécution de haute performance, car il instrumentalise GraalVM, la machine virtuelle capable du débit le plus rapide disponible actuellement sur le marché ainsi que de la latence la plus faible. Cela fait de Quarkus un outil particulièrement adapté au cloud en général et au serverless plus spécifiquement.

1. Intégration d’AWS Lambda avec Quarkus

En plus de toutes les facilités mentionnées précédemment, Quarkus fournit un mécanisme d’extension qui permet d’intégrer (quarker est le mot utilisé) des librairies Java et de générer du byte-code optimisé. Une de ces extensions, nommée quarkus-amazon-lambda-http, permet l’intégration avec la plateforme serverless d’Amazon. Dans ce chapitre, nous allons d’abord générer un projet maven qui allie Lambda et Quarkus. Ensuite, nous allons examiner de quelle manière les spécifications Eclipse Microprofile peuvent être utilisées de manière à développer des micro-services Quarkus et les déployer sur AWS lambda.

 Créez un nouveau répertoire destiné à héberger le futur nouveau projet maven Java.

 Positionnez-vous dans ce répertoire et exécutez la commande suivante :

nicolas@BEL20:~/AWSLambda/projects/aws-lambda/chapter10$ mvn archetype:generate \ 
>        -DarchetypeGroupId=io.quarkus \ 
>        -DarchetypeArtifactId=quarkus-amazon-lambda-http-archetype \ 
>        -DarchetypeVersion=1.8.0.Final 
[INFO] Scanning for projects... 
[INFO]  
[INFO] >>> maven-archetype-plugin:3.0.1:generate (default-cli) > generate-sources 
@ standalone-pom >>> 
[INFO]  
[INFO] <<< maven-archetype-plugin:3.0.1:generate (default-cli)...