Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#SGNext Massive storage in the Mexican banking ...

#SGNext Massive storage in the Mexican banking industry

En esta sesión analizaremos el caso de un proyecto que se realizó para una institución financiera para manejar el almacenamiento y búsqueda de grandes cantidades de datos. La implementación utiliza un cluster de 24 nodos distribuidos para manejar y buscar miles de millones de documentos que representan cientos de terabytes. Entre las tecnologías que se utilizaron están #StorageGrid y #Elasticsearch.

En esta plática compartiremos algunos de los principales retos técnicos del proyecto, y cómo se resolvieron

Domingo Suarez Torres

August 31, 2016
Tweet

More Decks by Domingo Suarez Torres

Other Decks in Technology

Transcript

  1. Ya eres parte de la evolución Liquid Day Almacenamiento masivo

    en el sector bancario con StorageGRID Webscale & Elasticsearch Domingo Suarez Torres @domix
  2. Sobre Domingo • @domix (twitter, github) • CTO @ HolaGus

    • CoFounder @ TheDataPub • YouTube Channel http://bit.ly/coderdog • Previamente • Solution Architect @ SyC • Chief Architect @ Grupo Expansión • CTO @ clickOnero
  3. Almacenamiento masivo • No solo para compañías de social media

    • Tendencia a la alta en compañías de bienes y servicios • Requerimientos legales • Archivo muerto • Data Analytics • Medios de información cada vez más ricos
  4. Tipos de almacenamiento • Archivos • File systems • Estructura

    jerárquica (Carpetas/Directorios) • Objeto (Blob storage/Object storage) • Contenedores (Buckets/Containers) • No estructurado, para acceder se requiere un conjunto de llaves • Identificador del contenedor + identificador del objeto
  5. Storage REST APIs • Amazon S3 • OpenStack Swift •

    CDMI (Cloud Data Management Interface) • By Storage Network Industry Association (SNIA) • Propietarias como Azure <- NO recomendado
  6. ¿Cuando usar cloud storage? • Pay as you go (presupuesto

    limitado) • Capacidad interna en la compañía para integrar el servicio con sistemas existentes • Información no restringida por las leyes locales/ federales (recuerden terrible caso del INE)
  7. Interface de appliances • Muchos están basados en estándares abiertos

    • OpenStack Swift • CDMI • Amazon S3 • Se ha convertido en un estándar de industria.
  8. Cuando usar un appliance • Tienes presupuesto • Tienes un

    centro de datos dedicado • Usas Colocation • Administras información restringida por las leyes locales/federales
  9. Alternativa OpenSource • LinkedIn recientemente anuncio Ambry • http://bit.ly/linkedin-ambry •

    Distributed Object Storage • https://github.com/ linkedin/ambry • API REST propietaria • Pensado para cloud • Escalamiento horizontal • Baja latencia • Optimizado para archivos pequeños y grandes
  10. A considerar • Object storage es el camino para alto

    escalamiento y gran capacidad de almacenamiento • Las soluciones de Object storage en general no ofrecen un mecanismo de búsqueda por metadata • Si se desea poder hacer búsquedas no hay soporte nativo, solo paginaciones de los contenedores y filtros sencillos (fecha, patrones de nombre)
  11. Caso de estudio • El Banco más grande de México

    • Solución para almacenamiento y recuperación de al menos 7 sistemas fuentes • Estados de cuenta (XMLs pequeños y algunos enormes) • Archivo digital (imágenes) • Bitácora de transacciones • Mi rol en el proyecto fue de Arquitecto de Solución.
  12. Requerimientos • Alta capacidad de almacenamiento (Petas) • Replicación en

    2 centros de datos nacionales, ademas del banco (activo-activo) • Búsqueda de documentos basada en metadata • Alta disponibilidad • API RESTful para integrar en los sistemas internos • Seguridad • Cifrado, Confidencialidad, Integridad, No repudio
  13. Búsqueda por metadata • Metadata por tipo de documento •

    Atributos de metadata deben ser dinámicos • N documentos por N atributos de metadata • Millardos de documentos (do the math!) • Velocidad de consulta (2 segundos máximo)
  14. Almacenamiento • NetApp StorageGRID Webscale • Appliance de “fácil” configuración

    • Soporta Amazon S3, Swift y CDMI • Se usó Amazon S3. • Políticas de replicación
  15. Retos de almacenamiento • Millardos de documentos pequeños (~4K) •

    Capacidad de ingestar 5 millones de documentos por hora • Latencia de red • Procesos, Verificación de integridad, cifrado, etc. • Velocidad de recuperación
  16. Features • Real-Time Data. Yo (Domingo) digo que es cercano

    a Real-Time Data. • Massivamente Distribuido • Alta Disponibilidad • Full-Text Search • Document-Oriented • Schema-Free • Developer-Friendly, RESTful API • Extensible via plugins
  17. Conceptos • Cluster • Node • Index • Shard &

    Replica • Type(s) • Mapping • Documents
  18. Sharding es crucial • Un Shard es un indice fisico

    de Lucene • Limite de # documentos en un indice de Lucene es de 2 millardos. • Cuando un indice es creado se debe especificar el # de shards, no se puede cambiar después. ¡Cuidado! • ¡No hagan over-sharding del indice! ¡Cuidado!
  19. Shard allocation awareness • Los shards pueden ubicarse en nodos

    diferentes • Con metadata a nivel nodo podemos indicar a Elasticsearch que el nodo vive en cierto “rack” del data center • Con mas metadata podemos indicarle que el nodo vive en cierto data center • Con la combinación correcta, la replicación no compromete la integridad de los datos
  20. Elasticsearch setup • 2 Centros de datos. Geográficamente separados por

    700 KM • 24 Nodos • 12 Nodos en cada Centro de datos • 10 Nodos de datos • 2 Nodos cliente • Cada VM • 16 CPUs • 32 GB RAM. 16 GB para Elasticsearch • 700 GB de Storage, para nodos de datos. • Centos 6
  21. Microservices • Desarrollados con SpringBoot y Java 8 • Ingesta

    de documentos • blob del documento y metadata (JSON) • Recuperación directa • Búsqueda basada en criterios (atributos de metadata). ES ~40 milisegundos de respuesta • Spring Cloud. Hystrix, Eureka, RxJava de Netflix • Escalar horizontal bajo demanda
  22. Lecciones aprendidas • Monitoreo de la infraestructura es elemental •

    VMs, Microservicios, Salud cluster de ES • Análisis muy detallado de los requerimientos de atributos metadata • Hizo falta involucrar un experto en gestión de documentos y archivos. • Falta de recursos con conocimientos de Elasticsearch. Evangelización dentro del banco. • Los bancos pueden adoptar nuevas tecnologías si se comunican eficientemente los beneficios.
  23. Ya eres parte de la evolución Liquid Day ¿Preguntas? @domix

    [email protected] http://domingosuarez.com http://www.slideshare.net/domingo.suarez http://bit.ly/coderdog