La logística en el desarrollo de software en tiempos de kubernetes

kubernetes

La logística en el desarrollo de software en tiempos de kubernetes

Para hablar de kubernetes, tenemos que mencionar a docker. Allá por 2013 Docker empezó a ganar popularidad permitiendo a los desarrolladores crear, ejecutar y escalar rápidamente sus aplicaciones creando contenedores. Parte de su éxito se debe a ser Open Source y al apoyo de compañías como IBM, Microsoft, RedHat o Google. Docker en apenas dos años había sido capaz de convertir una tecnología nicho en una herramienta fundamental al alcance de todos gracias a su mayor facilidad de uso.

Su evolución ha sido imparable, representando actualmente uno de los mecanismos comunes para desplegar software en cualquier servidor por medio de contenedores software. Tanto Docker como Kubernetes, conocidos por ser uno de los más populares gestores de contenedores de software, se han convertido con méritos propios en los estándares de facto de la industria.

docker engine

Google, Microsoft, Amazon, Oracle, WMware, IBM, RedHat están apostando fuertemente por estas tecnologías, ofreciendo todo tipo de servicios a los desarrolladores en la nube. Hoy por hoy todo va encaminado a ser dockerizado, como popularmente se refiere en castellano al hecho de empaquetar una aplicación software para ser distribuida y ejecutada mediante el uso de esos contenedores software.

Si eres desarrollador de software debes empezar a aprender más sobre ello, ya que ha sido la auténtica revolución en años de la industria del software. Gracias de él, los desarrolladores hemos podido independizarnos en cierta medida de los sysadmin y hemos abrazado el concepto de devops más abiertamente. Es decir, somos capaces tanto de crear código como de distribuirlo de forma sencilla sin quebraderos de cabeza.

¿Qué es Kubernetes?

Kubernetes es una plataforma portable y extensible de código abierto para administrar cargas de trabajo y servicios. Kubernetes facilita la automatización y la configuración declarativa. Tiene un ecosistema grande y en rápido crecimiento. El soporte, las herramientas y los servicios para Kubernetes están ampliamente disponibles.

Lo que Kubernetes no es

Kubernetes no es una Plataforma como Servicio (PaaS) convencional. Ya que Kubernetes opera a nivel del contenedor y no a nivel del hardware, ofrece algunas características que las PaaS también ofrecen, como deployments, escalado, balanceo de carga, registros y monitoreo. Dicho esto, Kubernetes no es monolítico y las soluciones que se ofrecen de forma predeterminada son opcionales e intercambiables.

Kubernetes ofrece los elementos esenciales para construir una plataforma para desarrolladores, preservando la elección del usuario y la flexibilidad en las partes más importantes.

Entonces, podemos decir que Kubernetes:

  • No limita el tipo de aplicaciones que soporta. Kubernetes busca dar soporte a un número diverso de cargas de trabajo, que incluyen aplicaciones con y sin estado así como aplicaciones que procesan datos. Si la aplicación puede correr en un contenedor, debería correr bien en Kubernetes.
  • No hace deployment de código fuente ni compila tu aplicación. Los flujos de integración, entrega y deployment continuo (CI/CD) vienen determinados por la cultura y preferencia organizacional y sus requerimientos técnicos.
  • No provee servicios en capa de aplicación como middleware (por ejemplo, buses de mensaje), frameworks de procesamiento de datos (como Spark), bases de datos (como MySQL), caches o sistemas de almacenamiento (como Ceph). Es posible correr estas aplicaciones en Kubernetes, o acceder a ellos desde una aplicación usando un mecanismo portable como el Open Service Broker.
  • No dictamina las soluciones de registros, monitoreo o alerta que se deben usar. Hay algunas integraciones que se ofrecen como prueba de concepto, y existen mecanismos para recolectar y exportar métricas.
  • No provee ni obliga a usar un sistema o lenguaje de configuración (como jsonnet) sino que ofrece una API declarativa que puede ser usada con cualquier forma de especificación declarativa
  • No provee ni adopta un sistema exhaustivo de mantenimiento, administración o corrección automática de errores

