Cómo el desarrollo nativo en la nube puede ayudar al futuro de las empresas

CloudDevOpsOpen SourceProyectosSoftware

Las tecnologías nativas en la nube están cada vez más presentes en el mundo del desarrollo de software. Erica Langhi, Senior Solution Architect EMEA para Red Hat, nos habla de esta imparable tendencia.

El aumento de la atención sobre la transformación digital ha hecho, entre otras cosas, que destaquen especialmente las ventajas empresariales que conlleva el cambio. Pero también, debido a las complejidades y desafíos que supone la búsqueda de la innovación, las organizaciones no siempre obtienen a largo plazo un valor real del mismo.

Uno de los mayores retos que surgen en los proyectos de transformación digital es que los sistemas deben permanecer en funcionamiento, seguros y previsibles en su operativa, mientras que los desarrolladores y los equipos de operaciones deben ser capaces de hacer evolucionar los sistemas rápidamente ofreciendo nuevas ventajas funcionales.

Esta tensión subyacente entre fiabilidad y productividad afecta a muchas decisiones que deben tomarse, y se vuelve especialmente problemática dada la presión que existe hoy en día a la hora de cambiar y mejorar lo más rápido posible. Los equipos de TI se ven obligados a equilibrar continuamente los cambios a corto y largo plazo en el desarrollo y la entrega de aplicaciones. Un ejemplo de este tipo de tensión se puede observar al tener que elegir entre usar los sistemas e infraestructura existentes para desarrollar nuevas funcionalidades o bien rediseñar las capacidades de desarrollo y entrega. El objetivo a largo plazo debería ser seguir añadiendo valor con el entorno de aplicaciones de la empresa, mientras se mejoran la entrega y el desarrollo ágiles.

Adoptando tecnología nativa en la nube

El tema de cómo gestionar el cambio se acentúa especialmente en las grandes empresas, ya que los equipos de desarrollo deben avanzar rápidamente y adoptar tecnologías más productivas. Para muchas organizaciones, la solución ha sido adoptar una estrategia de desarrollo nativa en la nube, y sobre todo el cambio a contenedores.

El middleware tradicional (software que conecta aplicaciones, datos y usuarios) debe reinventarse y ser actualizado sustancialmente para que soporte de forma óptima las aplicaciones nativas en la nube. El middleware moderno debe ser capaz de aprovechar los microservicios, las API y los contenedores para ser bastante más potentes en un entorno nativo en la nube.

En el mejor de los casos, una aplicación nativa en la nube se trata de una colección de microservicios pequeños, independientes y poco acoplados, implementados en contenedores de Linux y conectados a través de interfaces de programación de aplicaciones (APIs). Cada servicio implementa una capacidad empresarial, y es desarrollado por pequeños equipos que utilizan prácticas DevOps que frecuentemente adoptan la integración y despliegues continuos (CI/CD). Esto permite que los servicios se creen rápidamente, se implementen automáticamente y se actualicen de forma regular.

A través de métodos DevOps como, por ejemplo, la entrega continua, los test de calidad se pueden automatizar en cada paso del proceso. Unas pruebas continuas que también permiten contar con un feedback rápido y temprano, reduciendo el desperdicio de tiempo y esfuerzo.

Establecer una infraestructura moderna

El concepto “fail fast” o fallar rápidamente se ha popularizado con el desarrollo nativo en la nube. La infraestructura de contenedores ha hecho que sea mucho más fácil escalar hacia arriba y abajo en los modos de fallo y se está adoptando cada vez más la idea inspirada en Netflix sobre la ingeniería del caos (que implica la experimentación en un sistema en producción, para generar fiabilidad en su capacidad para soportar condiciones difíciles e inesperadas).

Los contenedores y las plataformas de contenedores dan vida al enfoque de la computación nativa en la nube. A medida que se consolidan las tecnologías nativas en la nube, las plataformas de contenedores combinadas con los tiempos de ejecución nativos en la nube, se convierten en el catalizador más flexible para la innovación. Según las empresas van adoptando las tecnologías de contenedores es cada vez más probable que esta combinación se termine convirtiendo en el patrón de implementación predominante transfiriéndose gran parte de la capacidad de orquestación de los servidores de aplicaciones previa hacia la capa de administración de contenedores.

