Arquitectura Ganadora

En lagash hemos tenido el gran honor de haber recibo varios reconocimientos por distintos proyectos que desarrollamos dentro de la compañía. Como director de desarrollo de este gran equipo y directo involucrado en la calidad y arquitectura de nuestros proyectos, quiero compartirles la arquitectura de uno de estos sistemas.

Reconocimientos

A nivel Latinoamérica hemos ganado en las siguientes categorías:

  • Application Development
  • Mobile App development
  • Public Sector: Govermment

A nivel mundial hemos ganado en la siguiente categoría

  • Public Sector: Govermment

Estos reconocimientos reflejan todo el esfuerzo volcado en nuestros proyectos, la pasión que tenemos por en la tecnología y la inconstante búsqueda de la excelencia.

Escenario:

Este sistema está enfocado a una aplicación para dispositivos móviles, la cual en función de la ubicación en donde se encuentra se visualizan puntos determinados en un radio configurado.

Para este análisis puntual no tiene importancia el significado funcional de dichos puntos.

Una de los principales atributos de calidad claves para este sistema, es la escalabilidad. El sistema será utilizado por un gran sector de la población, por lo que debe soportar un alto número de llamadas concurrentes. Por otro lado, los radios de consultas de dos usuarios distintos, pueden generar conjuntos de intersección en común en donde haya elementos en común entre la respuesta a un usuario y la respuesta a otro.

Arquitectura ganadora:

Componentes significativos de la arquitectura:

App en dispositivos móviles:

Sistema de punto de ingreso al usuario. Este componente se encuentra desarrollado con tecnología Xamarin, lo cual permite estar disponible de manera nativa para distintas plataformas, sin la necesidad de realizar desarrollos distintas para cada una.

Storage:

El componente de storage nos permite almacenar contenido de multimedia que es generado dentro de la app mobile. Un punto importante a comentar sobre el acceso a este componente es la posibilidad de que la app lo haga de manera directa para generar contenido en el storage, sin la necesidad de pasar por un servicio intermedio. Esto se puede hacer de manera segura, dado que el acceso se realiza mediante la utilización de un token temporal que permite la escritura específica de una uri. De esta manera, podemos escalar el uso de la plataforma, dado que no estamos limitando a que elw contenido deba pasar a través de servicios administrados por nosotros, generando una disminución en la transferencia de datos, delegando esta responsabilidad a un componente de Azure altamente escalable.

Service Api:

Ambiente altamente escalable para la ejecución de App services

Dentro de este ambiente se puede desplegar:

  • Windows web apps
  • Linux web apps (in Preview)
  • Docker containers (in Preview)
  • Mobile apps
  • Functions

Los ambientes de App Services (App Services Environments – ASE) son apropiados para soluciones que requieren:

  • Alta escalabilidad
  • Aislamiento y acceso seguro a redes.
  • Alto uso de memoria.

Redis:

Este componente permite tener una base de datos orientada a cache, mediante este mecanismo es posible tener un tiempo de respuesta optimo para las consultas con alta concurrencia. En el escenario de uso de este sistema la cantidad de colisiones de consultas de distintos usuarios con el mismo resultado es muy alta, dado que se devuelven puntos cercanos a una locación. Bajo este escenario es optima la utilización de cache. Por otro lado, no hay una alta actualización de datos; sin embargo están contemplados los procesos necesarios para realizar estas actualizaciones.

Cache API:

Servicio interno para interactuar con el cache, poder realizar las consultas y actualizar la información.

SQL Database:

Base de datos relación que da soporte a la información de toda la solución. Los datos que se pre calculan para insertar en el cache son obtenidos directamente de la base de datos de SQL y procesados para el cache.

Topic Service Bus:

Este componente nos permite generar eventos hacia otros sistemas, que sean consumidos mediante el patrón de Topics de Service Bus. Existen distintos topics para comunicar distintos tipo de eventos y notificar a sistemas externos a la solución. Este componente nos permite tener un medio de comunicación escalable, seguro, resiliente y distribuido, de manera asíncrono, entre distintos componentes de una arquitectura, los cuales podrían ser ambos internos o existir alguno externo como en este caso.

App Logic:

Este componente permite disparar flujos a partir de determinados eventos. En el contexto de esta solución se lo utiliza para realizar la actualización de datos, reaccionar a eventos del service bus y orquestar procesos tanto internos como externos.

Un comentario sobre “Arquitectura Ganadora

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s