Únase a nuestra comunidad de Telegram para líderes tecnológicos de Web3
Aquí reuniremos a directores de tecnología, líderes de DevOps y otros expertos interesados en sumergirse en la infraestructura blockchain más allá de lo que puede encontrar en línea
¿Has estado alguna vez en Tokio? Lo primero que me cautivó fue la forma en que funciona el metro (sí, esta tautología se hizo a propósito:)). Esta organización obsesionada con el tiempo del personal, los trenes, los pasajeros, la rutina de limpieza, las llegadas y las salidas, basada en una disciplina estricta es una de las arterias de infraestructura más importantes de los habitantes de Tokio que no duermen. Me imaginé a toda la ciudad envuelta en una red que siempre funcionaba, lo que me recuerda a las redes de cadenas de bloques.
En particular, todo esto del metro es la analogía perfecta para las relaciones entre la cadena de bloques y Kubernetes. Un sistema distribuido tan complejo debe sincronizarse en cada nudo, en cada estación y dentro de cada tren con una latencia cero. Necesita un estilo de gestión especial que prevea reglas estrictas y libertad de acción. El K8s funciona aquí como sistema de comunicación para despachadores, como reglamento de prestación de servicios y como guía técnica para la infraestructura de ferrocarriles, trenes, etc.
Así que, ya que estás leyendo un blog de Dysnix, no mi blog de viajes imaginarios, exploraremos el tema de la cadena de bloques y Kubernetes con más detalle. Examinaremos los casos más populares del portafolio de Dysnix para descubrir cómo Kuber resuelve los desafíos de las aplicaciones descentralizadas.
Qué es la cadena de bloques para Kubernetes: un campo amplio para aplicar k8s
Las redes blockchain son una sinfonía de componentes (nodos de validación, contratos inteligentes, mecanismos de consenso), cada uno de los cuales desempeña un papel crucial. Tradicionalmente, la implementación y la administración de estos componentes y la administración manual del repositorio de versiones eran un trabajo manual.
Nos acostumbramos a imaginar la cadena de bloques como un sistema inmutable, seguro, descentralizado y distribuido, pero nadie se preguntó cuánto cuesta hacerlo de esta manera. Desde la base del hardware hasta las capas adicionales de aplicaciones y API, cada red de cadena de bloques o aplicación creada sobre ella pasa por el mismo procedimiento de implementación, lanzamiento, mantenimiento y soporte. Administrar esos libros de contabilidad distribuidos puede ser una pesadilla debido a las implementaciones en expansión, el escalado manual y la supervisión constante. Por lo tanto, para que todo funcionara antes de que apareciera el k8, la red estructural requería mucho trabajo manual.
Se necesitaron horas para realizar operaciones que hoy requieren segundos, gracias a k8s.
Qué es Kubernetes para blockchain y por qué le gusta tanto a DevOps de blockchain
Kubernetes hace que la rutina operativa sea más simple, rápida y controlable. Más adelante, su sistema se vuelve más autosuficiente y solo tiene que dedicar tiempo a observar cómo funciona sin fallos.
¡Contenedoriza todo el desorden de nodos y envíalo en cadena!
Este es un sueño de DevOps. Con K8s, podemos empaquetar todos los componentes de la cadena de bloques en contenedores, unidades ligeras y portátiles que empaquetan todo lo que una aplicación necesita para ejecutarse. Imagina implementar toda tu red de cadenas de bloques con un único archivo YAML usando kubectl apply -f my-blockchain.yaml. ¡Bum!
Los nodos de validación están en funcionamiento en todo el clúster de Kubernetes y están preconfigurados con los recursos adecuados. ¿Necesitas añadir un nuevo contrato inteligente? Simplemente cree una nueva imagen de contenedor e impleméntela junto con las demás. K8s se encarga del trabajo pesado, garantizando la coherencia y la repetibilidad en todas las implementaciones.
Este es un ejemplo de un fragmento de código para una implementación básica de Kubernetes de un nodo validador:
Es así de fácil, solo unas pocas líneas de código. Este ejemplo de implementación de un nodo validador me recordó a nuestro Caso Nansen que usó k8s:
Escalado en piloto automático
El tráfico de la cadena de bloques puede ser impredecible. En un momento, es un flujo de transacciones y, al siguiente, es un tsunami. Escalar manualmente los nodos de validación para mantenerse al día es una receta para el agotamiento. ¡Los K8 al rescate! Podemos definir los escaladores automáticos de módulos horizontales (HPA) que ajustan automáticamente el número de réplicas de nodos de validación en función de métricas predefinidas, como el uso de la CPU o el volumen de transacciones.
Imagine un escenario en el que el volumen de transacciones se dispare. La HPA detecta el aumento de la carga y activa automáticamente nodos de validación adicionales para gestionar el aumento. Una vez que el tráfico disminuye, la HPA reduce el número de nodos, lo que ahorra valiosos recursos. Este tipo de escalado inteligente mantiene el rendimiento y la rentabilidad de la red.
La mayoría de los milagros que los ingenieros de DevOps de Dysnix manifiestan en cuanto a la velocidad, seguridad, disponibilidad y otras características de los nodos son posibles gracias al uso magistral de k8s.
Suceden cosas. Los nodos fallan, los contenedores fallan. Pero con los K8, no tienes que esforzarte para arreglar las cosas manualmente. K8s emplea mecanismos de recuperación automática, como sondas de disponibilidad y disponibilidad, para monitorear constantemente el estado de su red de cadenas de bloques. Si un nodo deja de funcionar, K8s reinicia automáticamente el contenedor, lo que garantiza que su red permanezca operativa con un tiempo de inactividad mínimo.
O puede que ni siquiera conozcas ningún problema porque tus DevOps de Dysnix configuran la rotación de nodos como una rutina de autorreparación; por lo tanto, tienes nodos 100% sanos en producción. La disponibilidad permanente es una regla para nuestros proyectos.
Ejemplo del mundo real: Hyperledger Fabric en k8s
Hyperledger Fabric, un popular marco de cadena de bloques, aprovecha los K8 para simplificar las implementaciones y la administración. Los componentes de Fabric, como chaincode y los pares, están en contenedores, lo que permite escalar y versionar fácilmente. K8s se encarga de la asignación de recursos, las comprobaciones de estado y la recuperación automática, lo que permite a los desarrolladores centrarse en crear aplicaciones de cadena de bloques innovadoras.
¿Cuáles son las alternativas para los k8s en la cadena de bloques?
Si bien Kubernetes (K8s) se ha convertido en una opción popular para administrar redes de cadenas de bloques, se deben considerar algunas alternativas según sus necesidades específicas.
Este enfoque te lleva de vuelta antes de k8s a la construcción manual de tu infraestructura y scripts de automatización para implementar y gestionar la red de blockchain.
Otras plataformas de orquestación de contenedores:
Aunque no se utilizan tan ampliamente como K8s en el espacio de blockchain, plataformas como Docker Swarm y Mesos también ofrecen orquestación de contenedores para proyectos Web3.
Pero, ¿cómo elegir? Vamos a descubrirlo comparando estas herramientas y enfoques (más abajo, TL; DR):
Característica
Kubernetes
Servicios basados en la nube (CBS)
Soluciones de implementación personalizadas
Orquestadores de contenedores alternativos
Implementación
Manual (YAML) o herramientas automatizadas
Entornos preconfigurados
Requiere desarrollo y scripting
Manual (YAML o específico de la plataforma)
Flexibilidad
Altamente personalizable
Baja, limitada por la plataforma
Alta, control total
Depende de la plataforma
Escalabilidad
Alta, automática con Escalador de Pod Horizontal (HPA)
Alta, administrada por la plataforma
Alta, requiere scripting personalizado
Depende de la plataforma
Seguridad
Requiere configuración con mejores prácticas
Administrada por la plataforma (modelo de responsabilidad compartida)
Requiere implementación de seguridad personalizada
Requiere configuración con mejores prácticas
Monitoreo y Registro
Requiere integración con herramientas externas
Administrado por la plataforma (acceso limitado)
Requiere implementación personalizada
Requiere integración con herramientas externas
Costo
Variable según la infraestructura y los recursos
Precios basados en suscripción
Requiere costos iniciales de desarrollo e infraestructura
Variable según la infraestructura y la licencia
Fácil de usar
Moderado, requiere cierta experiencia técnica
Fácil, se requiere conocimientos técnicos mínimos
Desafiante, requiere experiencia significativa en desarrollo
Depende de la familiaridad con la plataforma, típicamente moderada
Bloqueo del proveedor
No, plataforma de código abierto
Sí, bloqueado en un proveedor de nube específico
No, control total sobre el entorno
Depende de la plataforma elegida
Comunidad y soporte
Soporte de comunidad grande y activa
Soporte proporcionado por el proveedor de la nube
Limitado a la experiencia interna
Depende de la plataforma elegida
Servicios basados en la nube son una buena opción para los principiantes o para aquellos que quieren una solución rápida y fácil. Sin embargo, carecen de la flexibilidad y la personalización que ofrecen los K8 o las soluciones personalizadas.
Soluciones de despliegue personalizadas ofrecen el mayor control pero requieren el mayor esfuerzo de desarrollo. Son los más adecuados para grandes organizaciones con equipos de DevOps dedicados.
Orquestadores de contenedores alternativos puede ser una buena opción si tu equipo ya tiene experiencia con ellos o tiene requisitos específicos que los K8 no cumplen. Sin embargo, es posible que tengan una comunidad más pequeña y menos funciones diseñadas específicamente para la gestión de la cadena de bloques.
En todos los demás casos—Kubernetes es tu elección perfecta.
Las 5 formas más populares de usar Kubernetes para aplicaciones de cadena de bloques basadas en características únicas de k8s
Kubernetes (K8s) se ha convertido en un punto de inflexión para la gestión de aplicaciones de cadena de bloques debido a sus características únicas. Estas son 5 de las formas más populares en las que K8s potencia las aplicaciones de cadena de bloques:
Implementaciones simplificadas y repetibles (configuración declarativa)
La configuración declarativa con archivos YAML te permite definir el estado deseado de tu red blockchain (por ejemplo, número de nodos de validación, asignación de recursos). Conduce a despliegues simplificados en todos los entornos.
El control de versiones de archivos YAML garantiza consistencia y repetibilidad, lo cual es crucial para la estabilidad de la red blockchain. Imagina desplegar una red blockchain multi-nodo compleja con un solo comando kubectl apply.
Escalado elástico basado en la demanda (HPA)
Los HPA escalan automáticamente las implementaciones (por ejemplo, los nodos de validación) en función de métricas predefinidas, como el uso de la CPU o el volumen de transacciones.
Esto garantiza un rendimiento fluido durante los períodos de alto volumen de transacciones y evita el despilfarro de recursos durante los períodos de poco tráfico. Imagine que su red de cadena de bloques amplía automáticamente los nodos de validación para gestionar un aumento repentino de las transacciones en criptomonedas.
En Dysnix fuimos aún más lejos e inventamos nuestra versión mejorada de HPA:el escalador automático predictivo que utiliza la inteligencia artificial para mencionar y reaccionar ante las primeras señales de futuros picos de tráfico.
¿Te parece interesante? Una charla de 20 minutos con nuestros expertos técnicos aclarará cualquier duda para ti.
Sondas Liveness & Readiness para una alta disponibilidad
El K8s monitorea continuamente el estado de los contenedores mediante sondas de disponibilidad y preparación. Si un nodo no funciona correctamente, K8s reinicia automáticamente el contenedor, lo que garantiza una alta disponibilidad.
Esta función minimiza el tiempo de inactividad y mantiene la integridad de la red. Un nodo validador no autorizado no hace caer toda tu red de cadenas de bloques. K8s detecta el problema y reinicia el contenedor, lo que garantiza un funcionamiento continuo.
Modularización y aislamiento con contenedorización
Los contenedores K8 proporcionan aislamiento y garantizan entornos de ejecución consistentes. Esto simplifica el desarrollo, las pruebas y la implementación. Los cambios en un componente específico (por ejemplo, un contrato inteligente) se aíslan dentro de su contenedor, lo que minimiza las fallas en cascada.
Con k8s, puede actualizar fácilmente un contrato inteligente sin afectar a otros componentes de su red blockchain.
Políticas de red declarativas y políticas de seguridad de módulos
K8s aplica políticas de seguridad a nivel de red y pod, restringiendo los canales de comunicación y los privilegios de acceso. Refuerza la seguridad general de la cadena de bloques al controlar la comunicación entre los componentes y evitar el acceso no autorizado.
Imagine definir políticas de red para impedir que los nodos validadores se comuniquen con entidades que no son de confianza, mejorando la seguridad de su red blockchain.
Establecer el ritmo de sincronización para los sistemas descentralizados
Así que ahí lo tienes. Esperamos que os guste nuestro pequeño viaje a la relación entre la cadena de bloques y Kubernetes. Si tiene alguna pregunta, no dude en continuar con nuestra conversación en nuestro página oficial de X.
También lo invitamos a echar un vistazo más de cerca a nuestros casos. Dysnix configura un seguimiento personalizado para casi todos los proyectos en los que trabajamos. Nansen, PancakeSwap y GotBit son nuestros favoritos cuando se trata de la sinergia entre blockchain-k8.
Le invitamos amablemente a nuestro Sala de chat Web3, donde los principales entusiastas de la cadena de bloques de alto nivel comparten sus desafíos y soluciones, o simplemente escríbenos directamente. Siempre estamos abiertos a nuevas oportunidades.
Y como siempre, gracias por leer 🙂
Olha Diachuk
Writer at Dysnix
10+ years in tech writing. Trained researcher and tech enthusiast.