Porque los contenedores y Kubernetes tienen el potencial de ejecutar casi cualquier cosa

En mi primer artículo, Kubernetes es un camión volquete: he aquí por qué, hablé sobre cómo Kubernetes es elegante para definir, compartir y ejecutar aplicaciones, de forma similar a cómo los camiones volquete son elegantes para mover la tierra. En el segundo, Cómo navegar por la curva de aprendizaje de Kubernetes, explico que la curva de aprendizaje para Kubernetes es en realidad la misma curva de aprendizaje para ejecutar cualquier aplicación en producción, que en realidad es más fácil que aprender todas las piezas tradicionales (balanceadores de carga, enrutadores, firewalls, conmutadores, software de agrupación, sistemas de archivos en clúster, etc. .). Esto es DevOps, una colaboración entre desarrolladores y operaciones para especificar cómo deberían funcionar las cosas en producción, lo que significa que hay una curva de aprendizaje para ambas partes. En el artículo cuarto, Conceptos básicos de Kubernetes: aprenda a conducir primero, reformulo el aprendizaje de Kubernetes enfocándome en conducir el camión volquete en lugar de construirlo o equiparlo. En el artículo cuarto, 4 herramientas para ayudarte a impulsar Kubernetes, comparto las herramientas de las que me enamoré para ayudar a crear aplicaciones (conducir el camión volquete) en Kubernetes.

En este artículo final, comparto las razones por las que estoy tan entusiasmado con el futuro de la ejecución de aplicaciones en Kubernetes.

Desde el principio, Kubernetes pudo ejecutar cargas de trabajo basadas en web (en contenedores) muy bien. Las cargas de trabajo como servidores web, Java y servidores de aplicaciones asociados (PHP, Python, etc.) simplemente funcionan. Los servicios de soporte como DNS, equilibrio de carga y SSH (reemplazado por kubectl exec) son administrados por la plataforma. Durante la mayor parte de mi carrera, estas son las cargas de trabajo que he estado ejecutando en producción, por lo que de inmediato reconocí el poder de ejecutar cargas de trabajo de producción con Kubernetes, así como DevOps, además de ser ágil. Hay un aumento en la eficiencia incluso si apenas cambiamos nuestras prácticas culturales. La puesta en servicio y el desmantelamiento se vuelven extremadamente fáciles, lo que es terriblemente difícil con la TI tradicional. Entonces, desde los primeros días, Kubernetes me ha proporcionado todas las primitivas básicas que necesito para modelar una carga de trabajo de producción, en un único lenguaje de configuración (Kube YAML/Json).

Pero, ¿qué pasa si necesito ejecutar MySQL multimaestro con replicación? ¿Qué pasa con los datos redundantes usando Galera? ¿Cómo se toman instantáneas y copias de seguridad? ¿Qué pasa con las cargas de trabajo sofisticadas como SAP? El día cero (implementación) con aplicaciones simples (servidores web, etc.) fue bastante sencillo con Kubernetes, pero no se abordaron las operaciones y cargas de trabajo del día dos. Eso no quiere decir que las operaciones del segundo día con cargas de trabajo sofisticadas fueran más difíciles de resolver que la TI tradicional, pero Kubernetes no las ha facilitado. Se dejó que cada usuario proponga sus propias ideas ingeniosas para resolver estos problemas, que es básicamente el status quo actual. En los últimos 5 años, el tipo de pregunta número uno que recibo es sobre las operaciones del segundo día de cargas de trabajo complejas.

Afortunadamente, las cosas están cambiando a medida que hablamos sobre la llegada de los operadores de Kubernetes. Con la llegada de los comerciantes, ahora tenemos un marco para codificar el conocimiento de las operaciones del segundo día en la plataforma. Ahora podemos aplicar el mismo estado definido, la misma metodología que el estado real en el que describí Conceptos básicos de Kubernetes: aprenda a conducir primero—Ahora podemos definir, automatizar y mantener una amplia gama de tareas de administración de sistemas.

A menudo me refiero a los operadores como "Administradores de sistemas de robots" porque esencialmente codifican una parte del conocimiento operativo del segundo día que un experto en la materia (PMI, como administrador de base de datos o administrador de sistemas) para ese tipo de carga de trabajo (base de datos, servidor web, etc. ) normalmente mantendrían sus notas en algún lugar de una wiki. El problema con estas notas que se encuentran en una wiki es que para que el conocimiento se aplique para resolver un problema, debemos:

  1. Generar un evento, muchas veces un sistema de monitoreo encuentra una falla y creamos un ticket
  2. La pyme humana necesita investigar el problema, aunque sea algo que ya hemos visto un millón de veces
  3. El SMB humano debe realizar el conocimiento (copia de seguridad/restauración, configuración de Galera o replicación de transacciones, etc.)

Con los operadores, todo este conocimiento de las pymes se puede incorporar en una imagen de contenedor separada que se implementa antes de la carga de trabajo real. Implementamos el contenedor del operador, luego el operador implementa y administra una o más instancias de la carga de trabajo. Luego administramos los operadores usando algo como Operator Lifecycle Manager (tutorial de Katacoda).

Entonces, a medida que avanzamos con Kubernetes, no solo simplificamos la implementación de aplicaciones, sino que también administramos todo su ciclo de vida. Los operadores también nos brindan las herramientas para administrar aplicaciones con estado muy complejas con requisitos de configuración profundos (agrupación en clústeres, replicación, reparación, copia de seguridad/restauración). Y, la mejor parte es que las personas que construyeron el contenedor son probablemente los expertos en la materia. las operaciones del segundo día, por lo que ahora pueden incorporar ese conocimiento en el entorno operativo.

Índice

La conclusión de esta serie.

El futuro de Kubernetes es brillante y, como antes la virtualización, la expansión de la carga de trabajo es inevitable. Aprender a manejar Kubernetes es probablemente la mayor inversión que un desarrollador o administrador de sistemas puede hacer en el crecimiento de su carrera. A medida que aumenten sus cargas de trabajo, también lo harán sus oportunidades profesionales. Así que aquí le mostramos cómo conducir un camión volquete genial que es muy elegante para mover la tierra...

Si quieres seguirme en Twitter, comparto mucho contenido sobre este tema en @padrelinux

Artículos de interés

Subir