fbpx
Top

Contenedores: ¿Por qué el 95% de las apps se desarrollan en ellos?

Contenedores

Contenedores: ¿Por qué el 95% de las apps se desarrollan en ellos?

Las empresas requieren de más innovación que las distinga por lo que están evolucionando para ser multinube, y los contenedores  son clave para esto.

Por Douglas Wallace

Gerente General de Pure Storage para América Latina y el Caribe (excepto Brasil y México)

 

Los contenedores y Kubernetes son la fuerza impulsora detrás de cómo la industria está reinventando la forma en que creamos y ejecutamos aplicaciones, impulsando la eficiencia de TI empresarial.

Los contenedores son una unidad estándar de software que empaqueta el código y todas sus dependencias para que una aplicación se ejecute de forma rápida y confiable de un entorno informático a otro.

Los contenedores facilitan la implementación de aplicaciones basadas en la nube porque contienen toda la información necesaria para ejecutarlas en paquetes manejables.

En septiembre de 2020, anunciamos en Pure Storage la adquisición de Portworx®, la plataforma de servicios de datos de Kubernetes líder en la industria por aproximadamente US$370 millones, por lo que podemos decir con seguridad que reconocemos la importancia de la tecnología.

Echemos un vistazo a cómo llegamos aquí.

1. Importancia de la centralidad de datos

Los datos están en el corazón de las empresas del mañana.

Las organizaciones digitales líderes están utilizando un montón de nueva tecnología “nativa de la nube” para procesar estos datos en valor y conocimiento.

Las aplicaciones nativas de la nube están diseñadas (específicamente) para operar de manera similar a la nube desde el primer día, ya sea en la pública o local.

Además, se pueden implementar y reparar más rápido, y se pueden mover fácilmente a diferentes entornos.

Las aplicaciones nativas de la nube generalmente se componen de microservicios (hablaremos más sobre esto más adelante) y se empaquetan en contenedores.

Esta nuevo montón de TI nativa de nube incluye un nuevo conjunto de aplicaciones que:

  • Analizan la transmisión de datos en tiempo real;
  • Indexan cantidades masivas de datos para la búsqueda;
  • Y otras que entrenan algoritmos de aprendizaje automático en conjuntos de datos cada vez más grandes.

La revolución está impulsada por una combinación de contenedores y Kubernetes.

Los contenedores hacen que sea eficiente ejecutar aplicaciones desagregadas a altos grados de escala y fluidez con una sobrecarga mínima.

Mientras, los Kubernetes crean la orquestación impulsada por la máquina que puede hacer malabarismos con todos estos fragmentos de aplicación y ensamblarlos en una compuesta, según sea necesario.

2. La adopción de contenedores habla por sí sola

Las tasas de adopción de este montón de TI nativas de nube han sido asombrosas:

De acuerdo con una investigación de 451 Group, el 95% de las nuevas aplicaciones se desarrollan en contenedores.

Las empresas están evolucionando sus estrategias de cloud para ser multinube, y los contenedores también son clave para esto.

Gartner por su parte informa que el 81% de las empresas ya son multinube y trabajan con más de dos proveedores de la nube.

También predice que el 85% de todas las empresas globales utilizarán contenedores en la producción para 2025, un gran aumento desde solo el 35% en 2019.

Todavía es un mercado temprano con un enorme potencial de crecimiento, por lo que es intrínsecamente difícil de pronosticar.

No obstante, IDC predice que el mercado comercial de software de infraestructura de contenedores por sí solo superará los US$1.500 millones para 2022, y las empresas están prestando atención.

Contenedore

3. Microservicios y contenedores: una combinación perfecta

En pocas palabras, los microservicios son funciones individuales dentro de una aplicación y forman la base de un nuevo enfoque arquitectónico para crear aplicaciones.

Los microservicios permiten a los equipos de TI crear y ejecutar más fácilmente las aplicaciones que sus usuarios desean y necesitan para adelantarse a la competencia.

Muchas de las aplicaciones empresariales y de consumo más grandes de la actualidad se ejecutan en microservicios, lo cual demuestra que no es solo una tendencia para las organizaciones pequeñas, sino también para las grandes y complejas.

De hecho, cuanto más grande es la organización, más beneficios se obtienen al adoptar microservicios porque los equipos – a menudo – se encuentran dispersos con una comunicación directa limitada.

¿Cuándo fue la última vez que recibió una notificación de mantenimiento de su servicio de transmisión favorito para informarle que no podrá acceder a los servicios? No sucede.

