Download - SGNext Elasticsearch
![Page 1: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/1.jpg)
Ya eres parte de la evolución
Liquid Day
Almacenamiento masivo en el sector bancario con
StorageGRID Webscale & Elasticsearch
Domingo Suarez Torres @domix
![Page 2: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/2.jpg)
Agenda
• Storage
• Alternativas
• Caso de estudio
• Lecciones aprendidas
![Page 3: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/3.jpg)
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
![Page 4: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/4.jpg)
storage
![Page 5: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/5.jpg)
https://www.domo.com/blog/2015/08/data-never-sleeps-3-0/
![Page 6: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/6.jpg)
![Page 7: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/7.jpg)
https://www.domo.com/blog/2016/06/data-never-sleeps-4-0/
![Page 8: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/8.jpg)
![Page 9: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/9.jpg)
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
![Page 10: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/10.jpg)
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
![Page 11: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/11.jpg)
Cloud Storage
![Page 12: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/12.jpg)
![Page 13: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/13.jpg)
REST API propietario
![Page 14: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/14.jpg)
![Page 15: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/15.jpg)
![Page 16: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/16.jpg)
![Page 17: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/17.jpg)
Storage REST APIs• Amazon S3
• OpenStack Swift
• CDMI (Cloud Data Management Interface)
• By Storage Network Industry Association (SNIA)
• Propietarias como Azure <- NO recomendado
![Page 18: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/18.jpg)
¿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)
![Page 19: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/19.jpg)
Opciones en Appliances
![Page 20: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/20.jpg)
![Page 21: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/21.jpg)
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.
![Page 22: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/22.jpg)
Cuando usar un appliance
• Tienes presupuesto
• Tienes un centro de datos dedicado
• Usas Colocation
• Administras información restringida por las leyes locales/federales
![Page 23: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/23.jpg)
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
![Page 24: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/24.jpg)
![Page 25: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/25.jpg)
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)
![Page 26: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/26.jpg)
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.
![Page 27: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/27.jpg)
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
![Page 28: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/28.jpg)
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)
![Page 29: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/29.jpg)
Solución
![Page 30: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/30.jpg)
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
![Page 31: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/31.jpg)
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
![Page 32: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/32.jpg)
Búsqueda de metadata
![Page 33: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/33.jpg)
![Page 34: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/34.jpg)
You know, for search…
![Page 35: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/35.jpg)
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
![Page 36: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/36.jpg)
Conceptos• Cluster
• Node
• Index
• Shard & Replica
• Type(s)
• Mapping
• Documents
![Page 37: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/37.jpg)
Como se organiza la información en Elasticsearch
![Page 38: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/38.jpg)
Nodes & shards
![Page 39: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/39.jpg)
Indexing documents
![Page 40: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/40.jpg)
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!
![Page 41: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/41.jpg)
Distributed indexing
![Page 42: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/42.jpg)
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
![Page 43: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/43.jpg)
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
![Page 44: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/44.jpg)
Cluster de Elasticsearch
![Page 45: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/45.jpg)
API REST
![Page 46: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/46.jpg)
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
![Page 47: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/47.jpg)
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.
![Page 48: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/48.jpg)
¡Es divertido trabajar desde un data center!
![Page 49: SGNext Elasticsearch](https://reader030.vdocumento.com/reader030/viewer/2022021506/5875f45e1a28ab006e8b5b25/html5/thumbnails/49.jpg)
Ya eres parte de la evolución
Liquid Day
¿[email protected]@gmail.com
http://domingosuarez.com
http://www.slideshare.net/domingo.suarez
http://bit.ly/coderdog