Nuestro primer artículo invitado del Programa de escritura comunitaria proviene de Nicolas Motte.
Nico es ingeniero full-stack en el sur de Francia. Lanzó varias aplicaciones móviles nativas e híbridas en iTunes y Google Play y creó su propia empresa en 2015. Actualmente trabaja en Amadeus como director de operaciones y formador de operaciones. También invierte en start-ups en su tiempo libre. Tiene experiencia en requisitos operativos y almacenes de datos (Memcached, Couchbase, MongoDB, Kafka, ZooKeeper, Elasticsearch).
Recientemente he estado trabajando en un proyecto para desplegar un Couchbase en OpenShift(1). Rápidamente necesité simular una carga de trabajo, para evaluar el rendimiento del clúster y su tolerancia a fallos. Al principio pensé en migrar una de nuestras aplicaciones a OpenShift, pero eso era demasiado doloroso para una necesidad tan simple y común. También pensé en crear mi propio inyector, ¡pero soy demasiado vago para eso! Entonces hablé con Michael Hirschberg, un campeón de Couchbase, para entender cómo valida las nuevas versiones de Couchbase o el nuevo hardware. Me señaló cbc-pillowfight. En caso de que no conozcas esta herramienta, échale un vistazo aquí.
Eso parecía muy prometedor, todo lo que tenía que hacer era desplegarlo en OpenShift... ¡pero no tenía ni idea de cómo hacerlo! Así que vale, OpenShift ejecuta las aplicaciones en contenedores Docker, lo que significaba que el primer paso era crear una imagen Docker. Después de algunos intentos, llegué a este Dockerfile basado en CentOS, muy simple y sencillo. Lo importante era usar sólo un comando RUN para reducir el número de capas y pasar los parámetros de cbc-pillowfight como parámetros Docker, para hacerlo genérico. El Dockerfile puede ser compilado y empujado a un repo con estos comandos:
Puede encontrar la imagen Docker compilada aquí. Ahora, todo lo que necesitaba era crear una plantilla OpenShift, tomando todas las parámetros anteriores en entrada.He añadido un controlador de replicación para escalar fácilmente mi inyección y se añade un sufijo a su nombre para que pueda desplegar varios inyectores con diferentes parámetros. ¡Y ya está! Bastante sencillo, ¿verdad? Ahora puedo simular cualquier tipo de tráfico a mi cluster de Couchbase corriendo en OpenShift y aumentar este tráfico simplemente añadiendo réplicas a mi controlador de replicación.
Aquí tienes un ejemplo de cómo utilizarlo:
Alcancé fácilmente 46k ops/seg en un entorno minúsculo, y sinceramente es super cómodo de usar. He subido un video youtube para mostrarte concretamente cómo usarlo. Aquí están los detalles de mi entorno:
Hardware
VMs
Almacenamiento
Distribución de vainas
Consola Couchbase
Podemos ver claramente que el cuello de botella de mi entorno es la CPU. Podría mejorar el rendimiento añadiendo más vCPUs a mis VMs, pero ese no es el objetivo de este post.
Creo firmemente que la integración de almacenes de datos en OpenShift será cada vez más popular en entornos locales al menos, muy probablemente también en entornos de prueba y tal vez incluso en producción, una vez que sea soportado por los diferentes proveedores. Es una gran manera de estandarizar la gestión de los capa de datos. Esta plantilla OpenShift para cbc-pillowfight será entonces la herramienta perfecta para generar una carga de trabajo en su querido Couchbase ¡Racimo!
-
Despliegue de Couchbase en OpenShift aún no se admite