Categories
54cuatro

Transitando la adopción de arquitecturas serverless

La tecnología serverless fue la que mayor crecimiento expone desde el 2018 hacia hoy. #AWS y luego #Azure fueron dos grandes promotores de la tecnología #serverless. Al dia de hoy existen múltiples alternativas, incluso para correr serverless sobre on-premise.

¿De dónde viene la tecnología sin servidor?

En primer lugar, tenemos que hablar de Virtualizacion. La virtualización de servidores fue el paso inicial, que se basaba en correr múltiples servidores en un mismo hipervisor. Con el avance de la nube publica, las empresas utilizaron #IaaS (infraestructura como servicio), que básicamente es arrendar servidores y mover la carga de la infraestructura a la nube, pero los equipos aún tenían que lidiar con la configuración del servidor. Mas tarde apareció en escena PaaS (Plataforma como servicio). Los proveedores de #PaaS ofrecían una pila de aplicaciones más completa, como sistemas operativos y bases de datos para ejecutarse en la nube y ser administrados por el proveedor. Pero eso no fue suficiente. Luego surgió la tendencia de crear contenedores, una tendencia que sigue en alza, pero que significa de todas formas llevar a cabo configuraciones.

#Serverless o #FaaS (función como servicio) representa un nuevo enfoque para el desarrollo de aplicaciones. En pocas palabras, FaaS es una forma de computación sin servidor que utiliza una infraestructura completamente administrada por un proveedor para cargar funciones y ejecutarlas mediante “pago por solicitud”, y logrando que los desarrolladores y equipos de operaciones se abstraigan totalmente de las instalaciones de sistemas operativos, servidores de aplicaciones, librerías, etc.

Arquitectura Serverless

La arquitectura “sin servidor” aplica a una capa de servicios, por tanto, los diseños de arquitectura deben contemplar las capas de datos e integración como parte de la misma. En líneas generales, las capas de presentación (web, mobile) y las de aplicaciones son las mas factibles de llevar a modelos serverless, con los siguientes beneficios:

Menores costos y escalabilidad. En comparación con el enfoque tradicional, reduce los costos de operaciones y mantenimiento del servidor. En comparación con otros tipos de computación en la nube, la mayoría de los proveedores de FaaS trabajan con el modelo de precios de pago por solicitud. Esto significa que solo paga por el tiempo que se invocó una función y por la cantidad de invocaciones.

Capacity planning. Puede asignar una cierta cantidad de memoria y CPU para una función, y escalarla según sea necesario hacia arriba y hacia abajo. Incluso apagarse apagarse cuando no sea necesaria.

Desarrollo e implementación más rápidos. En lugar de escribir una estructura monolítica, FaaS ofrece una alternativa más flexible. Los desarrolladores pueden escribir código para un conjunto de funciones, en lugar de toda la aplicación monolítica, y cargar bits de código en el servidor. Eso hace que toda la estructura sea fácil de corregir, actualizar y agregar nuevas funciones.

Proveedores de arquitectura serverless

#AWS es quien introdujo la tecnología con mayor fuerza. #Lambda se convirtió en sinónimo de serverless, manteniendo la posición de producto líder en el mercado con la más amplia gama de servicios disponibles. #Azure Functions fue el siguiente oferente de esta tecnología en la nube, ofreciendo un conjunto de servicios similar a Amazon pero con un enfoque orientado hacia familia de lenguajes y herramientas de #Microsoft.

Luego #Google en #GCP, #IBM, #Oracle, #Huawei lograron implementar soluciones serverless en sus nubes. Todos los proveedores mencionados ofrecen servicios similares, suficientes para lanzar una aplicación en una infraestructura administrada.

En cuanto a la compatibilidad de lenguajes, Azure y Lambda admiten más idiomas que otros proveedores, y en cuanto a performance, no existe una diferencia crítica entre el rendimiento de las FaaS de cada provider.

Como monitorear servicios sin-servidor

El monitoreo es necesario para controlar las aplicaciones que corran en formato serverless, teniendo en cuenta ademas que toda la infraestructura es administrada por un proveedor. Entonces, para ver qué sucede exactamente con su aplicación y aplicar métricas, cada servicio tiene que ofrecer herramientas de monitoreo / registro. Esto le permite una descripción general de los recursos asignados y utilizados, detectar errores, monitorear registros, etc. Un factor fundamental a monitorear tiene que ver con la concurrencia, entendiendo por concurrencia a la ejecución paralela de diferentes funciones en un período de tiempo determinado, esto permite determinar la tasa simultaneidad que tolera cada aplicación, y que viene determinada por configuraciones a realizar en el proveedor del servicio FaaS.

¿Puedo tener Serverless en mi datacenter?

Si. Por ejemplo Kubernetes ademas de funcionar como herramienta para automatizar la implementación, la administración y el escalado de aplicaciones en contenedores, tiene un marco nativo sin servidor para la implementación de código llamado Kubeless.

Apache OpenWhisk es otra plataforma de código abierto que ejecuta funciones, pero administra la infraestructura, los servidores y el escalado mediante contenedores Docker. Tambien existe una herramienta open source llamada Fn project. Es una plataforma sin servidor de código abierto que se puede ejecutar en cualquier lugar, en la nube o en on premise.

En cuanto a herramientas comerciales, #RedHat posee #Openshift Serverless, una herramienta serverless de nivel empresarial que brinda portabilidad y uniformidad a todos los entornos híbridos y multicloud basada en Knative.

Conclusión

La tecnología Serverless permite acceder a una forma de trabajar, con mayor foco en el desarrollo, delegando la administración de la infraestructura a un tercero.

