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

Noter. trad.: Avec les passionnés de Kubernetes du projet Embellissez nous nous sommes rencontrés lors d'un événement récent KubeCon Europe 2019, où ils nous ont fait une agréable impression. Leur matériel, écrit sur un sujet technique d'actualité et avec un sens de l'humour notable, en est une confirmation claire, c'est pourquoi nous avons décidé de le traduire.

Il parle de l'essentiel (du même nom) produit entreprise, dont l'idée est d'automatiser les flux de travail 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) les nouvelles modifications apportées au code sur le cluster de développement, et fournit également des ressources/caches partagés pour accélérer la création et les tests du code par l'équipe. Il y a deux semaines, le Jardin a accueilli version 0.10.0, dans lequel il est devenu possible d'utiliser non seulement un cluster Kubernetes local, mais aussi distant : c'est à cet événement que est consacré cet article.

Ce que j’aime le moins, c’est travailler avec Kubernetes sur mon ordinateur portable. Le « timonier » consomme son processeur et sa batterie, fait tourner les refroidisseurs sans arrêt et est difficile à entretenir.

Garden v0.10.0 : votre ordinateur portable n'a pas besoin de Kubernetes
Photographies d'archives dans le thème pour un effet supplémentaire

Minikube, genre, k3s, Docker Desktop, microk8s, etc. - d'excellents outils créés pour rendre l'utilisation de Kubernetes aussi pratique que possible, et merci à eux pour cela. Sérieusement. Mais peu importe comment vous le regardez, 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. Le pauvre fait de son mieux, mais n'aime clairement pas cette activité, montrant son mécontentement face aux hurlements des glacières et essayant de se brûler les cuisses lorsque je le mets imprudemment à genoux.

Disons : ordinateur portable - ordinateur portable.

Embellissez est un outil pour les développeurs qui occupe le même créneau que Skaffold et Draft. Il simplifie et accélère le développement et les tests des applications Kubernetes.

Dès le moment où nous avons commencé à travailler sur Garden, il y a environ 18 mois, nous savions que local Le développement de systèmes distribués est une solution temporaire, c'est pourquoi Garden a intégré une flexibilité importante et une base solide.

Nous sommes désormais 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 un cluster Kubernetes local tout en obtenant une réponse rapide aux modifications de code. Tout cela est gratuit et open source.

Garden v0.10.0 : votre ordinateur portable n'a pas besoin de Kubernetes
Profitez de la même expérience dans les environnements locaux et distants

Vous avez retenu votre attention ?

Et j'en suis heureux, car nous avons beaucoup plus de fonctionnalités 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

Tout d'abord, le collecteur intra-cluster - qu'il s'agisse d'un démon Docker standard ou de Kaniko - ainsi que le registre intra-cluster sont partagés. pour l'ensemble du cluster. Votre équipe peut partager un cluster de développement, avec des caches de build et des images disponibles pour tous les développeurs. Étant donné que Garden balise les images basées sur les hachages sources, les balises et les couches sont définies de manière unique et cohérente.

Cela signifie qu'une fois qu'un développeur crée une image, elle devient à la disposition de toute l'équipe. Jour après jour, nous téléchargeons les mêmes images de base et réalisons les mêmes builds sur nos ordinateurs. Curieux de savoir combien de trafic et d'électricité sont gaspillés ?

Il en va de même pour les tests : leurs résultats sont accessibles à 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éexécuter le même test.

En d’autres termes, il ne s’agit pas simplement de ne pas exécuter minikube. Ce saut ouvre la voie à votre équipe pour beaucoup opportunités d'optimisation - plus de builds et de tests inutiles !

Et l'IC ?

La plupart d'entre nous sont habitués au fait que CI et le développement local sont deux mondes distincts qui doivent être configurés séparément (et ils ne partagent pas de cache). Vous pouvez désormais les combiner et vous débarrasser de l'excédent :

Vous pouvez exécuter les mêmes commandes dans CI et dans le processus de développement, aussi bien que utilisez un seul environnement, des caches et des résultats de tests.

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

Garden v0.10.0 : votre ordinateur portable n'a pas besoin de Kubernetes
Éléments du système ; développement et tests transparents

Les configurations de pipeline CI peuvent être considérablement simplifiées. Pour ce faire, exécutez simplement Garden depuis CI pour les builds, les tests et les déploiements. Puisque vous et le CI utilisez le même environnement, vous êtes beaucoup moins susceptible de rencontrer des problèmes de CI.

Fouiller d'innombrables lignes de configurations et de scripts, puis pousser, attendre, espérer et répéter sans fin... Tout cela appartient au passé. Vous faites juste du développement. Pas de mouvements inutiles.

Et pour enfin clarifier la situation : lorsque vous ou un autre membre de l'équipe avez construit ou testé quelque chose avec Garden, la même chose s'est produite pour CI. Si vous n'avez rien changé depuis l'exécution du test, vous n'avez pas besoin d'exécuter des tests (ni même des builds) pour CI. Garden fait tout lui-même et passe ensuite à d'autres tâches telles que l'organisation de l'environnement de pré-lancement, la diffusion d'artefacts, etc.

Cela semble tentant. Comment essayer ?

Добро пожаловать в notre dépôt GitHub! Installez Garden et jouez avec les exemples. Pour ceux qui utilisent déjà Garden ou qui souhaitent mieux le connaître, nous proposons Guide Kubernetes distant. Rejoignez-nous sur la chaîne #jardin dans Kubernetes Slack, si vous avez des questions, des problèmes ou si vous souhaitez simplement discuter. Nous sommes toujours prêts à vous aider et à accueillir les commentaires des utilisateurs.

PS du traducteur

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

Source: habr.com

Ajouter un commentaire