Nunca es un buen momento para actualizar estos servicios porque siempre hay alguien mirando un programa nuevo en exceso.

El principio de los microservicios establece que se debe dividir una aplicación en partes más pequeñas que se comunican a través de APIs, donde cada parte se puede actualizar independientemente de otras partes.

Como resultado, si un servicio de transmisión necesita actualizar su funcionalidad de restablecimiento de contraseña, no es necesario que millones de usuarios estén desconectados.

Esta función es un microservicio diferente que se puede actualizar de forma independiente, lo cual  resulta tanto en desarrolladores como en usuarios felices.

Los microservicios llegaron para quedarse y respaldarán las aplicaciones del mañana.

¿En qué tipo de entorno debería ejecutarlos? Los contenedores son el bloque de construcción perfecto para los microservicios.

Presentan un entorno ligero y coherente que puede seguir la aplicación desde el escritorio de los desarrolladores hasta las pruebas y la implementación final.

Además, los contenedores pueden ejecutarse en máquinas físicas o virtuales, se inician en segundos e, incluso, milisegundos, lo que es más rápido que las VM.

4. Empaquetar aplicaciones con sus dependencias

Tradicionalmente, los paquetes de software han incluído todo el código necesario para ejecutar la aplicación en un sistema operativo en particular, como Windows o Linux.

Sin embargo, necesita más que solo código de aplicación para ejecutar una: también necesita otras apps. Por ejemplo, una aplicación para buscar precios de acciones podría usar una biblioteca para convertir nombres de empresas en símbolos de cotización y viceversa.

Esta funcionalidad es genérica y no tiene valor agregado, pero sigue siendo importante permitir que un usuario escriba “Apple” y obtenga las acciones “AAPL”.

La biblioteca es un ejemplo de dependencia. Sin que TI lo sepa, cualquier aplicación puede tener cientos de estos tipos de dependencias.

Una de las principales razones por las que los contenedores se volvieron tan populares es que proporcionaron un mecanismo y formato para empaquetar el código de la aplicación (con todo y sus  dependencias) de una manera que facilitó la ejecución de la misma en diferentes entornos.

Esto resolvió un gran problema para los desarrolladores que estaban constantemente luchando contra los problemas de compatibilidad del entorno entre sus portátiles de desarrollo, entornos de prueba y producción.

Al utilizar contenedores para empaquetar sus aplicaciones, podían “codificar una vez y ejecutarse en cualquier lugar“, acelerando drásticamente la entrega de aplicaciones.

5. No todos los servicios de contenedores son iguales

En cuanto a los desafíos, la primera generación de aplicaciones nativas de la nube se diseñó para no tener estado, utilizando contenedores que funcionaban con las aplicaciones, pero que no necesitaban almacenar ningún dato persistente en volúmenes asociados.

A medida que evoluciona el uso de contenedores, los desarrolladores crean cada vez más apps con estado dentro de contenedores: aplicaciones que necesitan almacenar datos en un volumen que debe guardarse y conservarse.

Aquí es donde el mundo del almacenamiento se vuelve un desafío. La flexibilidad y la apertura de los contenedores se vuelven  obstáculos y cuellos de botella en la capa de almacenamiento y las capacidades simples que hemos estado dando por sentadas durante años en la pila de aplicaciones tradicionales (alta disponibilidad, recuperación de desastres, respaldo, cifrado) se convierten en retos en el mundo contenedor.

Lo que es peor, lo que sucede a menudo es que cada aplicación diseña su propia estrategia de almacenamiento, lo que hace imposible impulsar el cumplimiento de estándares y datos en toda la organización.

Es por eso por lo que, como práctica recomendada, sugerimos elegir una solución que brinde los servicios de datos nativos de Kubernetes que requieren las aplicaciones nativas y tradicionales de la nube (ya que esas aplicaciones tradicionales no desaparecerán pronto).

Esto significa entregar servicios de almacenamiento de bloques, archivos y objetos, en múltiples clases de rendimiento, aprovisionados a pedido según lo requiera Kubernetes.

Significa:

  • Proporcionar acceso instantáneo a los datos;
  • Protección frente a todo tipo de fallas;
  • Capacidad de movilizar datos entre nubes e incluso hacia / desde el borde
  • Y seguridad sólida sin importar a dónde viaje una aplicación

Si las organizaciones hacen esto, verán por sí mismas por qué Kubernetes se ha convertido en la salsa especial no tan secreta para las organizaciones modernas.

Periodista apasionada por la innovación, la tecnología y la creatividad. Editora de The Standard CIO y Factory Pyme para The HAP GROUP