Nosso primeiro Guest Post da Programa de Redação Comunitária vem de Nicolas Motte.

Nico é um engenheiro de pilha completa no sul da França. Ele lançou vários aplicativos móveis nativos e híbridos no iTunes e no Google Play e abriu sua própria empresa em 2015. Atualmente, ele trabalha na Amadeus como gerente de operações e instrutor de operações. Ele também investe em start-ups em seu tempo livre. Ele tem experiência em requisitos operacionais e armazenamentos de dados (Memcached, Couchbase, MongoDB, Kafka, ZooKeeper, Elasticsearch).
Recentemente, estive trabalhando em um projeto para implantar um Couchbase cluster no OpenShift(1). Rapidamente, precisei simular uma carga de trabalho para avaliar o desempenho do cluster e sua tolerância a falhas. No início, pensei em migrar um de nossos aplicativos para o OpenShift, mas isso era muito doloroso para uma necessidade tão simples e comum. Também pensei em criar meu próprio injetor, mas sou muito preguiçoso para isso! Então conversei com Michael Hirschbergum campeão do Couchbase, para entender como ele valida as novas versões do Couchbase ou o novo hardware. Ele me indicou o cbc-pillowfight. Caso não conheça essa ferramenta, dê uma olhada aqui.
Isso parecia muito promissor, tudo o que eu tinha que fazer era implantá-lo no OpenShift... mas eu não tinha ideia de como fazer isso! Então, ok, o OpenShift executa os aplicativos em contêineres do Docker, o que significa que o primeiro passo era criar uma imagem do Docker. Depois de algumas tentativas, cheguei a este Dockerfile baseado no CentOS, muito simples e simples. A parte importante foi usar apenas um comando RUN para reduzir o número de camadas e passar os parâmetros do cbc-pillowfight como parâmetros do Docker, para torná-lo genérico. O Dockerfile pode ser compilado e enviado para um repositório com estes comandos:

Você pode encontrar a imagem compilada do Docker aqui. Agora, tudo o que eu precisava era criar um modelo do OpenShift, pegando todos os parâmetros anteriores na entrada.Adicionei um controlador de replicação para escalonar facilmente minha injeção e um sufixo foi anexado ao seu nome para que você possa implantar vários injetores com parâmetros diferentes. E estamos prontos! Muito simples, certo? Agora posso simular qualquer tipo de tráfego para meu cluster do Couchbase em execução no OpenShift e aumentar esse tráfego simplesmente adicionando réplicas ao meu controlador de replicação.
Aqui está um exemplo de como usá-lo:

Alcancei facilmente 46 mil operações por segundo em um ambiente minúsculo e, sinceramente, é muito conveniente de usar. Fiz o upload de um vídeo do youtube para mostrar concretamente como usá-lo. Aqui estão os detalhes do meu ambiente:
Hardware

VMs

Armazenamento

Distribuição de pods

Console do Couchbase


Podemos ver claramente que o gargalo do meu ambiente é a CPU. Eu poderia melhorar o desempenho adicionando mais vCPUs às minhas VMs, mas esse não é o objetivo desta postagem.
Acredito firmemente que a integração de datastores no OpenShift se tornará cada vez mais popular, pelo menos em ambientes locais, muito provavelmente também em ambientes de teste e talvez até mesmo em produção, uma vez que seja suportada pelos diferentes fornecedores. É uma ótima maneira de padronizar o gerenciamento do camada de dados. Este modelo OpenShift para cbc-pillowfight será a ferramenta perfeita para gerar uma carga de trabalho em seu amado Couchbase cluster!
-
Implantação do Couchbase em OpenShift ainda não é suportado