En Navixy, nuestros clientes a menudo nos preguntan cómo se organiza el proceso de prestación de servicios desde el lado del servidor. Por ejemplo, qué esperar en caso de que falle uno de los componentes del sistema, si existe alguna protección contra el tiempo de inactividad o la pérdida de datos, cómo lidiamos con los problemas relacionados con los nodos de red intermedios, etc.

En nuestro artículo de hoy, lo llevaremos bajo el capó de la arquitectura Navixy. No profundizaremos en los detalles técnicos, pero revelaremos algunas de las características operativas del sistema para mostrar cómo funciona realmente.

Tolerancia a fallas y confiabilidad

Dado que la plataforma Navixy brinda servicios a clientes de todo el mundo las 24 horas del día, los 7 días de la semana, su operación y confiabilidad fluidas deben estar a la vanguardia. Por lo tanto, es natural que nuestros clientes potenciales presenten las siguientes preguntas al momento de decidir si conectarse o no al sistema: “¿Qué tan tolerante es a las fallas y cuán confiable es el sistema?”, «¿Qué métodos se utilizan para la copia de seguridad?».

Para reducir los riesgos de inactividad, el sistema está segmentado en varios nodos regionales que, a pesar de estar interconectados, no dependen entre sí. Cada nodo regional se construye de acuerdo con una plantilla común tolerante a fallas, mientras que la cantidad de servidores que realizan funciones independientes se elige en función de los requisitos de procesamiento de la carga de trabajo para cada uno de los nodos. En términos de SLA (Service Level Agreement), Nosotros estamos comprometidos a mantener nuestro indicador de tiempo de actividad a un nivel no inferior al 99,99%, es decir, 52,56 minutos de inactividad al año. A partir de 2020, nuestro tiempo de actividad no ha caído por debajo del 99,999%.

Fue entonces en la etapa de diseño de la arquitectura del sistema cuando optamos por segmentarlo en nodos regionales . Esta parecía ser la forma más fácil de reducir las demoras en la red para los clientes que acceden al sistema desde varias ubicaciones geográficas, y también ayudó a reducir el impacto de los problemas técnicos regionales en la estabilidad general. Durante ese período, fuimos testigos de las dificultades con las que se habían encontrado otros proveedores globales, lo que resultó en interrupciones en la conectividad de la red de países y continentes enteros. Con eso en mente, hoy estamos haciendo todo lo posible para mitigar esos riesgos.

Ahora pasemos a un diagrama que ilustra cómo se organizan los nodos regionales dentro de Navixy.

Navixy cloud architecture

Además de la tolerancia a fallos, realizamos copias de seguridad con regularidad y replicamos todos los componentes clave necesarios para la prestación continua de los servicios. Dado que utilizamos la infraestructura AWS de Amazon, el esquema de respaldo incluye tanto el lanzamiento de varios servidores virtuales para realizar funciones específicas como su distribución en varios centros de datos dentro de un punto geográfico de presencia (PoP). Por ejemplo, un nodo regional en Frankfurt se distribuye en tres centros de datos independientes, mientras que todas las bases de datos se replican de manera continua.

También realizamos copias de seguridad de todos los servidores clave a diario. Esto incluye copias de seguridad de bases de datos, discos virtuales o servidores completos.

Cabe destacar que cada servidor realiza una función independiente. Esto significa que, en caso de que se caiga, el resto de la red seguirá funcionando sin verse afectado. En tal caso, implementamos inmediatamente un servidor similar a partir de una plantilla preparada y automáticamente cargamos en él la versión actual de cualquiera de nuestros componentes de software. Nuestra infraestructura CD/CI (Integración y entrega continuas) permite obtener la última versión lista para usar de cualquiera de los componentes e implementarla en cualquiera de los servidores. El procedimiento de implementación se activa automáticamente a través de ansible.

Aumento de la disponibilidad global

Además de los altos niveles de confiabilidad, estamos comprometidos a brindarles a nuestros clientes acceso de alta velocidad a nuestros servicios. El sistema con nodos regionales distribuidos nos permite ubicar nuestros servicios más cerca del consumidor final. Sin embargo, incluso al implementar este esquema, hay regiones que pueden tener acceso limitado debido a líneas de comunicación congestionadas o distancias significativas. Para mitigar estos factores, aprovechamos la red de distribución de contenido CDN de CloudFlare, que ha demostrado funcionar mejor que simplemente transferir datos directamente al cliente a través de Internet. Nuestras pruebas han demostrado que este enfoque puede reducir la latencia en un 50% al cargar portales de clientes. A mediados de septiembre de 2020, completamos el cambio a CloudFlare CDN para todos los clientes de Navixy.

Trabajar con CloudFlare puede incluir algunos desafíos, somos libres de habilitar o deshabilitar la CDN de CloudFlare «sobre la marcha» para todos los usuarios o grupos de clientes específicos. Durante cualquier cambio, ya sea que se cambie a un servidor de respaldo, base de datos o cualquier servicio, el cambio es fluido y nuestros usuarios no lo notan.

Estabilidad y seguridad

Vigilamos constantemente nuestra infraestructura distribuida para garantizar su estabilidad. Para obtener una visión holística del estado actual de todos los componentes de la infraestructura y garantizar su perfecto funcionamiento, empleamos los siguientes canales:

  1. Sistema de seguimiento interno.
  2. Un servicio externo que verifica la disponibilidad de componentes públicos.
  3. Los servicios de Amazon integrados informan problemas con la infraestructura y ejecutan servidores virtuales.

En cuanto a la seguridad del sistema, empleamos políticas y procedimientos estrictos que abarcan la seguridad y confidencialidad de los datos del cliente. El acceso a los nodos regionales se mantiene bajo monitoreo continuo y restringido al personal autorizado. Las listas de control de acceso limitan el acceso a nuestra infraestructura en la nube solo desde direcciones IP autorizadas.

Conclusión

Procesando el tráfico de cientos de miles de rastreadores GPS y recibiendo millones de solicitudes de los clientes a diario, la arquitectura de los servicios de Navixy sigue siendo fácil de implementar y ofrece grandes oportunidades de escalabilidad . Nuestra topología de red nos permite aumentar linealmente el rendimiento de cualquiera de nuestros nodos, así como agregar fácilmente uno adicional si es necesario.

Nuestra máxima prioridad es brindar servicios tolerantes a fallas, confiables, asequibles, estables y seguros a nuestros clientes. Continuaremos trabajando duro para brindarle soluciones técnicas que correspondan a los estándares establecidos.

Esperamos que esta publicación le haya resultado útil y haya aprendido algo nuevo. Para cualquier consulta adicional sobre este tema, no dude en comunicarse con nosotros en [email protected] . Y, como de costumbre, siempre puede compartir sus pensamientos sobre la arquitectura del servicio en la sección de comentarios a continuación.