Garden v0.10.0: Votre ordinateur portable n'a pas besoin de Kubernetes

Remarque perev. : Nous avons rencontré des passionnés de Kubernetes du projet Garden lors du récent événement KubeCon Europe 2019 , où ils nous ont fait bonne impression. Ce matériel, écrit sur un sujet technique pertinent et avec un sens de l'humour perceptible, en est une confirmation claire, et nous avons donc décidé de le traduire.

Il parle du principal produit (éponyme) de l' entreprise, dont l'idée est d'automatiser les workflows et de simplifier le développement d'applications dans Kubernetes. Pour ce faire, l'utilitaire vous permet de déployer facilement (littéralement avec une seule commande) le déploiement de nouvelles modifications apportées au code dans le cluster de développement, et fournit également des ressources / caches partagées pour accélérer l'assemblage et les tests du code par l'équipe. Il y a deux semaines, Garden avait une version 0.10.0 , dans laquelle il était devenu possible d'utiliser non seulement un cluster Kubernetes local, mais aussi un cluster distant: cet article est consacré à cet événement.

Le moins que j'aime travailler avec Kubernetes sur mon ordinateur portable. Le «pilote» absorbe son processeur et sa batterie, fait tourner les refroidisseurs sans s'arrêter et est difficile à entretenir.


Stock Photo dans un thème pour améliorer l'effet

Minikube, kind, k3s, Docker Desktop, microk8s, etc. - Grands outils conçus pour rendre Kubernetes aussi pratique que possible, et merci pour cela. Sérieusement. Mais de quelque côté que vous regardiez, une chose est claire: Kubernetes n'est pas adapté pour fonctionner sur mon ordinateur portable. Et l'ordinateur portable lui-même n'est pas conçu pour fonctionner avec un cluster de conteneurs dispersés sur plusieurs couches de machines virtuelles. La pauvre fait de son mieux, mais elle n'aime manifestement pas cette profession, montrant son mécontentement face aux hurlements des glacières et s'efforçant de lui brûler les hanches lorsque je le mets imprudemment à genoux.

Disons: un ordinateur portable est un ordinateur portable.

Garden est un outil de développement dans le même créneau que Skaffold et Draft. Il simplifie et accélère le développement et les tests des applications Kubernetes.

Depuis le tout début des travaux sur le Jardin, il y a environ 18 mois, nous savions que le développement local des systèmes distribués était une solution temporaire, nous avons donc posé une flexibilité considérable et une base solide au Jardin.

Nous sommes maintenant prêts à prendre en charge les environnements Kubernetes locaux et distants. Le travail est devenu beaucoup plus simple: l'assemblage, le déploiement et les tests peuvent désormais être effectués dans un cluster distant.

En bref:

Avec Garden v0.10, vous pouvez complètement oublier le cluster Kubernetes local et toujours obtenir une réponse rapide aux modifications du code. Tout cela est gratuit et open source.


Profitez de la même commodité lorsque vous travaillez avec des environnements locaux et distants

Avez-vous attiré votre attention?


Et je m'en réjouis, car nous avons encore beaucoup de puces intéressantes! L'utilisation générale des clusters de développement a des implications plus larges, en particulier pour les équipes collaboratives et les pipelines CI.

Comment ça?

Tout d'abord, le collecteur intra- cluster - qu'il s'agisse du démon Docker ou Kaniko standard - ainsi que le registre intra- cluster sont communs à l'ensemble du cluster . Votre équipe peut utiliser le cluster de développement ensemble, avec des caches d'assemblage et des images disponibles pour tous les développeurs. Étant donné que Garden étiquette les images en fonction des hachages source, les étiquettes et les calques sont définis sans ambiguïté et de manière cohérente.

Cela signifie que dès qu'un développeur crée une image, il devient disponible pour toute l'équipe . Jour après jour, nous téléchargeons les mêmes images de base et réalisons les mêmes versions sur les ordinateurs. Curieux de savoir combien de trafic et d'électricité sont gaspillés? ..

On peut en dire autant des tests: leurs résultats sont disponibles pour l'ensemble du cluster et tous les membres de l'équipe. Si l'un des développeurs a testé une certaine version du code, il n'est pas nécessaire de répéter le même test.

En d'autres termes, le fait n'est pas seulement que vous n'avez pas besoin d'exécuter le minikube. Ce saut ouvre la porte à de nombreuses opportunités d'optimisation pour votre équipe - plus de builds et de tests supplémentaires!

Et CI?


La plupart d'entre nous sont habitués au fait que CI et dev local sont deux mondes distincts qui doivent être configurés séparément (et ils n'utilisent pas de cache commun). Maintenant, ils peuvent être combinés et se débarrasser de l'excès:

Vous pouvez exécuter les mêmes commandes dans CI et dans le processus de développement, ainsi qu'utiliser un seul environnement, des caches et des résultats de test.

Essentiellement, votre CI devient un développeur de bot travaillant dans le même environnement que vous.


Éléments du système; développement et test sans entrave

Vous pouvez grandement simplifier les configurations de pipelines CI. Pour ce faire, il suffit d'exécuter Garden à partir de CI pour les builds, les tests et les déploiements. Étant donné que vous et CI utilisez le même environnement, la probabilité de rencontrer des problèmes de CI est beaucoup plus faible.

Creuser dans d'innombrables lignes de configs et de scripts, puis push'i, attente, espoir et répétitions sans fin ... Tout cela est du passé. Vous faites juste du développement. Pas de mouvements inutiles.

Et pour clarifier enfin la situation: lorsque vous ou un autre représentant de l'équipe avez collecté ou testé quelque chose à l'aide de Garden, la même chose s'est produite pour CI . Si vous n'avez rien changé après les tests, vous n'avez pas besoin de réaliser des tests (ou même des assemblages) pour CI. Garden fait tout par lui-même, puis passe à d'autres tâches, telles que l'organisation d'un environnement de pré-lancement, la transmission d'artefacts, etc.

Cela semble tentant. Comment essayer?


Bienvenue dans notre référentiel GitHub ! Installez Garden et jouez avec des exemples. Pour ceux qui utilisent déjà Garden ou veulent mieux les connaître, nous proposons le Guide Remote Kubernetes . Rejoignez-nous sur la chaîne #garden dans Kubernetes Slack si vous avez des questions, des préoccupations ou si vous souhaitez simplement discuter. Nous sommes toujours prêts à aider et à accueillir les commentaires des utilisateurs.

PS du traducteur


Bientôt, nous publierons également un aperçu des utilitaires utiles pour les développeurs d'applications opérant dans Kubernetes, qui, en plus de Garden, ont d'autres projets intéressants ... En attendant, lisez également sur notre blog:

Source: https://habr.com/ru/post/fr459586/


All Articles