Enterprise Search
Software y tecnología

Docker: Ayudando a encontrar el contenedor adecuado para ejecutar aplicaciones distribuidas

El desafío

¿Cómo hacer una búsqueda de alto rendimiento en una base de datos en continuo crecimiento sin sobrecargar los recursos operativos?

La solución

Mediante Elastic Cloud, el servicio hospedado de Elasticsearch en la nube y administrado por Elastic, que ofrece una experiencia de búsqueda. analítica . y descubrimiento escalable, sin problemas y con alta disponibilidad para la creciente comunidad de Docker.

Lo destacado de los casos de estudio

  • Escalar una aplicación de búsqueda de manera fácil y rentable para cumplir con volúmenes de datos crecientes
  • Garantizar una excelente experiencia de búsqueda y descubrimiento
  • Administrar las complejidades operativas
  • Usar Elasticsearch para brindar mejores y más rápidos resultados de búsqueda
  • Elegir un servicio de hospedaje (cloud) que garantice una experiencia de búsqueda estable y persistente
  • Reducir los gastos operativos generales al delegar la infraestructura de Elasticsearch a Elastic Cloud

Docker, Inc. es la empresa detrás de la plataforma de open source Docker y el patrocinador principal del ecosistema Docker. Usado por decenas de miles de organizaciones como Baidu, BBC, eBay, Goldman Sachs, ING, Spotify y Yelp, Docker es una plataforma abierta para aplicaciones distribuidas que permite a los desarrolladores y administradores de TI crear, enviar y ejecutar aplicaciones en cualquier lugar.

La comunidad de Docker produce contenedores para todo, desde balanceadores de carga hasta bases de datos y servicios de registro de tiempo rápidos. Estos bloques de construcción se pueden desplegar y organizar fácilmente, con importantes beneficios de seguridad, rendimiento y organización.

"Elasticsearch nos brinda mayor flexibilidad con respecto a las consultas que debemos realizar, lo que nos permite especificar en qué aspectos podemos mejorar los campos y dónde clasificar y calificar documentos".

– Ken Cochrane, Director de ingeniería, Docker

El problema: RDBMS ya no es suficiente

La biblioteca de contenedores de Docker debía ser detectable y, dada la gran cantidad de contenedores, se decidió que la búsqueda era la mejor experiencia de usuario para esta característica. Una implementación de búsqueda inicial en un RDBMS tradicional no cumplía con los requisitos de rendimiento y calidad de Docker. Como señaló el desarrollador de Docker, Ken Cochrane: "Antes usábamos la base de datos, que era bastante limitante. Esto cargaba nuestra base de datos, que se volvía más lenta a medida que agregábamos más datos".

Después de tomar la decisión de abandonar su RDBMS, Docker evaluó tanto Elasticsearch como otras tecnologías de búsqueda. Decidieron que Elasticsearch sería su plataforma de la próxima generación.

Una vez tomada la decisión de hacer el cambio a Elasticsearch, Docker consideró el trabajo operativo que se necesitaba. La administración de una base de datos distribuida como Elasticsearch presenta algunos desafíos operativos difíciles, como mantener un quorum viable, asegurar que la replicación se configure correctamente para una alta disponibilidad y para archivar/administrar backups. Debido a estas y otras complejidades, se tomó la decisión de delegar la infraestructura de Elasticsearch a un proveedor completamente hospedado.

"El énfasis de Elastic Cloud en el servicio y la velocidad de tiempo de respuesta ayudaron a garantizar que el lanzamiento de Docker fuese un éxito. El soporte es muy receptivo. De hecho, ¡a mí me parece perfecto!".

– Roberto Hashioka, Ingeniero de software, Docker

La solución: Aislamiento de inquietudes

Para evaluar las opciones disponibles para la infraestructura hospedada de Elasticsearch, Docker observó una variedad de criterios diferentes. Según el desarrollador de Docker, John Costa: "Evaluamos a algunos otros proveedores de infraestructura hospedada de Elasticsearch. Durante el análisis, consideramos la ubicación, la cantidad de índices (desarrollo, organización, producción), los recursos disponibles (memoria), las opciones de alta disponibilidad y el precio. Elastic Cloud fue la mejor opción".

El rendimiento y la confiabilidad constantes fueron las inquietudes clave de Docker, por lo que los clusteres dedicados de Elasticsearch para Elastic Cloud fueron una buena opción por dos razones clave. En primer lugar, el modelo de hospedaje de Elastic Cloud basado en clusteres dedicados con memoria reservada y CPU aseguró que su aplicación tuviera un rendimiento constante. En segundo lugar, las opciones de alta disponibilidad de Elastic Cloud le proporcionaron a Docker garantías adicionales de que, aun en caso de una interrupción total en el centro de datos, su base de datos de búsqueda permanecería disponible.

Además, los requisitos de asignación de índices de Docker fueron una buena opción para la arquitectura de Elastic Cloud. Dado que a cada cliente de Elastic Cloud se le asigna un cluster dedicado de Elasticsearch sin restricciones de uso, tenían la libertad de asignar índices cuando lo consideraran adecuado.

"Luego de evaluar a algunos proveedores, decidimos que Elastic Cloud satisfacía nuestras necesidades en función de la tolerancia a las fallas, el soporte rápido y la facilidad de las operaciones".

– John Costa, Ingeniero de software sénior, Docker

"El énfasis de Elastic Cloud en el servicio y la velocidad de tiempo de respuesta ayudaron a garantizar que el lanzamiento de Docker fuese un éxito. El soporte es muy receptivo. De hecho, ¡a mí me parece perfecto!".

– Roberto Hashioka, Ingeniero de software, Docker

Los beneficios: Implementación en la producción

Al implementar Elasticsearch en la producción, se lograron las ganancias de rendimiento que Docker estaba buscando. La carga disminuyó considerablemente en su RDBMS de producción; además, la latencia y el rendimiento de la búsqueda mejoraron enormemente. A su vez, Docker pudo mejorar en gran medida la calidad de los resultados de búsqueda al mejorar los campos de Elasticsearch y las consultas de puntuación de la función para promover resultados de búsqueda más populares y relevantes.

La tarea de desplegar el índice de Docker en Elastic Cloud fue rápida y sencilla. Como señaló John Costa, de Docker: "La implementación en la producción fue sencilla, ya que solo tuvimos que agregar una tarjeta de crédito para facturar y luego establecer los ajustes de producción. Tuvimos algunas preguntas sobre indexación, configuración de memoria y configuración de fiabilidad. El personal de soporte de Elastic Cloud fue expeditivo y detallado en sus respuestas".

Con su nueva infraestructura, Docker puede ofrecer mejores resultados de búsqueda, más rápido. Esto implica una mayor facilidad de uso para los desarrolladores que usan la plataforma Docker. Para Docker esto es vital; una herramienta diseñada para proporcionar potencia y practicidad debe tener servicios de soporte que posean las mismas características. En última instancia, Elasticsearch ha demostrado que es una herramienta poderosa para la empresa, al ayudarles a cumplir una parte importante de su misión principal: brindar una excelente experiencia al desarrollador.