[Disclaimer: todas estas notas son personales, bajo mi libre interpretación y en ningún caso es un resumen oficial de Dell EMC o similar. Las notas las fui tomando durante las charlas, si he metido la pata de alguna forma… pues es lo que hay 🙂] Este es sin duda el post más largo de mi vida…
Arrancamos el DTW 2018 prontito a las 8:30, con una charla de Rick Scherer, uno de nuestros Principal Architect de cuentas Globales, sobre “The Container Storage Interface: Storage in a Cloud Native World“. No muy relacionado con mi pasado-presente como preventa de cabinas de almacenamiento, pero para eso está en el DTW 2018, para aprender sobre las miles de cosas que hace Dell Technologies además de las que conocemos en el día a día !
La charla versó sobre como mantener la persistencia de datos en Containers, curioso la enorme cantidad de manos que se levantaron en la sala cuando se preguntó por los que estaban usando Containers a día de hoy (recordemos que el DTW es mundial aunque la mayoría de los asistentes por supuesto son de USA). Tambien curioso cómo la mitad bajaron la mano cuando se preguntó por lo mismo en entornos de producción…
En la misma encuesta a mano alzada parece que Kubernates está ganando la carrera sobre orquestador / “gestor” de Containers.
Arrancó Rick explicando porque esta moda de la “Digital Transformation” (gracioso el ejemplo de que el día de Home Depot descubrió que Amazon vendía más martillos que ellos, decidieron convertirse en una empresa de Software) no es una broma y viene para quedarse, la enlazó con la confluencia de las 4 fuerzas:
- Containers: Él mismo explicó las ventajas de Containers sobre máquinas virtuales, así que la lucha de Containser Vs VM’s parece un poco estéril.
- DevOps: Sobre como agilizar los despliegues para hacer varios cada día/hora y permitir a los nuevos desarolladores trabajar sobre partes pequeñas del código de una forma controlada.
- Microservices: O sobre como acabar con las aplicaciones monoliticas y acabar con sus problemas, dependencias, complejidad por acoplamiento, problemas de escalabilidad, largas curvas de aprendizaje…
- Metodología Agile.
La slide más fotografiada era la que dejaba claro que Agile NO es DevOps, que CloudNative no es DevOpcs y que los microservicios o containers NO son DevOps. Al final DevOps es una cultura y filosofía de trabajo derivada de las nuevas formas de desarrollar software.
Hablando de las Cloud Native apps, dejó claro (por fin) porqué son diferentes:
- Operan a mucha mayor escala de usuarios e información que manejan.
- Requieren una architectura escalable (Scale Out)
- Por lo anterior, requiren de un concepto diferente de economía (correr sobre entornos commodity y gestionado por Sw).
- Su capa de infraestructura require de gran automatización (“instrumentation” lo llamó el) y telemetría: quien hace qué, como se consumen recursos, etc…
- Pero no es un entorno efímero, así que require de Almacenamiento Persistente! (que es el objetivo de está charla). Pero este concepto no estuvo en el orígen de los Containers, así que es un hueco a cubrir. De hecho si miras el Top 10 de imágenes de Docker Hub casi todas requieren de persistencia, como las BBDD…
Aunque la charla en teoría era “avanzada” puso la slide oficial de diferencias entre Containers y VMs :
El problema de la persistencia de datos es que los Containers quieren soportar las necesidades de las aplicaciones (BBDD por ejemplo), y con los servicios de toda la vida (snaps, réplica etc), con soporte sobre estas funcionalidades y otras más como control y gestión (“governance”) de la plataforma de almacenamiento.
El resto de la charla fue sobre las diferentes opciones de persistencia únicamente para Kubernates (en adelante K8s):
- In-Tree Volume Plugin: directamente con los binarios de K8s pero muy dependiente de las versiones, con bugs etc… sin mucho futuro.
- Out-of-Tree Volume Plugin, como RexRay y FlexVolume (ahora llamado FlexRex). A partir de K8s 1.2.
- Usa un modelos de interfaz con drivers basado en ejecutables.
- Los binarios de FelxVol tienen que estar en cada nodo (a veces los Master).
- Los Pod interactuan son FelxVolume a través de un plugin In-Tree.
- CSI: Container Storage Interface es un mecanismo estandarizado para los COs (Container Orchestration Systems) incluyendo K8s. Parece eliminar los problemas de FlexVolume como las dependencias y la necesidad de accesos con privilegios en algunos puntos.
Y con esto y kilos de recursos sobre como avanzar en este topic acabó la charla, muy interesante sobre el futuro del Software Cloud Native y su relación con el almacenamiento.
La siguiente charla fue la del jefe…