__wf_reserved_heredar
Blog__wf_reserved_heredar
Blockchain y Kubernetes: historias de caos orquestado
__wf_reserved_heredar

Blockchain y Kubernetes: historias de caos orquestado

__wf_reserved_heredar
__wf_reserved_heredar
Olha Diachuk
May 9, 2024

¿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:


YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  name: validator-node
spec:
  replicas: 3 # Scale your validator nodes easily
  selector:
    matchLabels:
      app: validator-node
  template:
    metadata:
      labels:
        app: validator-node
    spec:
      containers:
      - name: validator-node
        image: my-validator-node:latest # Replace with your image
        ports:
        - containerPort: 8080
      resources:
        requests:
          cpu: 100m
          memory: 256Mi

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:

La infraestructura de Nansen.ai

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.

Funciones de autorreparación

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.

  • Servicios de blockchain basados en la nube:

    Amazon Managed Blockchain, Azure Blockchain Service y IBM Blockchain Platform ofrecen entornos preconfigurados para implementar y gestionar redes de blockchain.
  • Soluciones de implementación personalizadas:

    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.

Tabla comparativa de funciones del escalador automático predictivo

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 🙂

__wf_reserved_heredar
Olha Diachuk
Writer at Dysnix
10+ years in tech writing. Trained researcher and tech enthusiast.
Tabla de contenido
Artículos relacionados
Suscríbete al blog
La mejor fuente de información para el servicio al cliente, consejos de ventas, guías y mejores prácticas de la industria. Únase a nosotros.
Gracias por suscribirte al blog de Dysnix
Ahora serás el primero en enterarte cuando publiquemos un nuevo post
Lo tengo
¡Uy! Algo salió mal al enviar el formulario.
__wf_reserved_heredar
Copiado al portapapeles
Pégalo donde quieras