|
| 1 | +<div align="center"> |
| 2 | + <img width="500" src="../assets/dle.svg" border="0" /> |
| 3 | + <sub><br /><a href="./README.german.md">Deutsch</a> | <a href="./README.portuguese-br.md">Português (BR)</a> | <a href="./README.russian.md">Русский</a> | <a href="./README.spanish.md">Español</a> | <a href="./README.ukrainian.md">Українська</a></sub> |
| 4 | +</div> |
| 5 | + |
| 6 | +<br /> |
| 7 | + |
| 8 | +<div align="center"><h1 align="center">Database Lab Engine (DLE)</h1></div> |
| 9 | + |
| 10 | +<div align="center"> |
| 11 | + <a href="https://twitter.com/intent/tweet?via=Database_Lab&url=https://github.com/postgres-ai/database-lab-engine/&text=Thin%20@PostgreSQL%20clones%20–%20DLE%20provides%20blazing-fast%20database%20cloning%20to%20build%20powerful%20development,%20test,%20QA,%20staging%20environments."> |
| 12 | + <img src="https://img.shields.io/twitter/url/https/github.com/postgres-ai/database-lab-engine.svg?style=for-the-badge" alt="twitter"> |
| 13 | + </a> |
| 14 | +</div> |
| 15 | + |
| 16 | +<div align="center"> |
| 17 | + <strong>:zap: Clonagem ultrarrápida de bancos de dados PostgreSQL :elephant:</strong><br> |
| 18 | + Thin clones de bancos de dados PostgreSQL para viabilizar desenvolvimento, testes, QA e ambientes de staging poderosos.<br> |
| 19 | + <sub>Disponível para qualquer PostgreSQL, incluindo AWS RDS, GCP CloudSQL, Heroku, Digital Ocean e instâncias autoadministradas.</sub> |
| 20 | +</div> |
| 21 | + |
| 22 | +<br /> |
| 23 | + |
| 24 | +<div align="center"> |
| 25 | + <a href="https://postgres.ai" target="blank"><img src="https://img.shields.io/badge/Postgres-AI-orange.svg?style=flat" /></a> <a href="https://github.com/postgres-ai/database-lab-engine/releases/latest"><img src="https://img.shields.io/github/v/release/postgres-ai/database-lab-engine?color=orange&label=Database+Lab&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAYCAYAAACWTY9zAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPYSURBVHgBrVc9SCNBFH7JpVCrjdpotVgFES9qp8LdgaXNFWLnJY2lsVC0zIGKQeEujRw2508lNndqISKaA38a/4Io/qBGQc2B6IKgImLufYPj7W42Jsb9YNidb2ffvHnzzZsZB1mgra3to9Pp9Docjvdc9XJR3G63qm9zdXUV44fGJZZIJKKPj4+R/v7+CNkEh3wJBoPKzc1NIC8vr7WoqEgpLS2l4uJiYodEscLd3R2dnZ2Jcnh4SNvb23ByiG2E2R6cpo6Oju/s9EZfX9+Q/C8F95O5P5ITjnV2dqq5ubnz1dXVam1tLeXk5FA24CjS6uoqLS4uxtjpT729vbGLi4ujubk5lflf3IcfDuu4CHOfJbe8vKwuLCwITno7f3p6mrALBwcHCdiEba4egYP97u7uYDru8vIy0dPT8835NFg1Pz+f7MLT1Kt6DrIoKyv7ko7Dvx6Pxycdo3A4LKbirYDWRkdHLb/t7u5mxO3t7SkuWWlubhYGoa+qqiriBSBGlAkwoK2tLYhf1Ovr62lwcNDwfXJykgoLCzPiELVnx1BpaWkRK2xtbU2IGA3Bw1kWpMGZ29tb0jRNPNGmpKSE6urqxFOPgYEBcrlcwtmVlZWMOF48/x2TQJT0kZIpwQzpbKpUIuHz+YjTh4FrbGykgoKCFzmX3gGrNAHOHIXXwOwUYHbKinsWP+YWzr0VsDE+Pp7EQxZmoafisIAMGoNgkfFl1n8NMN0QP7RZU1Nj+IaOZmdnDUJ/iTOIH8LFasTHqakp0ZHUG6bTrCUpfk6I4h+0w4ACgYBoDxsAbzFUUVFBTU1NNDMzkxGH2TOIH53DORQZBdm5Ocehc6SUyspKQnJOtY21t7dnxSWtSj3MK/StQJQz4aDTZ/Fjbu2ClS1EfGdnJ4k7OTlJ4jBTLj2B1YRpzDY9SPHqp5WPUrS0tCQ64z3QwKG9FL+eM4i/oaFBkHzsoJGREeFcOvGfn5+LJ/7DO9rI7M9HKdFubGyMysvLBT8xMWHgsA1acQiQQWMwKKOFzuQBEOI35zg4gcyvKArhDCcHYIbf78+KSyl+vZN24f7+XjNzVuJHOyn+GCJjF5721pieQ+Ll8lvPoc/19fUkbnNzc1hEjC8dfj7yzHPGViH+dBtzKmC6oVEcrWETHJ+tKBqNwqlwKBQKWnCtVtw7kGxM83q9w8fHx3/ZqIdHrFxfX9PDw4PQEY4jVsBKhuhxFpuenkbR9vf3Q9ze39XVFUcb3sTd8Xj8K3f2Q/6XCeew6pBX1Ee+seD69oGrChfV6vrGR3SN22zg+sbXvQ2+fETIJvwDtXvnpBGzG2wAAAAASUVORK5CYII=" alt="Latest release" /></a> |
| 26 | + |
| 27 | + <a href="https://gitlab.com/postgres-ai/database-lab/-/pipelines" target="blank"><img src="https://gitlab.com/postgres-ai/database-lab//badges/master/pipeline.svg" alt="CI pipeline status" /></a> <a href="https://goreportcard.com/report/gitlab.com/postgres-ai/database-lab" target="blank"><img src="https://goreportcard.com/badge/gitlab.com/postgres-ai/database-lab" alt="Go report" /></a> <a href="https://depshield.github.io" target="blank"><img src="https://depshield.sonatype.org/badges/postgres-ai/database-lab-engine/depshield.svg" alt="DepShield Badge" /></a> |
| 28 | + |
| 29 | + <a href="../CODE_OF_CONDUCT.md"><img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?logoColor=black&labelColor=white&color=blue" alt="Contributor Covenant" /></a> <a href="https://slack.postgres.ai" target="blank"><img src="https://img.shields.io/badge/Chat-Slack-blue.svg?logo=slack&style=flat&logoColor=black&labelColor=white&color=blue" alt="Community Slack" /></a> <a href="https://twitter.com/intent/follow?screen_name=Database_Lab" target="blank"><img src="https://img.shields.io/twitter/follow/Database_Lab.svg?style=social&maxAge=3600" alt="Twitter Follow" /></a> |
| 30 | +</div> |
| 31 | + |
| 32 | +<div align="center"> |
| 33 | + <h3> |
| 34 | + <a href="#features">Funcionalidades</a> |
| 35 | + <span> | </span> |
| 36 | + <a href="https://postgres.ai/docs">Documentação</a> |
| 37 | + <span> | </span> |
| 38 | + <a href="https://postgres.ai/blog/tags/database-lab-engine">Blog</a> |
| 39 | + <span> | </span> |
| 40 | + <a href="#community--support">Comunidade & Suporte</a> |
| 41 | + <span> | </span> |
| 42 | + <a href="../CONTRIBUTING.md">Contribuindo</a> |
| 43 | + </h3> |
| 44 | +</div> |
| 45 | + |
| 46 | +## Por que DLE? |
| 47 | +- Construa ambientes de dev/QA/staging baseados nos bancos de dados de produção completos. |
| 48 | +- Disponibilize clones temporários completos dos bancos de dados de produção para análises de queries e otimizações (veja também: [SQL optimization chatbot Joe](https://gitlab.com/postgres-ai/joe)). |
| 49 | +- Faça testes automatizados em pipelines de integração contínua para evitar incidentes em produção. |
| 50 | + |
| 51 | +Por examplo, clonar um banco de dados PostgreSQL de 1 TiB dura ~10 segundos. Dezenas de clones independentes são iniciados numa mesma máquina, suportando vários atividades de desenvolvimento e teste, sem aumento de custo de hardware. |
| 52 | + |
| 53 | +<p><img src="../assets/dle-demo-animated.gif" border="0" /></p> |
| 54 | + |
| 55 | +Teste agora mesmo: |
| 56 | +- entre no [Database Lab Platform](https://console.postgres.ai/), associe-se a uma organização "Demo", e teste clonar um banco de dados demo de ~1TiB, ou |
| 57 | +- faça o check out de um outro setup demo, DLE CE: https://nik-tf-test.aws.postgres.ai:446/instance, use o token `demo` para acessar (este setup tem certificados autoassinado, então ignore os alertas do navegador) |
| 58 | + |
| 59 | +## Como funciona |
| 60 | +Thin cloning é rápido pois utiliza [Copy-on-Write (CoW)](https://en.wikipedia.org/wiki/Copy-on-write#In_computer_storage). DLE suporta duas tecnologias para abilitar CoW e thin cloning: [ZFS](https://en.wikipedia.org/wiki/ZFS) (default) e [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)). |
| 61 | + |
| 62 | +Com ZFS, o Database Lab Engine periodicamente cria um novo snapshot do diretório de dados e mantém um conjunto de snapshots, limpando os antigos e não utilizados. Quando solicitam um novo clone, usuários podem escolher qual snapshot utilizar. |
| 63 | + |
| 64 | +Leia mais: |
| 65 | +- [Como funciona](https://postgres.ai/products/how-it-works) |
| 66 | +- [Testando Database Migrations](https://postgres.ai/products/database-migration-testing) |
| 67 | +- [Otimização SQL com Joe Bot](https://postgres.ai/products/joe) |
| 68 | +- [Perguntas e Respostas](https://postgres.ai/docs/questions-and-answers) |
| 69 | + |
| 70 | +## Onde começar |
| 71 | +- [Tutorial do Database Lab para qualquer banco de dados PostgreSQL](https://postgres.ai/docs/tutorials/database-lab-tutorial) |
| 72 | +- [Tutorial do Database Lab para Amazon RDS](https://postgres.ai/docs/tutorials/database-lab-tutorial-amazon-rds) |
| 73 | +- [Template com Terraform module (AWS)](https://postgres.ai/docs/how-to-guides/administration/install-database-lab-with-terraform) |
| 74 | + |
| 75 | +## Estudos de Caso |
| 76 | +- Qiwi: [Como o Qiwi controla os dados para acelerar o desenvolvimento](https://postgres.ai/resources/case-studies/qiwi) |
| 77 | +- GitLab: [Como o GitLab itera na otimização de performances SQL para reduzir os riscos de downtime](https://postgres.ai/resources/case-studies/gitlab) |
| 78 | + |
| 79 | +## Funcionalidades |
| 80 | +- Clonagem the bancos de dados Postgres ultrarrápidos - apenas alguns segundos para criar um novo clone pronto para aceitar conexões e queries, independentemente do tamanho do banco de dados. |
| 81 | +- O número máximo teórico de snapshots e clones é 2<sup>64</sup> ([ZFS](https://en.wikipedia.org/wiki/ZFS), default). |
| 82 | +- O número máximo teórico de do diretório de dados do PostgreSQL: 256 quatrilhões zebibytes, ou 2<sup>128</sup> bytes ([ZFS](https://en.wikipedia.org/wiki/ZFS), default). |
| 83 | +- Versões _major_ do PostgreSQL suportadas: 9.6–14. |
| 84 | +- Duas tecnologias são suportadas para viabilizar o thin cloning ([CoW](https://en.wikipedia.org/wiki/Copy-on-write)): [ZFS](https://en.wikipedia.org/wiki/ZFS) e [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)). |
| 85 | +- Todos os componentes estão empacotados em docker containers. |
| 86 | +- UI para tornar o trabalho manual mais conveniente. |
| 87 | +- API e CLI para automatizar o trabalho com DLE snapshots e clones. |
| 88 | +- Por default, os PostgreSQL containers incluem várias extensões populares ([docs](https://postgres.ai/docs/database-lab/supported-databases#extensions-included-by-default)). |
| 89 | +- PostgreSQL containers podem ser customizados ([docs](https://postgres.ai/docs/database-lab/supported-databases#how-to-add-more-extensions)). |
| 90 | +- O banco de dados original pode estar localizado em qualquer lugar (Postgres autoadministrado, AWS RDS, GCP CloudSQL, Azure, Timescale Cloud, etc) e NÃO requer nenhum ajuste. Não há NENHUM requerimento para instalar o ZFS ou Docker nos bancos de dados originais (production). |
| 91 | +- Um provisionamento de dados inicial pode ser feito tanto no nível físico (pg_basebackup, backup / ferramentes de arquivamento como WAL-G ou pgBackRest) ou lógico (dump/restore direto da origem ou de arquivos armazenados na AWS S3). |
| 92 | +- Para o modo lógico, suporta a retenção parcial de dados (bancos específicos, tabelas específicas). |
| 93 | +- Para o modo físico, um estado de atualização contínua é suportado ("sync container"), tornando o DLE uma versão especializada de um standby Postgres. |
| 94 | +- Para o modo lógico, suporta atualização completa periódica, automatizada, e controlada pelo DLE. É possível utilizar multiplos discos contendo diferentes versões do banco de dados, para que a atualização completa não precise de _downtime_. |
| 95 | +- Fast Point in Time Recovery (PITR) para os pontos disponíveis em DLE _snapshots_. |
| 96 | +- Clones não utilizados são automaticamente removidos. |
| 97 | +- "Deletion protection" _flag_ pode ser utilizada para bloquear remoções automáticas ou manuais dos clones. |
| 98 | +- _Snapshot retention policies_ são suportadas na configuração do DLE. |
| 99 | +- Clones Persistentes: clones sobrevivem a DLE _restarts_ (incluindo _reboot_ total da VM). |
| 100 | +- O comand "reset" pode ser utilizado para trocar para uma versão diferente dos dados. |
| 101 | +- O componente DB Migration Checker coleta vários artefatos úteis para testar o banco de dados em CI ([docs](https://postgres.ai/docs/db-migration-checker)). |
| 102 | +- SSH port forwarding para conexões com a API e o Postgres. |
| 103 | +- É possível especificar parâmetros para configurar Docker _containers_ na configuração do DLE. |
| 104 | +- Cotas de utilização de recursos para clones: CPU, RAM (cotas de container, suportadas pelo Docker) |
| 105 | +- Parâmetros de configuração do Postgres podem ser especificados na configuração do DLE (separadamente para clones, o "sync" _container_, e o "promote" _container_). |
| 106 | +- Monitoramento: `/healthz` API _endpoint_ livre de autenticação, `/status` extendido (requer autenticação), [Netdata module](https://gitlab.com/postgres-ai/netdata_for_dle). |
| 107 | + |
| 108 | +## Contribuindo |
| 109 | +### Adicione um estrela ao projeto |
| 110 | +A forma mais simples the contribuir é adicionar uma estrela ao projeto no GitHub/GitLab: |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | +### Compartilhe o projeto |
| 115 | +Poste um tweet mencionando [@Database_Lab](https://twitter.com/Database_Lab) ou compartilhe o linke para este repositório na sua rede social favorita. |
| 116 | + |
| 117 | +Se você usa o DLE ativamente, conte aos outros sobre a sua experiência. Você pode usar o logo que está referenciado abaixo salvo na pasta `./assets`. Fique à vontade para por nos seus documentos, apresentações, aplicações, e interfaces web para mostrar que você utiliza o DLE. |
| 118 | + |
| 119 | +_Snippet_ HTML para _backgrounds_ mais claros: |
| 120 | +<p> |
| 121 | + <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-light-background.svg" /> |
| 122 | +</p> |
| 123 | + |
| 124 | +```html |
| 125 | +<a href="http://databaselab.io"> |
| 126 | + <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-light-background.svg" /> |
| 127 | +</a> |
| 128 | +``` |
| 129 | + |
| 130 | +Para _backgrounds_ mais escuros: |
| 131 | +<p style="background-color: #bbb"> |
| 132 | + <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-dark-background.svg" /> |
| 133 | +</p> |
| 134 | + |
| 135 | +```html |
| 136 | +<a href="http://databaselab.io"> |
| 137 | + <img width="400" src="https://postgres.ai/assets/powered-by-dle-for-dark-background.svg" /> |
| 138 | +</a> |
| 139 | +``` |
| 140 | + |
| 141 | +### Proponha uma idéia ou reporte um _bug_ |
| 142 | +Veja o nosso [guia de contribuição](../CONTRIBUTING.md) para mais detalhes. |
| 143 | + |
| 144 | +### Participate in development |
| 145 | +Veja o nosso [guia de contribuição](../CONTRIBUTING.md) para mais detalhes. |
| 146 | + |
| 147 | +### Traduza o README |
| 148 | +Tornar o Database Lab Engine mais acessível aos engenheiros no mundo todo é uma ótima ajuda para o projeto. Veja detalhes na [seção de tradução do guia de contribuição](../CONTRIBUTING.md#Translation). |
| 149 | + |
| 150 | +### Referências |
| 151 | +- [Componentes DLE](https://postgres.ai/docs/reference-guides/database-lab-engine-components) |
| 152 | +- [Configuração do DLE](https://postgres.ai/docs/database-lab/config-reference) |
| 153 | +- [Documentação da API](https://postgres.ai/swagger-ui/dblab/) |
| 154 | +- [Documentação do Client CLI](https://postgres.ai/docs/database-lab/cli-reference) |
| 155 | + |
| 156 | +### How-to guides |
| 157 | +- [Como instalar o Database Lab com Terraform na AWS](https://postgres.ai/docs/how-to-guides/administration/install-database-lab-with-terraform) |
| 158 | +- [Como instalar e inicializar o Database Lab CLI](https://postgres.ai/docs/guides/cli/cli-install-init) |
| 159 | +- [Como administrar o DLE](https://postgres.ai/docs/how-to-guides/administration) |
| 160 | +- [Como trabalhar com clones](https://postgres.ai/docs/how-to-guides/cloning) |
| 161 | + |
| 162 | +Você pode encontrar mais [no seção "How-to guides"](https://postgres.ai/docs/how-to-guides) dos documentos. |
| 163 | + |
| 164 | +### Diversos |
| 165 | +- [Imagens Docker do DLE](https://hub.docker.com/r/postgresai/dblab-server) |
| 166 | +- [Imagens Docker extendidas para PostgreSQL (com uma penca de extensões)](https://hub.docker.com/r/postgresai/extended-postgres) |
| 167 | +- [SQL Optimization chatbot (Joe Bot)](https://postgres.ai/docs/joe-bot) |
| 168 | +- [DB Migration Checker](https://postgres.ai/docs/db-migration-checker) |
| 169 | + |
| 170 | +## Licença |
| 171 | +O código fonte do DLE está licensiado pela licença de código aberto GNU Affero General Public License version 3 (AGPLv3), aprovada pela OSI. |
| 172 | + |
| 173 | +Contacte o time do Postgres.ai se você desejar uma licença _trial_ ou comercial que não contenha as cláusulas da GPL:[Página de contato](https://postgres.ai/contact). |
| 174 | + |
| 175 | +[](https://app.fossa.io/projects/git%2Bgithub.com%2Fpostgres-ai%2Fdatabase-lab-engine?ref=badge_large) |
| 176 | + |
| 177 | +## Comunidade e Suporte |
| 178 | +- ["Acordo da Comunidade do Database Lab Engine de Código de Conduta"](../CODE_OF_CONDUCT.md) |
| 179 | +- Onde conseguir ajuda: [Página de contato](https://postgres.ai/contact) |
| 180 | +- [Comunidade no Slack](https://slack.postgres.ai) |
| 181 | +- Se você precisa reportar um problema de segurança, siga as instruções em ["Database Lab Engine guia de segurança"](../SECURITY.md). |
| 182 | + |
| 183 | +[](../CODE_OF_CONDUCT.md) |
0 commit comments