Nota perev. : Conocimos a entusiastas de Kubernetes del proyecto Garden en el reciente evento KubeCon Europe 2019 , donde nos dejaron una buena impresión. Este material, escrito sobre un tema técnico relevante y con un notable sentido del humor, es una clara confirmación de esto, y por lo tanto decidimos traducirlo.
Habla sobre el producto principal (epónimo) de la compañía, cuya idea es automatizar los flujos de trabajo y simplificar el desarrollo de aplicaciones en Kubernetes. Para hacer esto, la utilidad le permite implementar fácilmente (literalmente con un comando) nuevos cambios realizados en el código en el clúster de desarrollo, y también proporciona recursos compartidos / cachés para acelerar el ensamblaje y las pruebas del código por parte del equipo. Hace dos semanas, Garden organizó el lanzamiento de 0.10.0 , en el que fue posible usar no solo el clúster local de Kubernetes, sino también el remoto: este artículo está dedicado a este evento.Lo que menos me gusta es trabajar con Kubernetes en mi computadora portátil. El "piloto" absorbe su procesador y batería, hace que los enfriadores giren sin parar y es difícil de mantener.
Foto de archivo en un tema para mejorar el efecto Minikube, kind, k3s, Docker Desktop, microk8s, etc. - Excelentes herramientas diseñadas para hacer que Kubernetes sea lo más conveniente posible, y agradecerles por eso. En serio Pero desde cualquier lado que mire, una cosa está clara: Kubernetes no está adaptado para ejecutarse en mi computadora portátil. Y la computadora portátil en sí no está diseñada para funcionar con un grupo de contenedores dispersos en capas de máquinas virtuales. Lo pobre está haciendo todo lo posible, pero claramente no le gusta esta ocupación, mostrando su disgusto con el aullido de los refrigeradores y luchando por quemarle las caderas cuando imprudentemente lo puse de rodillas.
Digamos: una computadora portátil es una computadora portátil.Garden es una herramienta para desarrolladores en el mismo nicho que Skaffold y Draft. Simplifica y acelera el desarrollo y las pruebas de las aplicaciones de Kubernetes.
Desde el comienzo del trabajo en Garden, hace unos 18 meses, sabíamos que el desarrollo
local de sistemas distribuidos era una solución temporal, por lo que establecimos una flexibilidad considerable y una base sólida en Garden.
Ahora estamos listos para admitir entornos Kubernetes locales y remotos. El trabajo se ha vuelto mucho más simple: el ensamblaje, la implementación y las pruebas ahora se pueden llevar a cabo en un clúster remoto.
En resumen:
Con Garden v0.10, puede olvidarse por completo del clúster Kubernetes local y aún así obtener una respuesta rápida a los cambios en el código. Todo esto es gratis y de código abierto.
Disfruta de la misma comodidad cuando trabajas con entornos locales y remotos¿Recibiste tu atención?
¡Y me alegro de eso, ya que todavía tenemos muchas fichas interesantes! El uso general de clusters de desarrollo tiene implicaciones más amplias, especialmente para equipos colaborativos y canalizaciones de CI.
¿Cómo es eso?En primer lugar, el recopilador dentro del
clúster , ya sea el Docker estándar o el demonio Kaniko, así como el registro dentro del
clúster son comunes
a todo el clúster . Su equipo puede usar el clúster de desarrollo juntos, con cachés de ensamblaje e imágenes disponibles para todos los desarrolladores. Debido a que Garden etiqueta imágenes basadas en hashes de origen, las etiquetas y capas se definen de manera inequívoca y consistente.
Esto significa que tan pronto como un desarrollador cree una imagen, estará
disponible para todo el equipo . Día tras día, descargamos las mismas imágenes básicas y hacemos las mismas compilaciones en las computadoras. ¿Curioso cuánto tráfico y electricidad se desperdician? ..
Lo mismo puede decirse de las pruebas: sus resultados están disponibles para todo el grupo y todos los miembros del equipo. Si uno de los desarrolladores probó una determinada versión del código, no hay necesidad de repetir la misma prueba.
En otras palabras, el punto no es solo que no necesita ejecutar minikube. Este salto abre la puerta para su equipo a
muchas oportunidades de optimización: ¡no más compilaciones adicionales y pruebas de ejecución!
¿Qué hay de CI?
La mayoría de nosotros estamos acostumbrados al hecho de que CI y el desarrollo local son dos mundos separados que deben configurarse por separado (y no usan un caché común). Ahora se pueden combinar y eliminar el exceso:
Puede ejecutar los mismos comandos en CI y en el proceso de desarrollo, así como utilizar un único entorno, cachés y resultados de pruebas.Esencialmente, su CI se convierte en un desarrollador de bots que trabaja en el mismo entorno que usted.
Elementos del sistema; desarrollo y pruebas sin obstáculosPuede simplificar enormemente las configuraciones de canalizaciones de CI. Para hacer esto, simplemente ejecute Garden desde CI para compilaciones, pruebas e implementaciones. Dado que usted y CI utilizan el mismo entorno, la probabilidad de encontrar problemas de CI es mucho menor.
Excavando en innumerables líneas de configuraciones y scripts, luego push'i, espera, esperanza y repeticiones sin fin ... Todo esto está en el pasado.
Solo estás haciendo desarrollo. Sin movimientos innecesarios.
Y para finalmente aclarar la situación:
cuando usted u otro representante del equipo recolectó o probó algo usando Garden, sucedió lo mismo con CI . Si no ha cambiado nada después de que se ejecute la prueba, entonces no necesita realizar pruebas (o incluso ensamblajes) para CI. Garden hace todo por sí mismo y luego pasa a otras tareas, como organizar un entorno previo al lanzamiento, empujar artefactos, etc.
Suena tentador ¿Cómo intentarlo?
¡Bienvenido a
nuestro repositorio de GitHub ! Instala Garden y juega con ejemplos. Para aquellos que ya usan Garden o quieren conocerlos mejor, ofrecemos la
Guía remota de Kubernetes . Únase a nosotros en el canal
#garden en Kubernetes Slack si tiene preguntas, inquietudes o simplemente desea chatear. Siempre estamos listos para ayudar y recibir comentarios de los usuarios.
PD del traductor
Pronto también publicaremos una descripción general de utilidades útiles para desarrolladores de aplicaciones que operan en Kubernetes, que, además de Garden, tienen otros proyectos interesantes ... Mientras tanto, lea también en nuestro blog: