IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cloud Computing Discussion :

LocalStack, un émulateur de services cloud


Sujet :

Cloud Computing

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Mai 2019
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2019
    Messages : 1 838
    Points : 36 226
    Points
    36 226
    Par défaut LocalStack, un émulateur de services cloud
    LocalStack, un émulateur de services cloud,
    conçu pour exécuter des applications sur une machine locale

    Les services cloud peuvent prendre la forme d'une infrastructure, d'une plateforme ou d'un logiciel, hébergés par des fournisseurs tiers et mis à disposition des utilisateurs par Internet. Ils facilitent le flux des données utilisateur par Internet entre les clients front-end, (serveur, tablette, ordinateur de bureau ou portable), et les systèmes du fournisseur. Pour accéder aux services cloud, les utilisateurs n'ont besoin que d'un ordinateur, d'un système d'exploitation et d'une connexion à Internet ou un réseau privé virtuel (VPN).

    LocalStack est un émulateur de services cloud qui s'exécute dans un seul conteneur sur ordinateur portable ou dans un environnement CI. Avec LocalStack, il est possible d’exécuter des applications AWS ou Lambdas entièrement sur une machine locale sans se connecter à un fournisseur de cloud distant ! Que vous testiez des applications CDK ou des configurations Terraform complexes, ou que vous commenciez tout juste à vous familiariser avec les services AWS, LocalStack aide à accélérer et à simplifier votre flux de travail de test et de développement. Plus de téléchargement fastidieux du code de l'application pour exécuter un test rapide. Plus d'argent dépensé pour des ressources de test coûteuses sur AWS.

    Nom : localstack.PNG
Affichages : 19632
Taille : 7,0 Ko

    Rappelons qu’un cloud est un environnement qui dissocie, regroupe et partage des ressources évolutives sur un réseau. Un cloud s'utilise dans le cadre d'une stratégie de cloud computing, qui consiste à exécuter des charges de travail dans un environnement cloud. Les clouds sont un type de PaaS, puisqu'une personne autre que l'utilisateur met à disposition l'infrastructure sous-jacente sur laquelle la plateforme web est fournie.

    À l'instar de toutes les autres solutions informatiques, les services cloud reposent sur du matériel et des logiciels. Toutefois, contrairement aux solutions matérielles et logicielles traditionnelles, les services cloud sont accessibles simplement à l'aide d'un ordinateur, d'une connexion réseau et d'un système d'exploitation. Les fournisseurs de services cloud peuvent également utiliser leurs ressources matérielles pour créer des plateformes cloud, qui sont des environnements en ligne où les utilisateurs peuvent développer du code ou exécuter des applications.

    Contrairement à une infrastructure cloud, la création d'une plateforme cloud implique plus que la séparation des capacités d'un ordinateur de ses composants matériels. Pour fournir des plateformes cloud, il faut ajouter des niveaux de développement supplémentaires pour intégrer des technologies telles que la conteneurisation, l'orchestration, les API (interface de programmation d'applications), le routage, la sécurité, la gestion et l'automatisation. Par défaut, LocalStack est lancé dans un conteneur Docker en exécutant :


    Il est possible d’utiliser directement docker et utiliser la commande suivante pour démarrer avec localstack :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docker run --rm -it -p 4566:4566 -p 4571:4571 localstack/localstack

    Il est également possible d’utiliser Helm pour installer LocalStack dans un cluster Kubernetes en exécutant les commandes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    helm repo add localstack-repo https://helm.localstack.cloud
    helm upgrade --install localstack localstack-repo/localstack

    LocalStack prend en charge un nombre croissant de services AWS, comme AWS Lambda, S3, Dynamodb, Kinesis, SQS, SNS, et bien d'autres encore ! La version Pro de LocalStack prend en charge des API supplémentaires et des fonctionnalités avancées. L’émulateur de services cloud propose également des fonctionnalités supplémentaires pour faciliter la vie des développeurs cloud ! Il fournit un cadre de test/mocking facile à utiliser pour développer des applications cloud. Il fait tourner un environnement de test sur une machine locale qui offre les mêmes fonctionnalités et API que le véritable environnement cloud AWS.

    Sur une machine locale, les développeurs peuvent exécuter les fonctions Lambda, stocker des données dans des tables DynamoDB, envoyer des événements via des flux Kinesis, placer l’application derrière une passerelle API. Le diagramme ci-dessous illustre le pipeline efficace du développement/test et de déploiement que permet LocalStack. LocalStack fournit toutes les ressources cloud nécessaires dans un conteneur local.

    Nom : localscarp.PNG
