Acompaña el evento final de la Maratón Behind the Code 2020: 05/12 - Online ¡Inscríbete ahora!

Blog de desarrolladores de IBM

Siga los últimos acontecimientos con IBM Developer y manténgase informado.

Hola, mi nombre es Niklas Heidloff. Trabajo en IBM como Developer Advocate. Me gusta el aprendizaje, las tecnologías en la nube, Java, JavaScript y la…


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. En este artículo, enumero mis 10 razones principales por las que las aplicaciones empresariales deberían modernizarse.

En general, los objetivos de la modernización de aplicaciones son reducir costos, ser más ágiles y brindar mejores experiencias de usuario.

Las empresas a menudo dudan en invertir en modernización, pero muchas veces estas inversiones dan resultados bastante rápido.

1. 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.

2. 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, se proporciona 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 ayuda y reparaciones gratuitas.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. 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? Para aprender más, consulta mi blog sobre lo que ofrece IBM para la modernización de aplicaciones.

Declaración de renuncia de responsabilidad

Las publicaciones en este sitio son mías y no representan necesariamente las posiciones, estrategias u opiniones de mi empleador IBM.