Une expérience locale rapide et facile de Cloud Foundry pour les développeurs via CF Dev / Stratos ou PCF Dev …

Karim
10 min readApr 15, 2019

--

Je vais m’intéresser dans cet article à l’un projet de l’incubateur de Cloud Foundry à savoir CF Dev et son pendant chez Pivotal PCF Dev :

et qui fait suite à ce précédent article :

Pour rappel, Cloud Foundry est un PaaS open source qui permet de créer, de déployer, d’exécuter et de faire évoluer des applications sur des modèles de Cloud public et de Cloud privé. La plateforme est sous licence Apache 2.0 et prend en charge Java, Node.js, Go, PHP, Python et Ruby. Personnalisable, elle permet de programmer en plusieurs langages et sous plusieurs infrastructures. Cette caractéristique écarte le risque de dépendance vis-à-vis d’un fournisseur ; un problème fréquent en matière de PaaS.

Je commence par lancer une instance Ubuntu 18.04 chez Scaleway dôtée des fameux processeurs AMD EPYC avec des extensions virtualisation actives :

et j’y installe QEMU et Libvirt :

$ sudo apt install qemu-kvm libvirt-bin libvirt-doc

Après cela, je peux récupérer l’archive Linux de PCF Dev depuis Pivotal Network :

et le plugin cfdev :

Je lance PCF Dev avec le client (pour rappel, la gestion de l’infrastructure, Cloud Foundry utilise BOSH Director, un outil open source dédié à la gestion du déploiement et du cycle de vie de la plateforme) :

et je peux me connecter à ma plateforme locale :

ou graphiquement via la console web intégrée de Pivotal Application Services :

Petit test rapide de déploiement d’une application Node.js :

toujours via le client Cloud Foundry (cf cli) :

Une route m’est retournée que j’utilise pour visualiser mon application dans le navigateur web :

et elle apparaît dans la console :

J’en profite pour scaler cette application (à 4 instances ici) :

Autre test avec le traditionnel démonstrateur FranceConnect :

et avec la possibilité de scaler cette application depuis la ligne de commande :

et la route qui m’est retournée :

Il est également possible d’activer l’utilisation du moteur Docker via Diego dans la plateforme et je lance directement une image docker du démonstrateur FC Agent :

avec une route qui m’est retournée encore une fois :

ainsi que les logs de l’application :

le tout consomme un peu plus de 8 Go de mémoire vive sur la plateforme :

Autrement, il est aussi possible d’utiliser en open source CF Dev sur le dépôt github de l’incubateur Cloud Foundry. Je réutilise mon instance sur Scaleway pour l’installer :

$ cf install-plugin -r CF-Community cfdev

$ cf dev start

Comme on peut le voir, on utilise ici l’image Docker officielle de Stratos :

via ce manifest en YAML :

La console Stratos est accessible localement :

Je peux visualiser les buildpacks à disposition :

Je déploie en test le projet OpenAcademie qui utilise Next.js via son image Docker :

et ce fichier d’un manifest très simple en YAML :

L’application apparaît dans la console Stratos :

avec la route fournie :

Quand le déploiement de l’application est conforme on peut alors procéder à un déploiement dans un cluster Cloud Foundry grandeur nature. Déploiement ici dans Azure via le template ARM qui simplifie le processus de son installation :

avec ce type d’architecture :

et ces composants :

Je me connecte à la plateforme via la DevBox qui contient tout le nécessaire pour se connecter et déployer sur cette dernière :

Cela a généré le déploiement d’un peu plus de 16 machines virtuelles ici :

Je déploie la console Stratos de la même manière que précédemment :

et la console Stratos est accessible :

et j’utilise Gitlab et un pipeline pour automatiquement tester et déployer mon application du démonstrateur FranceConnect Agent sur cette plateforme :

Gitlab et son Runner tourne ici sous la forme de container Docker dans une instance Ubuntu :

Dans les sources du démonstrateur j’ai initialement placé le fichier .gitlab-ci.yml :

Les phases de test et de déploiement du pipeline sont activées automatiquement :

Le déploiement est réussi et je le visualise sur la console Stratos :

et je scale cette application (comme précédemment à 4 instances) :

La route m’est retournée pour que je puisse accéder publiquement à cette application (par le biais d’un service Wildcard DNS avec xip.io) :

PCF Dev et CF Dev sont des distributions de petite taille Cloud Foundry destinées à être exécutées localement sur une machine de développement. Elles fournissent rapidement les éléments essentiels de Cloud Foundry grâce à un ensemble condensé de composants qui seront complémentaire à à un processus d’intégration et de déploiement continu sur son cluster Cloud Foundry de production …

A noter que Kubernetes rejoint Cloud Foundry au travers du projet officiel Eirini (qui dérive du projet SUSE Cloud Foundry) :

On peut en retrouver une implémentation via SCF sur Microk8s ici :

A suivre en même temps que les nombreux autres projets de la fondation Cloud Foundry ! …

--

--