Affichages : 3600
Taille : 80,3 Ko

    Les changements sont fréquemment poussés vers un serveur d'intégration continue qui exécute les tests automatisés. LocalStack fournit toutes les ressources cloud nécessaires dans l'environnement du serveur d'intégration continue. Une fois que tous les tests sont au vert, l'application peut être déployée très simplement de manière transparente dans l'environnement réel du cloud AWS.

    Interagir avec LocalStack

    Il existe plusieurs façons d'interagir avec LocalStack. Pour essayer LocalStack, l'AWS CLI est un bon point de départ, mais il est également possible d’utiliser Terraform, CDK, les bibliothèques client AWS et de nombreux autres outils de l'écosystème AWS.

    AWS CLI

    Il est possible d’indiquer à AWS CLI (et à d'autres outils similaires) d'utiliser LocalStack en configurant le point de terminaison du service, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    aws --endpoint-url=http://localhost:4566 kinesis list-streams
    {
        "StreamNames": []
    }

    La commande ci-dessous peut être utilisée pour installer aws CLI, s'il n'est pas déjà installé.


    Configuration de la région locale et des informations d'identification pour exécuter LocalStack. AWS exige que la région et les informations d'identification soient définies afin d'exécuter les commandes AWS. Créez la configuration par défaut et les informations d'identification. La clé ci-dessous demandera l'ID de la clé d'accès, la clé d'accès secrète, la région et le format de sortie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    export AWS_ACCESS_KEY_ID=test
    export AWS_SECRET_ACCESS_KEY=test

    awslocal

    awslocal est un wrapper CLI léger qui exécute les commandes directement contre LocalStack (plus besoin de spécifier --endpoint-url). Il peut être intallé via pip install awscli-local, et utilisé ensuite comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    awslocal kinesis list-streams
    {
        "StreamNames": []
    }

    AWS CLI v2 avec Docker et LocalStack

    Par défaut, le conteneur exécutant amazon/aws-cli est isolé de 0.0.0.0:4566 sur la machine hôte, ce qui signifie qu'aws-cli ne peut pas atteindre localstack via le shell. Pour s'assurer que les deux conteneurs docker peuvent communiquer, il est nécessaire de créer un réseau sur le moteur docker :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ docker network create localstack
    0c9cb3d37b0ea1bfeb6b77ade0ce5525e33c7929d69f49c3e5ed0af457bdf123

    Puis modifiez le fichier docker-compose.yml en spécifiant le réseau à utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    networks:
      default:
        external:
          name: "localstack"

    Exécutez le conteneur docker AWS Cli v2 en utilisant ce réseau (exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566 lambda list-functions
    {
        "Functions": []
    }

    Pour utiliser AWS CLI v2 depuis un conteneur docker, il est nécessaire de créer un alias :

    $ alias laws='docker run --network localstack --rm -it amazon/aws-cli --endpoint-url=http://localstack:4566'

    Afin de pouvoir saisir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ laws lambda list-functions
    {
        "Functions": []
    }

    Source : LocalStack

    Et vous ?

    Quelle solution de cloud computing utilisez-vous ?

    Quel modèle de service cloud correspond le plus à vos besoins ?

    Que pensez-vous de LocalStack ?

    Voir aussi :

    Le recours au cloud s'accélère dans les entreprises. Le paysage reste dominé par AWS et Azure et le cloud hybride reste la stratégie la plus répandue, selon Global Cloud Survey de Denodo

    Les dépenses mondiales liées au cloud complet atteindront 1,3 billion de dollars d'ici 2025, avec un taux de croissance annuel composé (TCAC) de 16,9 %, selon IDC

    La sécurité dans le Cloud reste challengée par la complexité et le Shadow IT d'après IBM, principales menaces : Vol de données, cryptomining et ranswomware

    Quelle solution de cloud computing utilisez-vous ? Quel modèle de service cloud correspond le plus à vos besoins ? Tour d'horizon du marché
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Technicien de maintenance / Developpeur PHP
    Inscrit en
    Mai 2015
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien de maintenance / Developpeur PHP
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 428
    Points : 1 627
    Points
    1 627
    Par défaut
    Alors, je comprend et visualise bien où cela peut-être utile MAIS quand on en vient à "émuler" des services cloud, j'ai envie de dire qu'on est déjà partie trop loin dans l'abstraction .

    Le cloud n'était-il pas censé simplifier le développement de services en ligne ?
    Au lieu de ça, la complexité et les outils ne cessent de croitre.

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 789
    Points : 18 933
    Points
    18 933
    Par défaut
    Ça permet déjà de se former, de développer et de tester ses applications AWS, sans donner un centime à Amazon
    En fait certains qui ont développé et testés de nouvelles applis sur Amazon AWS ont fait parfois des erreurs de codage, ou parfois pas bien compris le modèle de tarification, et se sont retrouvés avec des notes très salées, bien plus que prévu, et parfois même tellement salées qu'ils ont du mettre hors ligne leurs applications et même déposer le bilan de leur startup.

    Donc cet outil est un début de solution au problème, en tout cas un moyen de débuter sans risquer une catastrophe des le départ
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  4. #4
    Membre confirmé
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    373
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 373
    Points : 512
    Points
    512
    Par défaut cloud , solution ?
    le cloud n'est pas la solution à tout.
    si vous envisagez une ou plusieurs applications de trés gros volume d'utilsateurs, alors, peut-etre. mais le cloud c'est pas donné, loin de la. c'est meme un gros piége au nieau des couts qui explosent trés rapidement.
    personnellement, j'aime pas reposer sur les services des autres et leurs limitations.

    et dans le cas ou on veut explorer ce qui pourra etre fait et comment avant de passer à l'echelle, cet outil me semble vital.
    ca peut aussi servir pour tester la solidité de l'application et sa sécurité.
    bref que du bon, à mon sens. pour ceux qui ont reellement besoin du cloud.
    ca a tout a fait sa place dans un centre de formation et dans les entreprises.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 41
    Points : 70
    Points
    70
    Par défaut
    Au lieu de ça, la complexité et les outils ne cessent de croitre
    Comme c'est plus simple, on peut faire compliqué plus rapidement.

  6. #6
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    J'ai l'impression que certains n'ont pas compris l'utilité de localstack. Il s'agit d'un outil très utile pour renforcer vos tests d'intégration, pour ne pas que vous tombiez dans le piège des libs de mock qui ne gèrent pas tous les cas possibles, notamment les exceptions au Runtime

    Exemple, je veux insérer une donnée volumineuse dans DynamoDB:
    • Avec Mockito: Cas toujours passant en local, la lib AWS lance une exception en prod
    • Avec Localstack: Erreur dans les tests, vous gérez ce cas et pas de problème en prod
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

Discussions similaires

  1. Bohu.A : le premier Trojan à s'attaquer aux services Cloud
    Par Gordon Fowler dans le forum Sécurité
    Réponses: 2
    Dernier message: 21/01/2011, 12h13
  2. HP dévoile « Instant-On Enterprise », une approche hybride des services Cloud
    Par Gordon Fowler dans le forum Forum général Solutions d'entreprise
    Réponses: 0
    Dernier message: 03/11/2010, 07h14
  3. Réponses: 0
    Dernier message: 13/10/2010, 23h33
  4. Réponses: 0
    Dernier message: 16/04/2010, 11h57
  5. Réponses: 1
    Dernier message: 29/10/2009, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo