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.
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.
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.
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.