Además, Kubernetes no es un mero sistema de orquestación. De hecho, Kubernetes elimina la necesidad de orquestar. Orquestación se define como la ejecución de un flujo de trabajo definido: haz A, luego B y entonces C. Kubernetes está compuesto de un conjunto de procesos de control independientes y combinables entre si que llevan el estado actual hacia el estado deseado. No debería importar demasiado como llegar de A a C. No se requiere control centralizado y, como resultado, el sistema es más fácil de usar, más poderoso, robusto, resiliente y extensible.

Google liberó el proyecto Kubernetes en el año 2014. Kubernetes se basa en la experiencia de Google corriendo aplicaciones en producción a gran escala por década y media, junto a las mejores ideas y prácticas de la comunidad.

arquitectura kubernetes

Para no aburrirlos en esta entrega, quiero que tengan claro que utilizar contenedores (En este caso Docker) y quien los orqueste de forma óptima (Kubernetes), con la ayuda de una correcta arquitectura (Balanceadores de carga, api gateway, clusters de buena capacidad, entre otros) vamos a lograr un mejor performance en los desarrollos, desplazando por completo la virtualización de las máquinas para viejas arquitecturas monolíticas abriendo paso total a una real práctica DevOps y a una arquitectura basada en microservicios.

Es por esto, que se habla de «logística» en el desarrollo de software, porque si usamos contenedores, kubernetes sería la grúa que los mueve y ubica.

1 Comment

  • forbesblogs
    15/09/2024

    My brother suggested I might like this website He was totally right This post actually made my day You cannt imagine just how much time I had spent for this information Thanks

Deja un comentario

#SIGUEME EN INSTAGRAM

Una máxima para hoy. Venir de paso y hacer poco es triste para el milagro que somos.

#reflexionando

...

1 0

...

5 0
Hace un par de años, casi me rasgaba las vestiduras para que mis colegas del Clúster TI de Santander, siendo parte del comité estratégico, impulsaramos iniciativas macro, como tener un ecosistema basado en blockchain que permitiera gestionar ecosistemas naturales.

Nadie quiso, ni intentar tocar las puertas del BID u otros organismos para sacar adelante este tipo de cosas. 

Pero el que es terco es terco, y gracias a Dios lo soy, y nunca reparto mis propias utilidades (porque soy único accionista) no sólo logré con @aiaticom y @ai3lab construir el producto, sino ampliarlo y ojalá en el futuro cercano sea el agro colombiano el que se sofistique con vehículos de transformación digital como éstos.

Sigan su corazón.

...

7 0
Hoy volví a hacer algo de trabajo en compañía de mi papá.

11 años atrás trabajó conmigo en 5 proyectos durante 6 meses y hoy conversábamos de todas las anécdotas en esos proyectos.

Da mucha alegría.

...

6 1
11 años tienen estas fotos.
5 Conjuntos residenciales al tiempo, más de 75 cámaras IP que para la época era un hito en el sector residencial.
#aiatic #integradores #seguridadelectronica 
Y aquí seguimos

...

1 0

...

9 0
Hoy fui #panelista en el #Congreso Internacional de #Mecatronica de la Universidad Santotomas.

Hablar de emprender, de superar el valle de la muerte de las empresas, de como el ecosistema empuja a la comunidad y las cosas pendientes en la región ha sido grato.

...

16 0
Espero, sea de utilidad. 
#Emprendiendo

...

1 0
#SteveJobs no sólo nos dejó #apple y #pixar nos enseñó a pensar distinto, a escribir nuevos libros y a ser valientes y testarudos.

...

1 0
Nos falta confianza en lo que podemos lograr con un poco de esfuerzo, café y disciplina.

...

2 0
El dilema de cuándo y por qué "embarcarnos" en un nuevo reto debe siempre contemplar el problema. No se enamoren de la solución, sino del problema.

#innovacion #fraseinnovacion

...

1 0
Buenos días gente, recuerden que no hay nada que funcione realmente generando valor sin las personas "enchufadas" en conseguirlo.

Saludos

...

3 0
#Innovacion teniendo un impacto en la vida de las personas.

...

1 0