Si hay un área en la que sobresale la tecnología informática, es en la creación de nueva terminología. Y esto es especialmente cierto cuando se trata de proveedores que venden dichas tecnologías. Desafortunadamente, cuando una empresa entra en la ecuación, las definiciones exactas de la terminología informática se vuelven un poco, bueno, confusas. El software nativo de la nube es un buen ejemplo de esto, porque no todas las soluciones que un proveedor describe como nativas de la nube son en realidad nativas de la nube. Hemos discutido el tema de las soluciones nativas de la nube varias veces en el pasado aquí en TechGenix (ver aquí y más recientemente aquí). Pero de las conversaciones con clientes comerciales y proveedores de software, todavía tengo la impresión de que no todos comprenden el término nativo de la nube. Entonces, para ayudarnos a comprender mejor esta terminología y obtener una idea de cómo saber si un proveedor está exagerando lo que le ofrece, le pedí a Babak Varjavandi, CEO de Nakisa, que compartiera algunas ideas sobre el tema.
Software nativo de la nube: pospandémico
Comencé preguntando por qué las soluciones en la nube son tan importantes hoy en nuestro mundo (con suerte pronto) posterior a COVID. "La pandemia ha exacerbado la escasez de talento tecnológico en todo el mundo", respondió Babak. “Cada vez más empresas confían en la tecnología en su trabajo diario. A medida que aumenta la necesidad de tecnología en el lugar de trabajo en todas las industrias, se vuelve cada vez más difícil encontrar los conocimientos y habilidades necesarios para estas tareas. Por esta razón, las empresas confían en soluciones de software e implementan tecnología en la nube para mantener los sistemas en movimiento sin o sin supervisión y para automatizar tareas que antes eran manuales. Sin embargo, no todas las soluciones en la nube ayudarán a aliviar la escasez de talento tecnológico. Muchas soluciones en la nube son simplemente soluciones locales o monolíticas que se han trasladado a la nube. Por lo tanto, no pueden ofrecer las muchas ventajas que puede brindar una verdadera aplicación nativa de la nube. Cuando el software es nativo de la nube, significa que fue diseñado para funcionar y ejecutarse en la nube desde el principio. Por ejemplo, dado que las soluciones en la nube no están detrás del firewall del cliente, se convierten en un objetivo preferido para los piratas informáticos ".
Muchas soluciones en la nube son simplemente soluciones locales o monolíticas que se han trasladado a la nube. Por lo tanto, no pueden ofrecer las muchas ventajas que puede brindar una verdadera aplicación nativa de la nube.
Si las soluciones nativas de la nube son la mejor manera de avanzar, se requieren procesos y herramientas sólidos para su desarrollo. Babak está de acuerdo y dice: “La buena noticia es que existen mejores prácticas para crear una solución nativa de la nube exitosa. Estas mejores prácticas, como microservicios y contenedores y la introducción del proceso CI / CD, permitirán a los proveedores de software ofrecer innovaciones a sus clientes más rápidamente en un entorno seguro y escalable. Sin embargo, muchos proveedores de software heredado tienen problemas porque la creación de una aplicación nativa de la nube requiere un cambio fundamental en el diseño y la implementación de su software, y requiere una experiencia diferente a la necesaria para construir su solución local. En general, el software nativo de la nube proporcionará una transición fácil y sin problemas a una tecnología más avanzada, al tiempo que aliviará los factores estresantes de la falta de talento tecnológico para las empresas ".
Entonces, si su empresa está buscando software nativo de la nube que satisfaga sus necesidades actuales, ¿cómo debe hacerlo? “Las empresas que recurren a soluciones en la nube para optimizar los procesos deben preguntar a los proveedores si su software es realmente nativo de la nube o si solo está alojado en la nube. Aunque estos dos parecen ser similares ", agrega Babak," son muy diferentes ".
Los compradores tengan cuidado
Y en mi opinión, ahí está el quid de la cuestión: ¡las reservas emptor (cuidado con los compradores)! Si le pregunta a un proveedor de software si su solución es nativa de la nube y responde afirmativamente, ¿cómo puede estar seguro? "La mayoría de las empresas evalúan las funcionalidades de los proveedores", explica Babak. “Sin embargo, la arquitectura de su sistema debe verificarse específicamente para garantizar que una solución sea verdaderamente nativa de la nube. Una solución nativa de la nube se basa en microservicios, donde cada servicio individual puede diseñarse, probarse, implementarse o reemplazarse sin afectar a los demás. Y cada servicio se supervisa y se puede escalar por separado a medida que aumenta el uso del microservicio, lo que ofrece una escalabilidad y una conmutación por error potencialmente ilimitadas para los clientes. Una revisión de la arquitectura del sistema del proveedor ayudaría a las empresas a encontrar una verdadera solución nativa de la nube ".
Sin embargo, algunas empresas pueden sentir que no tienen suficiente experiencia interna para evaluar la arquitectura de la oferta de software de un proveedor. Así que le pregunté si podía explicar con más detalle qué buscar y amablemente se apuntó con algunos diagramas para ilustrarlo.
“Como mencioné anteriormente”, dice Babak, “las aplicaciones nativas de la nube pueden, por supuesto, escalar dependiendo de la carga de trabajo del cliente. Las aplicaciones nativas de la nube logran esto mediante la implementación de una arquitectura de microservicios robusta. La pregunta importante es ¿en qué se diferencia de la aplicación tradicional? Porque para un usuario, todavía van a Bowers (o clientes nativos locales o aplicaciones móviles) e interactúan con la aplicación.
"El diablo está en los detalles. Veamos qué sucede cuando el usuario interactúa con la aplicación. Con una aplicación monolítica, la solicitud va a la aplicación. La aplicación se instala en un servidor dedicado con una base de datos u otro almacenamiento".
“A medida que más usuarios utilizan la aplicación, el sistema se vuelve estresado y, para acomodar a más usuarios, es necesario detener el sistema y agregar recursos. Pero en algún momento llegamos al límite físico de recursos y la escalabilidad se convierte en un gran problema:
“El siguiente paso en la evolución son las aplicaciones de carga equilibrada. Los sistemas monolíticos con equilibrio de carga resuelven el problema de disponibilidad, pero las actualizaciones y correcciones (corrección de errores) provocan un tiempo de inactividad significativo:
Microservicios al rescate
“La arquitectura de microservicios resuelve todos estos problemas. Los microservicios son miniaplicaciones que trabajan en conjunto con los mejores estándares de la industria como APIs RESTful y comunicación asincrónica, con las herramientas más modernas como Kubernetes, Kafka, Istio, Prometheus y Helm, con potentes técnicas como el despliegue canario, ruptura de circuitos, apátridas componentes, micro-frontends, ingeniería del caos e infraestructura inmutable:
“Los microservicios se escalan horizontalmente sin tener que reiniciar el sistema. Son livianos, por lo que las actualizaciones y las correcciones son muy rápidas y sin problemas. Además, el sistema no tiene por qué fallar, ya que los servicios antiguos pueden continuar ejecutándose durante la actualización. Además, los microservicios aumentan la complejidad de la red. ¿Cómo comparte datos entre microservicios, cómo se transmite la información de seguridad, cuánto dura cada servicio, cómo monitorea el uso de los recursos del servicio individual (CPU, memoria, etc.)? Una malla de servicios como Istio es una forma de controlar cómo los diferentes microservicios interactúan entre sí, y una herramienta de monitoreo como Prometheus le permite monitorear cada recurso utilizado por la red.
“No hemos hablado en detalle sobre la escalabilidad de las bases de datos, pero la figura anterior muestra que cada microservicio tiene su propia base de datos. Esto divide la base de datos en grupos más pequeños. Esto hace que la base de datos sea extremadamente resistente y también distribuida. Discutimos el aspecto de escalabilidad de las aplicaciones nativas de la nube, pero hay muchos otros beneficios como monitoreo efectivo, autorreparación, mayor seguridad, prevención de regresión de calidad, mayor velocidad de innovación y respaldo / recuperación robusto que naturalmente resulta de la arquitectura de microservicio. Las aplicaciones nativas de la nube, a su vez, son observables, resistentes y manejables. Esto aumenta directamente la calidad de las aplicaciones y la experiencia del cliente ".
Estoy seguro de que las explicaciones y los diagramas de Babak anteriores serán útiles para aquellos de nuestros lectores cuyas empresas puedan aprovechar los beneficios que las verdaderas soluciones nativas de la nube pueden ofrecerles. Como agradecimiento final por brindarnos su valioso tiempo, le pedí a Babek que nos contara brevemente sobre la oferta nativa de la nube de su propia empresa.
“La solución inmobiliaria y de arrendamiento de Nakisa consta de más de 60 microservicios. Por ejemplo, la gestión de proveedores y la gestión de divisas son microservicios independientes. La administración de proveedores tiene su propia micro-interfaz que es llamada por el usuario final, mientras que la administración de moneda es solo un microservicio interno que proporciona monedas diferentes a otros microservicios. Recuerde que cada microservicio se ejecuta de forma independiente en su propio contenedor que se administra en un pod de Kubernetes. Un pod se puede comparar aproximadamente con un servidor; Es el objeto de implementación más pequeño y fácil de Kubernetes. No hay duda de las ventajas de la arquitectura de microservicios, especialmente para las aplicaciones críticas para el negocio en las empresas. Sin embargo, también debe tenerse en cuenta que los microservicios también traen consigo muchas complejidades que son ajenas a los desarrolladores heredados que están acostumbrados a crear aplicaciones monolíticas. Nakisa utiliza la metodología de aplicaciones de 12 factores para construir cada microservicio. Como parte de nuestro CI / CD, cada cambio de código desencadena una secuencia de compilación y prueba automatizada para garantizar que cada microservicio cumpla con la metodología de la aplicación de 12 factores ".
¡Me suena bastante nativo de la nube!
Imagen destacada: Shutterstock
La contribución ¿Su solución de software es realmente nativa de la nube? apareció por primera vez en TechGenix.
Comentarios
Publicar un comentario