{"id":12610,"date":"2021-12-20T08:00:59","date_gmt":"2021-12-20T16:00:59","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=12610"},"modified":"2025-06-13T21:33:21","modified_gmt":"2025-06-14T04:33:21","slug":"testing-couchbase-applications-why-wait","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/testing-couchbase-applications-why-wait\/","title":{"rendered":"Testando aplicativos do Couchbase, por que esperar?"},"content":{"rendered":"<p>Em meu blog anterior, discutimos a configura\u00e7\u00e3o de um cluster do Couchbase localmente em seu pr\u00f3prio hardware. A vantagem disso \u00e9 que reduz significativamente o TCO da sua infraestrutura de teste e o tempo necess\u00e1rio para adquirir uma nova infraestrutura de teste, o que \u00e9 especialmente importante se voc\u00ea estiver apenas come\u00e7ando sua jornada no Couchbase.<\/p>\n<p>Para levar todos ao mesmo ponto de partida, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-autonomous-operator-proof-of-concept-guide\/\">Aqui est\u00e1 um link para meu blog anterior<\/a>onde explicamos como criar rapidamente um cluster de desenvolvimento localmente usando o Operador Aut\u00f4nomo do Couchbase para Kubernetes.<\/p>\n<p>Ent\u00e3o, para onde poder\u00edamos ir a partir daqui? Estabelecer um ambiente de f\u00e1cil implementa\u00e7\u00e3o que imite a implementa\u00e7\u00e3o de seu aplicativo \u00e9 o \u00fanico caminho natural. Esse ser\u00e1 outro passo importante na dire\u00e7\u00e3o certa para permitir que voc\u00ea desenvolva e teste suas implementa\u00e7\u00f5es localmente, com o m\u00ednimo de esfor\u00e7o.<\/p>\n<h4>Implementa\u00e7\u00e3o ainda mais simples<\/h4>\n<p>Simplificamos o m\u00e9todo de implanta\u00e7\u00e3o discutido em meu <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-autonomous-operator-proof-of-concept-guide\/\">blog anterior<\/a>\u00c9 claro que ainda \u00e9 importante entender os componentes do operador do Couchbase que implantaremos, portanto, se ainda n\u00e3o o fez, consulte meu blog anterior.<\/p>\n<p>O novo m\u00e9todo de implanta\u00e7\u00e3o est\u00e1 contido no <a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\">reposit\u00f3rio do operador-gitops<\/a> mantido pelo Couchbase (e, mais especificamente, pelo fant\u00e1stico Patrick Stephens). A \u00fanica coisa que voc\u00ea precisa fazer agora para ter um cluster do Couchbase implantado localmente \u00e9 executar o comando <a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\"><em>create-cluster.sh<\/em><\/a> script. Quando isso for conclu\u00eddo, voc\u00ea poder\u00e1 executar o script <a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/create-dev.sh\"><em>create-dev.sh<\/em><\/a> script. Dessa forma, voc\u00ea ter\u00e1 tudo o que precisa (em termos de infraestrutura) para testar os recursos do aplicativo Couchbase.<\/p>\n<h4>Detalhamento da implanta\u00e7\u00e3o do desenvolvimento<\/h4>\n<p>Para que este seja um guia t\u00e9cnico pr\u00e1tico para voc\u00ea, as se\u00e7\u00f5es a seguir abordam todos os detalhes do que estamos fazendo no <a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/create-dev.sh\">create-dev.sh<\/a> roteiro.<\/p>\n<p><strong>Dockerfile<\/strong><br \/>\nQuando eu era desenvolvedor, tinha que manter meus pr\u00f3prios ambientes de desenvolvimento e teste. A manuten\u00e7\u00e3o desses ambientes era um pesadelo, pois n\u00e3o havia muita automa\u00e7\u00e3o. As novas vers\u00f5es naturalmente introduziam mudan\u00e7as significativas no c\u00f3digo. Felizmente, tudo isso mudou e, neste artigo, mostramos um exemplo t\u00edpico de automa\u00e7\u00e3o do SDK do Node.js <a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/Dockerfile\">Dockerfile<\/a> do <em>reposit\u00f3rio do operador-gitops<\/em>. Esta postagem do blog apresenta isso para que voc\u00ea possa replicar um em seu ambiente.<\/p>\n<pre>DO NODO:16.9.1\r\n# Atualize a imagem para os pacotes mais recentes e obtenha algumas ferramentas de teste de rede\r\n# Instale o VIM - altere-o para um editor de sua escolha - desculpe, fui criado por selvagens\r\nExecute o apt-get update &amp;&amp; \\\r\napt-get -y install git iputils-ping iproute2 vim &amp;&amp; \\\r\nmkdir -p \/user\/app\r\n\r\n# \u00c9 necess\u00e1rio especificar um diret\u00f3rio existente para que todos os nossos outros comandos tenham um diret\u00f3rio de trabalho consistente para execu\u00e7\u00e3o\r\nWORKDIR \/usr\/app\r\n\r\n# Etapas retiradas do guia de instala\u00e7\u00e3o do SDK\r\n# Siga as etapas para come\u00e7ar a usar nosso SDK:\r\n# https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/hello-world\/start-using-sdk.html\r\nEXECUTAR npm init -y &amp;&amp; npm install couchbase --save\r\n\r\n# Fa\u00e7a o Hack to just sleep para podermos anexar\r\nCMD [\"sleep\", \"3600\"]<\/pre>\n<p>Vamos examinar isso linha por linha:<\/p>\n<ol>\n<li><strong>DO n\u00f3:16.9.1<\/strong> - essa \u00e9 a imagem base fornecida pelo Node.js para que n\u00e3o precisemos nos preocupar em instal\u00e1-la (entre outras coisas).<\/li>\n<li><strong>Execute o apt-get ...<\/strong> - esta \u00e9 uma s\u00e9rie de comandos para instalar ferramentas para testar a conectividade entre seu ambiente de desenvolvimento e as implanta\u00e7\u00f5es do Couchbase.<\/li>\n<li><strong>WORKDIR \/usr\/app<\/strong> - aqui, estamos definindo um diret\u00f3rio que sempre ser\u00e1 usado pelos comandos que seguem no dockerfile. Ele tamb\u00e9m define um caminho de entrada para que voc\u00ea chegue l\u00e1 quando entrar no cont\u00eainer.<\/li>\n<li><strong>EXECUTAR o npm init<\/strong> -y &amp;&amp; npm install couchbase -save - isso instalar\u00e1 o Couchbase SDK de acordo com as instru\u00e7\u00f5es em nossos documentos.<\/li>\n<li><strong>CMD [\"sleep\", \"3600\u2033]<\/strong> - \u00e9 um hack para manter o cont\u00eainer ativo para que possamos anex\u00e1-lo.<\/li>\n<\/ol>\n<p>Esses conceitos compartilhados tamb\u00e9m se aplicam a outros SDKs do Couchbase. Encontre uma imagem padr\u00e3o relevante, instale as ferramentas, defina um diret\u00f3rio de trabalho, instale o SDK do Couchbase, defina algo no lugar para que possamos anexar e testar o c\u00f3digo.<\/p>\n<pre>docker build -t \"${DEV_IMAGE}\" .\r\nkind load docker-image \"${DEV_IMAGE}\" --name=\"${CLUSTER_NAME}\"<\/pre>\n<p>A primeira coisa que acontecer\u00e1 em nossa implanta\u00e7\u00e3o autom\u00e1tica do ambiente de desenvolvimento ser\u00e1 criar a imagem do Docker especificada no dockerfile e pr\u00e9-carregar a imagem no KIND (Kubernetes no Docker).<\/p>\n<h4>Desenvolvimento Implanta\u00e7\u00e3o de Kubernetes<\/h4>\n<pre># Crie uma implanta\u00e7\u00e3o para nossa imagem de cont\u00eainer de desenvolvimento.\r\ncat &lt;&lt; EOF | kubectl apply -f -\r\napiVersion: apps\/v1\r\nkind: Deployment\r\nmetadados:\r\nnome: couchbase-sdk-dev\r\nespa\u00e7o de nome: $NAMESPACE\r\nespecifica\u00e7\u00f5es:\r\nselector:\r\nmatchLabels:\r\ncouchSdk: &quot;dev&quot;\r\ntemplate:\r\nmetadata:\r\nlabels:\r\ncouchSdk: &quot;dev&quot;\r\nambiente: &quot;dev&quot;\r\nespecifica\u00e7\u00f5es:\r\ncontainers:\r\n- name: dev-container\r\nimage: $DEV_IMAGE\r\nimagePullPolicy: Never\r\nenv:\r\n- name: CB_HOST\r\nvalor: $CB_SERVICE\r\n# https:\/\/kubernetes.io\/docs\/concepts\/configuration\/secret\/#environment-variables-are-not-updated-after-a-secret-update\r\n- name: CB_USER\r\nvalueFrom:\r\nsecretKeyRef:\r\nnome: $AUTHENTICATION_SECRET\r\nchave: nome de usu\u00e1rio\r\n- nome: CB_PSWD\r\nvalueFrom:\r\nsecretKeyRef:\r\nnome: $AUTHENTICATION_SECRET\r\nchave: senha\r\nEOF\r\n# Observe que, se voc\u00ea n\u00e3o alterar nada, ele permanecer\u00e1 implantado a partir de uma execu\u00e7\u00e3o anterior.<\/pre>\n<p>Nossa imagem de cont\u00eainer rec\u00e9m-criada agora pode ser utilizada em uma implanta\u00e7\u00e3o do Kubernetes em que o cont\u00eainer \u00e9 implantado e dimensionado pelo sistema. Se o pod implantado do nosso cont\u00eainer falhar, o controlador de implanta\u00e7\u00e3o do Kubernetes perceber\u00e1 isso e iniciar\u00e1 uma nova inst\u00e2ncia.<\/p>\n<p>Fornecemos uma defini\u00e7\u00e3o de implanta\u00e7\u00e3o simples e agrad\u00e1vel no script create-dev.sh que usar\u00e1 nossa imagem do Docker e anexar\u00e1 alguns r\u00f3tulos simples para gerenciar a implanta\u00e7\u00e3o com o kubectl.<\/p>\n<h4>Implanta\u00e7\u00e3o Rollout<\/h4>\n<pre>echo \"Waiting for Dev Deployment to start up...\" (Aguardando o in\u00edcio da implanta\u00e7\u00e3o de desenvolvimento)\r\nuntil kubectl rollout status deployment\/couchbase-sdk-dev; do\r\necho -n '.'\r\nsleep 2\r\ndone\r\necho \"Implanta\u00e7\u00e3o de desenvolvimento configurada e pronta para funcionar\"\r\n\r\n# Emita o nome do pod de desenvolvimento\r\nDEV_POD=$(kubectl get pods -l couchSdk=dev --output=jsonpath='{.items[*].metadata.name}')\r\necho \"Nome do pod de desenvolvimento: $DEV_POD\"<\/pre>\n<p>Sem a implementa\u00e7\u00e3o da defini\u00e7\u00e3o de implanta\u00e7\u00e3o, ela continuar\u00e1 sendo apenas uma defini\u00e7\u00e3o. A pr\u00f3xima etapa \u00e9 fazer uma implementa\u00e7\u00e3o e apresentar o nome do nosso pod para que possamos enviar nosso c\u00f3digo para ele.<\/p>\n<h4>Execu\u00e7\u00e3o de c\u00f3digo no cont\u00eainer<\/h4>\n<p>Nesta etapa, executamos com \u00eaxito o script create-dev.sh. Agora temos a tarefa de colocar nosso c\u00f3digo no cont\u00eainer para test\u00e1-lo. Alguns comandos aqui nos ajudar\u00e3o a colocar o c\u00f3digo no cont\u00eainer e, em seguida, abrir um shell.<\/p>\n<pre>kubectl cp \/Users\/samredman\/dev\/node-couchbaseproject $DEV_POD_NAME_OUTPUTTED:\/usr\/app<\/pre>\n<p>Este \u00e9 apenas um exemplo, mas os conceitos devem permanecer os mesmos. Aqui, pegamos nosso diret\u00f3rio de c\u00f3digo do SDK do Couchbase e o copiamos para o pod de desenvolvimento rec\u00e9m-criado (lembre-se de obter a sa\u00edda de eco de \"Dev Pod Name: X\").<\/p>\n<pre>kubectl exec --stdin --tty couchbase-sdk-dev-6bfbf76b7-zxln2 -- \/bin\/bash<\/pre>\n<p>Esse comando nos levar\u00e1 ao shell dentro do cont\u00eainer. Voc\u00ea dever\u00e1 ver a altera\u00e7\u00e3o do caminho no prompt. A partir daqui, voc\u00ea pode executar o c\u00f3digo que copiou no comando \"kubectl cp\".<\/p>\n<h4>C\u00f3digo de amostra saboroso<\/h4>\n<p>Fornecemos um pequeno script de amostra que segue os mesmos padr\u00f5es da nossa documenta\u00e7\u00e3o do SDK. Os documentos do SDK fazem um trabalho fant\u00e1stico ao explicar as caracter\u00edsticas do Couchbase dos blocos de constru\u00e7\u00e3o de um aplicativo Couchbase.<\/p>\n<p>Observe esta documenta\u00e7\u00e3o que ajuda a determinar o endpoint correto ao qual voc\u00ea deve se conectar. A chave aqui \u00e9 o nome do cluster definido na implanta\u00e7\u00e3o do cluster e anexado a -srv. Para citar a documenta\u00e7\u00e3o: \"O nome do servi\u00e7o est\u00e1 no formato -srv.\"<\/p>\n<p>As poucas configura\u00e7\u00f5es dispon\u00edveis na parte superior do script devem permanecer as mesmas para uma implementa\u00e7\u00e3o padr\u00e3o no Helm. Verifique se as credenciais de conex\u00e3o usadas no script correspondem \u00e0s da sa\u00edda do comando: helm get all couchbase<\/p>\n<p>De qualquer forma, voc\u00ea deve verificar se as op\u00e7\u00f5es de configura\u00e7\u00e3o atendem \u00e0s suas expectativas. Lembre-se de que o c\u00f3digo n\u00e3o mente - se ele n\u00e3o conseguir se conectar, provavelmente n\u00e3o foi informado sobre como se conectar corretamente. No entanto, se voc\u00ea fizer altera\u00e7\u00f5es que se desviem dos padr\u00f5es, lembre-se de alterar o nome do cluster, o bucket e as credenciais de autentica\u00e7\u00e3o.<\/p>\n<h4>Conclus\u00e3o<\/h4>\n<p>Voc\u00ea deve sair deste blog com um ambiente de desenvolvimento totalmente configurado, que lhe permitir\u00e1 testar o c\u00f3digo do Couchbase SDK em um cluster real do Couchbase, sem simula\u00e7\u00f5es! Espero que a automa\u00e7\u00e3o ajude voc\u00ea a ter mais tempo para escrever c\u00f3digo em vez de gerenciar ambientes de desenvolvimento, como eu tive que fazer durante meu tempo como desenvolvedor.<\/p>\n<p><span style=\"font-weight: 400;\">Aqui est\u00e3o os links diretos para os recursos usados nesta postagem:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Blog: <\/span><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/couchbase-autonomous-operator-proof-of-concept-guide\/\"><span style=\"font-weight: 400;\">Como criar uma prova de conceito de operador aut\u00f4nomo do Couchbase<\/span><\/a><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ferramentas: <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\"><span style=\"font-weight: 400;\">Implementa\u00e7\u00e3o do Couchbase Operator com Helm e KIND<\/span><\/a>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\"><span style=\"font-weight: 400;\">Reposit\u00f3rio do operador-gitops do Couchbase<\/span><\/a><span style=\"font-weight: 400;\">\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/create-cluster.sh\"><i><span style=\"font-weight: 400;\">create-cluster.sh<\/span><\/i><\/a><span style=\"font-weight: 400;\"> e <\/span><a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/create-dev.sh\"><i><span style=\"font-weight: 400;\">create-dev.sh<\/span><\/i><\/a><span style=\"font-weight: 400;\"> roteiros<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/Dockerfile\"><span style=\"font-weight: 400;\">Dockerfile<\/span><\/a><span style=\"font-weight: 400;\"> para o SDK do Couchbase Node.js<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><a href=\"https:\/\/github.com\/couchbaselabs\/operator-gitops\/blob\/main\/index.js\"><span style=\"font-weight: 400;\">Exemplo de script do SDK do Couchbase Node.js<\/span><\/a><span style=\"font-weight: 400;\">\u00a0<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Documentos: <\/span><a href=\"https:\/\/docs.couchbase.com\/nodejs-sdk\/current\/hello-world\/start-using-sdk.html\"><span style=\"font-weight: 400;\">Instalar o SDK do Couchbase<\/span><\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Documentos: <\/span><a href=\"https:\/\/docs.couchbase.com\/operator\/current\/howto-client-sdks.html#dns-based-addressing\"><span style=\"font-weight: 400;\">Localizando o ponto de extremidade do cluster para o DNS do Kubernetes<\/span><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Em meu blog anterior, discutimos a configura\u00e7\u00e3o de um cluster do Couchbase localmente em seu pr\u00f3prio hardware. A vantagem disso \u00e9 que reduz significativamente o TCO de sua infraestrutura de teste e o tempo necess\u00e1rio para adquirir novos testes [...]<\/p>","protected":false},"author":76077,"featured_media":12612,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9284,2322],"tags":[1519,1545],"ppma_author":[9168],"class_list":["post-12610","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-autonomous-operator","category-kubernetes","tag-docker","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Testing Couchbase Applications, Why Wait? - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Test your code against a containerized Couchbase database using Docker and Kubernetes - step by step instructions included.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/testing-couchbase-applications-why-wait\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing Couchbase Applications, Why Wait?\" \/>\n<meta property=\"og:description\" content=\"Test your code against a containerized Couchbase database using Docker and Kubernetes - step by step instructions included.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/testing-couchbase-applications-why-wait\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-12-20T16:00:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:33:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1700\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sam Redman, Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sam Redman, Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/\"},\"author\":{\"name\":\"Sam Redman\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408\"},\"headline\":\"Testing Couchbase Applications, Why Wait?\",\"datePublished\":\"2021-12-20T16:00:59+00:00\",\"dateModified\":\"2025-06-14T04:33:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/\"},\"wordCount\":1105,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg\",\"keywords\":[\"docker\",\"kubernetes\"],\"articleSection\":[\"Couchbase Autonomous Operator\",\"Kubernetes\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/\",\"name\":\"Testing Couchbase Applications, Why Wait? - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg\",\"datePublished\":\"2021-12-20T16:00:59+00:00\",\"dateModified\":\"2025-06-14T04:33:21+00:00\",\"description\":\"Test your code against a containerized Couchbase database using Docker and Kubernetes - step by step instructions included.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg\",\"width\":2560,\"height\":1700},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing Couchbase Applications, Why Wait?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408\",\"name\":\"Sam Redman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/69dc9b1e46ceb237d29e1e4b626c6bcc\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g\",\"caption\":\"Sam Redman\"},\"description\":\"Solutions Engineer at Couchbase. Sam has previously as a developer and an SRE before joining Couchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/sam-redman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Testando aplicativos Couchbase, por que esperar? - The Couchbase Blog","description":"Teste seu c\u00f3digo em um banco de dados Couchbase em cont\u00eainer usando o Docker e o Kubernetes - instru\u00e7\u00f5es passo a passo inclu\u00eddas.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/testing-couchbase-applications-why-wait\/","og_locale":"pt_BR","og_type":"article","og_title":"Testing Couchbase Applications, Why Wait?","og_description":"Test your code against a containerized Couchbase database using Docker and Kubernetes - step by step instructions included.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/testing-couchbase-applications-why-wait\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-12-20T16:00:59+00:00","article_modified_time":"2025-06-14T04:33:21+00:00","og_image":[{"width":2560,"height":1700,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Sam Redman, Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sam Redman, Solutions Engineer","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/"},"author":{"name":"Sam Redman","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408"},"headline":"Testing Couchbase Applications, Why Wait?","datePublished":"2021-12-20T16:00:59+00:00","dateModified":"2025-06-14T04:33:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/"},"wordCount":1105,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg","keywords":["docker","kubernetes"],"articleSection":["Couchbase Autonomous Operator","Kubernetes"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/","url":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/","name":"Testando aplicativos Couchbase, por que esperar? - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg","datePublished":"2021-12-20T16:00:59+00:00","dateModified":"2025-06-14T04:33:21+00:00","description":"Teste seu c\u00f3digo em um banco de dados Couchbase em cont\u00eainer usando o Docker e o Kubernetes - instru\u00e7\u00f5es passo a passo inclu\u00eddas.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/12\/jacky-chiu-lgWo0g8ItvE-unsplash-scaled.jpg","width":2560,"height":1700},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/testing-couchbase-applications-why-wait\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testing Couchbase Applications, Why Wait?"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408","name":"Sam Redman","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/69dc9b1e46ceb237d29e1e4b626c6bcc","url":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","caption":"Sam Redman"},"description":"Engenheiro de solu\u00e7\u00f5es da Couchbase. Sam j\u00e1 trabalhou como desenvolvedor e SRE antes de ingressar na Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/sam-redman\/"}]}},"authors":[{"term_id":9168,"user_id":76077,"is_guest":0,"slug":"sam-redman","display_name":"Sam Redman, Solutions Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","author_category":"","last_name":"Redman","first_name":"Sam","job_title":"","user_url":"","description":"Sam Redman \u00e9 engenheiro de solu\u00e7\u00f5es na Couchbase. Sam trabalhou anteriormente em ambientes de desenvolvimento e SRE antes de ingressar na Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/12610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/76077"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=12610"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/12610\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/12612"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=12610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=12610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=12610"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=12610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}