A muchas empresas les gustaría adoptar nuevas arquitecturas, contenedores de Linux y desarrollo de aplicaciones modernas, pero sus cargas de trabajo se encuentran estancadas en entornos tradicionales. Entornos que pueden ser caros de mantener, complejos de administrar y estar cargados de deudas técnicas. Llevar las cargas de trabajo tradicionales a una plataforma moderna es fundamental para simplificar los entornos de TI.

También nos encontramos ahora mismo en un momento en el que Java se está incorporando a un futuro desarrollo de aplicaciones nativas en la nube con Quarkus, un framework de Kubernetes Native Java. Quarkus se convertirá en una plataforma líder para entornos serverless , en la nube y Kubernetes, colocando a Java en una mejor posición para escalar y mejorar más rápido de cara a futuro. Con APIs flexibles y fáciles de usar, Quarkus permite a los desarrolladores crear aplicaciones nativas en la nube y los mejores frameworks.

Desarrollando la cultura adecuada

El camino hacia las aplicaciones nativas en la nube requiere que los equipos de desarrollo y operaciones de TI evolucionen de muchas maneras para crear e implementar aplicaciones de una forma más rápida y eficiente. Independientemente de su sector o tamaño, todas las empresas deben tener en cuenta la amplia diversidad de actividades, tecnologías, equipos y procesos que conforman una cultura DevOps.

Para saber aprovechar las nuevas tecnologías, enfoques más rápidos y colaboraciones más estrechas, las empresas deben estar realmente interiorizar los principios y valores de la cultura DevOps. Todavía existe un potencial sin explotar a la hora de ampliar las prácticas DevOps en el portfolio de aplicaciones. La adopción de una cultura DevOps se basa no sólo en herramientas y

tecnologías, sino también en la voluntad y confianza de las personas en el momento de adoptar un enfoque más integrado y colaborativo, que fomente el trabajo en equipo, la inclusión, el feedback y la experimentación.

Iniciación a los procesos DevOps

Las prácticas DevOps y las herramientas para desarrolladores representan la base de la tecnología nativa en la nube. En esencia, muchas de estas tecnologías han evolucionado para ayudar a los desarrolladores de una forma más eficiente y efectiva a partir de las necesidades básicas de la infraestructura. La adopción de los procesos DevOps ayuda a crear una cultura nativa en la nube que se adapta rápidamente a las necesidades del cliente y permite la entrega continua.

La combinación de la resiliencia, la capacidad de administración y observación (desde la parte de las operaciones) y del impacto de la ingeniería (desde la parte del desarrollador y la ingeniería) fomenta una serie de tecnologías que se unen bajo la bandera nativa en la nube. Estos atributos son los que permiten que la tecnología nativa en la nube afronte con éxito muchos desafíos, al mismo tiempo que las organizaciones avanzan en su camino de la adopción de múltiples nubes y centros de datos como sus nuevas infraestructuras.

Las prácticas DevOps, los servicios de aplicaciones, el middleware, las herramientas y la gestión de los desarrolladores, así como las nuevas variantes nativas en la nube, componen y dan soporte al entorno TI de una empresa. Un trabajo conjunto que sirve para crear el entorno de aplicación empresarial. Y que, a su vez, ese entorno de aplicación da soporte al funcionamiento.

Las estrategias nativas en la nube están ayudando a garantizar que las empresas globales puedan seguir siendo competitivas, haciendo que aumente la velocidad del desarrollo de aplicaciones y que las aplicaciones sean más flexibles según sean las necesidades del negocio.

Sólo conseguiremos obtener los mayores beneficios de las nuevas tecnologías cuando adecuemos al mismo tiempo nuestra cultura y procesos. Es por eso que las empresas deben también animar a su gente a que piensen de nuevo y desarrollen sus competencias, como una parte importante de una estrategia efectiva para el desarrollo de aplicaciones nativas en la nube que puede proporcionar una significativa ventaja competitiva durante muchos años.

Autor
Saber más 
Saber más