Révolutionnez votre développement Kubernetes avec Acorn

thumbernail kubernetes

Révolutionnez votre développement Kubernetes avec Acorn

Le développement sous Kubernetes peut être une expérience complexe et laborieuse. Si vous êtes vous aussi aux prises avec des problèmes de compatibilité et de déploiement, il est temps de découvrir Acorn, un outil révolutionnaire qui vous simplifiera la vie. Dans cet article, nous explorerons comment Acorn peut transformer votre processus de développement Kubernetes en une expérience fluide et cohérente.

Docker vs Kubernetes Environnements

Lorsque Kubernetes est votre objectif, il est essentiel d'avoir un environnement de développement le plus proche possible de votre cible de production. Cela réduit les risques de problèmes de compatibilité lors du déploiement sur Kubernetes. Mais comment y parvenir ? Voici quelques points clés à considérer :

Stack Locale

  • Les PC doivent être robustes en termes de ressources.
  • La stack locale doit inclure un ingress controller, un certificate manager, un fake DNS resolver et du stockage pour RWO, ROX, RWX, RWOP.
  • La provision de la stack locale doit être rapide.

Stack Distante

  • Comment déployer facilement les actifs locaux sur le cluster distant ?
  • Assurer une isolation, une standardisation et une sécurité optimales.

Helm pour les Développeurs ?

L'utilisation de Helm pour le déploiement peut être un défi pour de nombreux développeurs.

Voici quelques questions à considérer :

  • Comment simplifier la configuration des environnements ?
  • Comment utiliser le même chart en développement et en intégration ?
  • Comment permettre aux développeurs d'exposer leurs systèmes de fichiers locaux dans le cluster local ou distant ?
  • Comment éviter que les développeurs aient à maîtriser Helm, Kubernetes, le templating Go et d'autres outils ?
  • Comment déployer des environnements de développement qui consomment des services managés ?

La Solution : Acorn

Si vous connaissez Rancher, vous vous sentirez comme chez vous avec Acorn.

Acorn Labs, la société derrière Acorn, offre une solution innovante pour simplifier le déploiement sous Kubernetes.

Voici quelques points clés à retenir :

Acorn est un framework de "packaging" et de "déploiement" tout comme Helm, mais avec des différences fondamentales.

Il permet de "packager" et de déployer tous les composants d'une application dans un seul artefact au format OCI.

Acorn utilise un Acornfile pour décrire l'application.

Contrairement à Helm, Acorn est orienté développement, ce qui facilite son utilisation pour les développeurs. Acorn utilise une notation simple appelée AML (Acorn Markup Language) pour les définitions. Il propose une gamme d'opérations, telles que par exemple acorn install, acorn login, acorn run, acorn stop, acorn start, acorn rm...

Notions Importantes mais Simples

Acorn introduit plusieurs notions importantes mais simples à comprendre :

  • Args : Personnalisation du comportement de l'application.
  • Services : Composantes ou fonctionnalités de l'application.
  • Acorns : Unités de fonctionnalité autonomes.
  • Containers : Environnements isolés pour le code et les dépendances.
  • Jobs : Tâches ou processus ponctuels.
  • Routers : Gestion des demandes entrantes.
  • Volumes : Stockage persistant pour les données.
  • Secrets : Informations sensibles stockées de manière sécurisée.
  • LocalData : Données spécifiques à l'application.

Exemples d'Utilisation

pré-requis : avoir acorn installé sur un cluster kubernetes : https://docs.acorn.io/installation/installing

Découvrez des exemples d'utilisation concrets d'Acorn :

Exemple n°1 - Déploiement Simple

Nous allons prendre comme exemple cette application de démo décrite ici : https://kubernetes.io/docs/tutorials/stateless-application/guestbook/

cloner le repo : https://github.com/kubernetes/examples/tree/master/guestbook

Ajouter à la racine un fichier Acornfile contenant :

containers: 
{
  "redis-leader": {
    image: "docker.io/redis:6.0.5"
    ports: "6379/tcp"
  }
  "redis-follower": {
    image: "gcr.io/google_samples/gb-redis-follower:v2"
    ports: "6379/tcp"
  }
  php: {
    //image: "docker.io/herveleclerc/frontend:v5"
    build: {
        context: "./php-redis"
        dockerfile: "./php-redis/Dockerfile"
    }
    ports: publish: "80/http"
    if args.dev {
            dirs: "/var/www/html": "./php-redis"
    }
  }
}

Pour lancer cet exemple simplement lancer la commande :

# demo002 est le nom de 'application
acorn run -n demo002
# https://php-demo002-212061ec.um4piu.oss-acorn.io

Cette commande va :

  • Builder l'image php
  • Démarrer les services redis-leader et redis-follower basés sur les images de différentes registries publiques
  • Lancer le service php
  • Publier ce service sur un ingress automatique

Pour arreter l'application

acorn stop demo002

Pour supprimer l'application

acorn rm -fa demo002

Regardez lavidéo suivante pour voir toutes les étapes.

Exemple n°2 - Mode Dev

Arrêtez l'application et relancer la avec la commande suivante

acorn dev -b

Regardez la video suivante pour voir ce que vous pouvez faire en mode developpement (dev)

Exemple n°3 - Utilisation de Services

Utilisation de services gérés dans le cloud (Redis, PostgreSQL).

Création des "provisionner" sur Aiven

Un billet de blog sera consacré à ces actions !

Regardez la vidéo suivante pour voir la puissance d'acorn et la facilité de consommer des services externes (cloud)

# Build
acorn build -t docker.io/herveleclerc/redis-cloud-server:1.0.6 -t docker.io/herveleclerc/redis-cloud-server:latest

# Push
acorn push docker.io/herveleclerc/redis-cloud-server:1.0.6 && acorn push docker.io/herveleclerc/redis-cloud-server:latest

Dans le cadre rouge vous pouvez voir l'utilisation de services qui vont être créés sur le csp Aiven. On fait simplement l'appel a une image "Acorn" qui va provisionner le service les metadata du service seront disponibles sous la forme de @{service.[nom-du-service].[nom-de-la-variable]}

L'application dans le cadre magenta est configurée via des variables d'environnement alimentées par les variables des services.

Ce mode de fonctionnement est vraiment très puissant et souple.

En Résumé / Conclusions

En résumé, Acorn offre une solution simple avec une courbe d'apprentissage faible pour le développement sur Kubernetes. Il simplifie l'utilisation de services PAAS/SAAS et permet de créer des applications au format OCI. Si vous cherchez à rendre votre développement sous Kubernetes plus efficace et plus fluide, Acorn est l'outil qu'il vous faut.

N'hésitez pas à explorer Acorn Labs (acorn.io) pour en savoir plus sur cette révolution dans le développement Kubernetes.

Découvrez les technologies d'alter way