Blog Esri España

Capitaneando los microservicios geoespaciales con ArcGIS Enterprise on Kubernetes


08/04/2021 - 10:27 - Deja un comentario
[ssba]

kubernetes

El comercio mundial se mueve gracias a los grandes barcos porta-contenedores. Estos barcos trasladan millones de toneladas de carga de todo tipo desde China principalmente a los puertos más importantes de Estados Unidos y Europa. Precisamente, los contenedores han hecho posible este comercio mundial. Los contenedores se inventaron a mediados del siglo pasado y es uno de los mejores ejemplos de interoperabilidad internacional de hardware que existe. Mira en la Wikipedia el concepto de TEU.

Lo que quizá no todo el mundo sepa es que la tecnología de contenedores aplicada a los sistemas de información también se ha convertido en un estándar para habilitar, entre otros, las principales plataformas de comercio electrónico, entretenimiento y servicios en la nube. Al igual que los contenedores en los barcos han facilitado el intercambio de bienes materiales y su gestión, la tecnología de contenedores ha hecho posible nuevas arquitecturas de servicios de información utilizando el concepto de los microservicios.

Pero, ¿qué es un microservicio?

 

amazon

 

El concepto de servicios web lleva con nosotros muchos años. Sin embargo, ha ido evolucionando hacia una mayor «granularidad» con el objetivo de acotar responsabilidades y tareas y hacer los sistemas más resilientes y adaptables. Los microservicios están en prácticamente todas las plataformas de uso masivo online que existen hoy en día. La web de Amazon puede tener cientos de ellos trabajando a la vez. Aunque nosotros veamos una interfaz única cuando hacemos nuestras compras, por debajo tenemos toda una red de microservicios que se encargan de gestionar nuestro carro de la compra, pedidos, recomendaciones, anuncios, ofertas, descuentos, etc. Es más, en muchos casos, cada uno de esos microservicios tiene detrás un equipo pizza-size  que se encarga de su desarrollo, gestión, actualización y mantenimiento. Igualmente, plataformas como Spotify o Netflix usan arquitecturas y despliegues basados en microservicios para dar servicio a sus millones de usuarios.

Si hablamos de microservicios, y para no salirnos del tema portuario, tenemos que hablar de Docker (estibador) o contenedores . Podemos entender Docker o los contenedores como una tecnología que va un paso más allá de las plataformas de virtualización de Sistemas Operativos, como VMWare. Aquí no se trata de virtualizar todo el SO, sino solo el conjunto de componentes mínimos que se puedan agrupar para resolver un problema concreto.

Por ejemplo, ¿podemos agrupar el sistema de sugerencias de playlist de Spotify en un microservicio? Sí, se puede y se hace. ¿Qué ganamos con esto? Granularidad y reparto de responsabilidades, además de escalabilidad y resiliencia (la palabra de moda). Ya no tenemos que aumentar mucho la CPU o la RAM para que nuestra aplicación monolítica del pasado se vea impactada por el incremento masivo de búsquedas del último éxito de Dua Lipa. Ahora basta con que el buscador sea un microservicio, o un conjunto de ellos, para que pueda soportar esos picos de demanda. Así el resto de componentes pueden seguir funcionando con el dimensionamiento justo. Por supuesto, todo esto está directamente asociado con un ahorro de costes en cuanto a los recursos que tengo que provisionar en plataformas cloud. No es lo mismo, sumar 8 vCPUs más a una aplicación al completo que solo a un microservicio con un pico de demanda puntual. Del tema de actualizar toda una aplicación al completo versus actualizar un solo componente ya ni hablamos.

 

kubernetes

 