¿Ya habías oído de Serverless? ¿Tu empresa se encuentra en proceso de adopción?

    Please prove you are human by selecting the heart.

    Categories
    54cuatro

    Como Openshift acelera los negocios

    Openshift es la plataforma de #containers de #RedHat que nos permite entregar a los desarrolladores de aplicaciones web espacios de trabajo para que desplieguen sus códigos realizados en distintos lenguajes de programación.

    El corazon de la plataforma

    Recordemos que esta aplicación de Red Hat esta basada en Kubernetes (K8s), una plataforma de código abierto que fue originalmente diseñada por Google y liberada a la Cloud Native Computing Foundation (#CNCF) y que sirve para automatizar la implementación, el escalado y la administración de aplicaciones en contenedores.

    Ventajas de usar Openshift

    Deployment evolution

    Dentro de #Openshift cada desarrollador se preocupa por el desarrollo de su aplicación, sin tener que conocer que pasa a nivel infraestructura. Mientras se avanza en el desarrollo, se utiliza un repositorio tal como #Github, ese proyecto creado sera luego el que Openshift tomará como código fuente del repositorio, y desde el cual creará una imagen Docker de forma automática. Esa nueva imagen Docker es la que se utilice para desplegar la aplicación.

    Ecosistema de Soluciones

    Algo verdaderamente potente, es la posibilidad de integrar a Openshift con todo un ecosistema de soluciones open source, muchas de las cuales fueron tuteladas por Red Hat y permiten armar un gran plataforma funcionando de forma conjunta.

    Una capa que brinda Red Hat para sumar a esto es su suite de #Middleware, que incluye:

    • Red Hat Runtimes
    • Red Hat #Fuse
    • Red Hat #3scale #API Management
    • Red Hat #AMQ (Broker, Interconnect, Streaming)

    Dentro de estas plataformas se encuentran los tradicionales productos como Jboss. En el caso de 3scale es para destacar que es una solucion de #APImanagement completa, es decir, incluye el #APIgateway, el #APImanager y el #APIportal.

    Esto es importante de destacar porque un API gateway por si solo no es una plataforma de API management. El gateway sirve para la integración de las API a nivel backend (ver entrada sobre APIs), pero el Manager y el Portal permiten a los usuarios definir los métodos de autenticación (e incluso integrarse con herramientas de SSO –Ver entrada sobre Keycloak-), límites y control de acceso, monetización, así como el análisis del uso de las APIs y un portal para los desarrolladores. 

    Recorrido por la herramienta

    Beneficios para todos

    Desarrolladores

    Como mencionamos, los desarrollares se benefician de Openshift al despreocuparse por la infraestructura, simplificar (y robustecer) la seguridad, optimizar la colaboración entre los grupos de trabajo, y finalmente entregar aplicaciones de forma rápida y segura acelerando el time to market.

    Administradores de Infraestructura

    Openshift permite entregar ambientes de manera mas rápida logrando disminuir los típicos roces que existen entre las áreas de desarrollo e infraestructura. El área de infra como operador de la platafoma lleva el control, visibilidad y administración.

    Habilita DevOps

    Hemos escrito muchas notas respecto a que es DevOps. Si bien existen muchos condicionantes que se requieren cumplir, recordemos que DevOps tiene como motor de cambio la integración de equipos de Desarrollo y Operaciones, y para lograr esa integración se necesita habilitar la Colaboración, la Automatización y la mejora continua. Openshift permite que los Devs implementen, creen sus pipelines de código (también hablamos de CI/CD en otras notas) mientras que Ops tengan como responsabilidad entregar una plataforma de contenedores estable y escalable para ello.

    OpenShift Origin consoles

    Por todo lo anterior, y porque permite actualizar aplicaciones legadas a arquitecturas mas modernas, porque le permite a los desarrolladores entregar aplicaciones robustas y funcionales en menor tiempo, es que Openshift permite acelerar los negocios.

    Queres saber mas?


    [popup_anything id=”2076″]
    Categories
    54cuatro

    Algunas ideas sueltas sobre containers

    No es novedad que los #containers ya son un standard de la industria, habilitan desarrollos ágiles, mejoran el #TimetoMarket, mejoran la analítica y generan un #ROI rápidamente comprobable.

    Estamos en un momento HYPE de la era #Microservicios. Y vemos mucha adopción de esta arquitectura pero existe mucho camino por recorrer, y aún hay muchos que no pudieron a avanzar en este sentido y ya estamos hablando de #ServiceMesh, un nuevo componente que facilita la comunicación.

    Pero que es Service Mesh?

    El Service Mesh es una capa que mejora el formato en que las aplicaciones construidas en Microservicios se comunican entre sí. Anteriormente en desarrollos #Monolíticos o #SOA, las llamadas se hacían dentro de cada una aplicación o en comunicación entre capas. Pero en el nuevo esquema, las llamadas son reemplazadas por se realizan a través de comunicaciones #API.

    Esto tiene ventajas importantes, ya que permite a los #desarrolladores concentrarse en la lógica del negocio y no tener que trabajar sobre la capa de comunicaciones. Pero existe un faltante de estandarización de la comunicación API, dado que no existe un protocolo definido para la creación de API.

    En este punto es cuando Service Mesh se vuelve importante. Porque?

    Porque es una malla de servicios que se para por encima de los microservicios, siendo una solución de baja latencia de comunicaciones que nos brindara descubrimiento para nuevos servicios, y con ello la posibilidad de crear reglas de load balancer, autenticación, cifrado, entre otras cosas, y permitiéndonos además tener un monitoreo que asegure la disponibilidad de nuestras API.

    Existen muchos Service Mesh en el mercado como #Istio o #Envoy, y a partir de la versión 4 de #OpenShift existe el servicio OSMO (Openshift Service Mesh Operator) que habilita la posibilidad mejor seguimiento, enrutamiento y optimización de la comunicación de las aplicaciones.openshift y service mesh

    Si necesitas modernizar la arquitectura escribime o llamame, así podemos determinar el nivel de madurez si tu empresa como para adoptar microservicios, el nivel de práctica #Agile/#DevOps y que con un #assessment podamos acompañarte al próximo nivel.

    Publicado por nuestro Sales Director, Rodrigo Yañez en https://www.linkedin.com/pulse/algunas-ideas-sueltas-sobre-containers-microservicios-rodrigo-ya%C3%B1ez/

    [popup_anything id=”2076″]