Por Niklas Heidloff, IBM developer advocate
Si bien las tecnologías en la nube y los modelos de programación modernos como la aplicación nativa de la nube existen desde hace varios años, la mayoría de las aplicaciones empresariales todavía se ejecutan on-premises y/o usan stack clásicos y servidores de aplicaciones.
No todas las aplicaciones necesitan, deben o pueden modernizarse. Sin embargo, para muchas aplicaciones esto tiene mucho sentido porque permite a las empresas reducir costos, ser más ágiles y brindar mejores experiencias de usuario.
- Reducir el uso de recursos
La mayoría de las aplicaciones empresariales se ejecutan en máquinas virtuales. En cambio, ejecutar las mismas aplicaciones en contenedores ahorra muchos recursos, especialmente memoria. Además, las plataformas de orquestación de contenedores pueden equilibrar las cargas de trabajo mucho mejor que las máquinas virtuales. De manera similar, las bibliotecas y las herramientas de desarrollo modernas pueden ahorrar recursos. Un gran ejemplo es OpenJ9, que requiere menos de la mitad de la memoria en comparación con otras JVM. El uso de contenedores y de bibliotecas modernas a menudo ni siquiera requiere ningún cambio de código.
- Reducir los costos de las licencias
Las ofertas clásicas de software comercial tienen costos de licencia. Debido al éxito de open source, muchas de estas ofertas clásicas se pueden reemplazar por software de open source para el que, en muchos casos, además tiene soporte comercial. Un buen ejemplo es WebSphere ND frente a la versión de open source Open Liberty. Los proyectos de open source también suelen tener comunidades sólidas que brindan soporte y reparaciones gratuitas.
- Conseguir más agilidad y un tiempo de comercialización más rápido
Los despliegues de nuevas versiones de aplicaciones monolíticas suelen ser difíciles, lentos y peligrosos. Con contenedores y canales se pueden lograr entregas continuas para que los despliegues se puedan realizar con mayor frecuencia. Por ejemplo, los microservicios permiten actualizar partes separadas y CI/CD permite revertir a versiones en ejecución en caso de problemas.
- Permitir el desarrollo de nuevas funciones más importantes
Muchas aplicaciones empresariales han crecido a lo largo de los años y han sido desarrolladas por diferentes personas, lo que a menudo genera deudas técnicas. La deuda técnica consume presupuesto para mantener las aplicaciones en funcionamiento y dificulta el desarrollo de nuevas funciones más importantes. Por eso tiene sentido refactorizar las aplicaciones que se supone que deben ampliarse significativamente.
- Ejecutar aplicaciones de misión crítica en una plataforma preparada para el futuro
En muchos casos, las empresas han definido y establecido estrategias sobre en qué plataformas ejecutar aplicaciones críticas para el negocio. Por ejemplo, OpenShift, la distribución de Kubernetes, se puede ejecutar on-premises y en diferentes nubes públicas, por lo que muchas empresas la han elegido como plataforma estratégica. La modernización de las aplicaciones para que se ejecuten en OpenShift garantiza una plataforma estable a más largo plazo y el apoyo continuo de los equipos de operaciones.
- Mejorar la eficiencia operativa
Cuando todas las aplicaciones empresariales se ejecutan en plataformas de contenedores como Kubernetes u OpenShift, se pueden gestionar de manera coherente. Todo es un contenedor, sin importar qué lenguajes de programación y pilas de aplicaciones se utilicen. Esto facilita las operaciones. Pero para ser justos, esto también requiere cambios organizativos y culturales que requieren tiempo para establecerse.
- Aumentar la productividad de los desarrolladores y aprovechar la fuerza laboral de los desarrolladores
Los contenedores aumentan la productividad de los desarrolladores, ya que abordan el problema de «funciona en mi máquina». Además, la configuración de entornos de desarrollo es más rápida. Dado que los desarrolladores son más productivos, se divierten más, lo que significa que están más motivados y son más eficientes. A través de contenedores, las aplicaciones empresariales pueden ser políglotas, ya que se pueden implementar diferentes servicios con diferentes lenguajes. Esto permite a los empleadores encontrar más desarrolladores, ya que no todos los desarrolladores conocen Java o Cobol.
- Mejorar las experiencias de usuario
Los usuarios de aplicaciones deciden si las aplicaciones son buenas o no, por lo que las buenas experiencias de usuario son clave. Las aplicaciones más antiguas a menudo tienen debilidades que se pueden abordar con tecnologías modernas. Por ejemplo: nuevas interfaces de usuario, aplicaciones móviles, API, tiempos de respuesta más rápidos, resiliencia y más.
- Manejar costosas aplicaciones heredadas
A veces, las aplicaciones heredadas se vuelven muy caras. Por ejemplo, después de que finaliza el soporte oficial para las plataformas o servidores utilizados o cuando no se pueden encontrar desarrolladores para mantener el código. En algunos casos, estas aplicaciones pueden quedar obsoletas. En otros casos, podría ser posible reemplazarlas con ofertas de SaaS. Por ejemplo, una aplicación de planificación de vacaciones de 20 años puede reemplazarse por varias ofertas de SaaS o de open source.
- Mantener felices a los gerentes
Esta no es realmente una buena razón, sino algo que he escuchado de los desarrolladores. Para determinadas aplicaciones, no tiene sentido modernizarlas. Sin embargo, para los desarrolladores esto significa poder aprender nuevas habilidades y ¿a quién no le gusta esto? Es por eso que estamos llevando a cabo el evento virtual “Build Smart son Kubernetes”, del 22 al 24 de Junio en el que compartiremos en vivo y de forma gratuita talleres prácticos en español en los que podrás desarrollar las habilidades que necesitas para codear en el mundo del desarrollo contenerizado y nativo en la nube, de la mano de nuestros expertos de IBM y Red Hat. Regístrate aquí: developer.ibm.com/es/conferences/build-smart-on-kubernetes-latam/