Ahora bien, aunque la estrategia de divide y vencerás podría parecer atractiva, no olvidemos que este mantra se usa para debilitar el enemigo principalmente. A más división, más complejidad, más problemas de comunicación, etc. ¿Cómo solucionamos este problema de coordinación y comunicación? De nuevo, volvemos a la analogía marítima, busquemos un capitán de barco. Busquemos un orquestador. Es aquí donde tenemos que llamar a un «κυβερνήτης», o lo que es lo mismo a un Kubernetes (capitán o timonel en griego). Kubernetes «es un sistema de código libre para la automatización del despliegue, ajuste de escala y manejo de aplicaciones en contenedores» (Wikipedia). Básicamente, y simplificando mucho, es poner a todos los contenedores en un barco, ponerles un capitán, y que éste sea el que se encarga de ver de cuáles de ellos tiene que haber más en un momento dado, con quién se tienen que comunicar, cuándo y cómo hay que reemplazarlos, etc…

Actualmente, todas las plataformas cloud incorporan la posibilidad de desplegar entornos de Kubernetes. En esencia estamos hablando casi de un nuevo tipo de sistema operativo que funciona por encima de hardware y software ya existente. Podríamos decir es una «virtualización en cachitos» que podemos configurar a nuestro gusto.

 

El futuro de la tecnología geoespacial sobre Kubernetes

arcgis enterprise kubernetes

 

Y vamos, finalmente, al título del artículo: ArcGIS Enterprise «sobre» Kubernetes. ArcGIS Enterprise es el software empresarial más potente y utilizado para la gestión, visualización, análisis y difusión de información geoespacial. Hasta la fecha, ArcGIS Enterprise funcionaba sobre SO Windows y Linux y es donde todavía tiene un mayor número de implantaciones. ArcGIS Enterprise sobre Kubernetes es un nuevo software de Esri específicamente desarrollado para funcionar sobre esta plataforma. Es importante entender el uso de la preposición «sobre» en este contexto. Necesitamos tener ya un entorno de Kubernetes sobre el que poder desplegar nuestro ArcGIS Enterprise, del mismo modo que necesitábamos un entorno Windows o Linux anteriormente.

¿Por qué ArcGIS Enterprise on Kubernetes? Principalmente, porque es necesario resolver muchos de los retos expuestos anteriormente en muchas organizaciones que ya están haciendo un uso intensivo de la información geográfica. Por ejemplo, tras la llegada de la COVID-19 ha sido necesario disponer de sistemas y plataformas altamente escalables bajo demanda para poder poner a disposición de millones de ciudadanos información actualizada sobre la pandemia como áreas sanitarias, cuadros de mando, etc. Igualmente, hay muchas organizaciones que también necesitan plataformas de publicación de información geoespacial como oficinas del dato, infraestructuras de datos espaciales, oficinas de catastro, centros cartográficos, agencias gubernamentales internacionales… que sean altamente escalables y resilientes y que, además, se puedan desplegar en sus infraestructuras corporativas. Infraestructuras éstas que ya incorporan en muchos casos a Kubernetes como su plataforma de referencia para el despliegue de aplicaciones.

¿Es necesario que me pase ya a Kubernetes? No, en absoluto. En muchas organizaciones, por el propio uso de la información geoespacial y su conocimiento y hoja de ruta tecnológica, la mejor opción será seguir usando ArcGIS Enterprise en Windows o Linux. Sin embargo, hay muchas otras organizaciones en las que Kubernetes ya forma parte activa de su estrategia de sistemas de información y donde realmente se pueden empezar a plantear su uso a corto y medio plazo.

En definitiva, ArcGIS Enterprise abre la puerta al uso de la información geoespacial a través de microservicios para todas aquellas organizaciones donde Kubernetes ya sea una realidad o esté a punto de serlo.

¿Utilizas ya Kubernetes? ¿Es parte de la estrategia de tu organización? ¿Para qué tipo de aplicaciones? Si es así no dudes en contactar conmigo y/o dejar un comentario.

 

Autor: Aitor Calero, Technology & Innovation Manager. Esri España

08/04/2021 - 10:27
[ssba]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *