Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Une fonction Quarkus déployée dans K3S avec Fission

Une fonction Quarkus déployée dans K3S avec Fission

Une fonction Quarkus déployée dans K3S avec Fission

Quarkus est une nouvelle stack pour Java, orientée container, lui permettant de prendre le virage du runtime léger et rapide à démarrer. Du coup comment ça se passe pour un déploiement dans Kubernetes ? Est-ce que ça marche en mode serverless ? C’est ce que nous allons explorer en live-coding dans ce talk où notre fonction Quarkus sera développée, déployée dans le Kubernetes K3S ultra-léger et exécutée en serverless avec Fission !

Sébastien Moreno

November 15, 2019
Tweet

More Decks by Sébastien Moreno

Other Decks in Technology

Transcript

  1. IPPON 2019 IPPON 2019 Sébastien MORENO. #architect #devops #cloud #java

    #docker #agile #developpeur #opensource #collaboratif #passionne @Bordeaux https://github.com/sebastienmoreno @sebastienmoreno
  2. Quarkus - Supersonic Subatomic Java • Quarkus adapte l’application Java

    pour GraalVM et HotSpot • Container first philosophy, très orienté Kubernetes et micro-services • • Build time metadata processing, Reflection limitation • Image native avec ‘pre-boot’ ➔ Temps de démarrage rapide ➔ Très faible consommation mémoire ➔ Montée en charge rapide • Commencé en mars 2019 • Release V1.0 prochainement Quarkus Ecosystem : Extensions pour configurer et intégrer frameworks (ORM, Web, Messaging…). Adaptation pour le build natif. https://code.quarkus.io/
  3. k3s - Rancher • Binaire unique de 40 Mo, utilise

    512 Mo de RAM • Support de ARM64 et ARMv7 Plus light: • Remplacement de etcd3 par sqlite3 • Ajout de Containerd, CoreDNS, Flannel • Suppression des éléments legacy, alpha, non-default (rétrocompatibilité), des plugins cloud providers et stockage, Docker (optional) CI ARM k3s a passé avec succès les tests « Certified Kubernetes Distribution » du CNCF IoT Edge
  4. Fission • Framework de fonctions pour Kubernetes. • Mapper sur

    des requêtes HTTP, K8S Watches, MessageQ... • Déploiement par CLI, sans conteneurs ni registry • Très orienté AWS Lambda: code first • Autoscalling sur CPU, démarrage rapide (pool de containers, cold start ~100msec) • Workflow de fonction. Intègre Istio. Canary deployment automation. Function Environment Router Pool de containers pour runtime Déploie code de la fonction Routage HTTP pour accès fonction
  5. En conclusion ! • Support HA non disponible out-of-the-box (Issue

    en cours #42), maturité pour l’installation (public registry...), documentation • Projet très actif, début d’ecosystem • features riches : Workflow, builder, triggers mutiples... • Execution image native Quarkus non disponible (faire votre propre proxy!) • Bonne intégration, mais l’avenir est plutôt du côté de Knative • Début en mars et version V1 pas encore sortie, mais très bonne maturité, ecosystem riche et docs disponible. • Très prometteur pour la communauté Java