Clones SQL Server e containers para DevOps

Windocks é uma porta independente do Docker para Windows, e é única no suporte ao Windows 8 e Windows Server 2012 (além do Windows 10 e Server 2016). O Windocks também suporta todas as edições do SQL Server 2008, juntamente com o .NET e vários projetos de código aberto.

Faz um ano que o Windocks foi lançado, e os usuários têm pedido suporte simples e acessível para grandes ambientes SQL Server para desenvolvimento e testes. Agora esse momento chegou, com a primeira porta Docker com clonagem de banco de dados integrada, juntamente com uma interface de usuário web. Vamos examinar a combinação de containers do SQL Server com a clonagem de banco de dados, usando um download gratuito da edição da Community do Windocks.

Instalação Windocks e inicialização da interface web

O WinDocks inclui uma instalação automatizada que detecta qualquer edição do Windows 8 ou 10 e Windows Server 2012 ou Windows Server 2016. A instalação demora de 10 a 15 minutos e requer uma reinicialização do sistema para ser concluída. O Windocks também pode ser atualizado com uma parada momentânea e reinicialização com o daemon, sendo que os containers não são afetados durante uma atualização. A clonagem é baseada no servidor Hyper-V, por isso está limitada às edições Pro e Enterprise do Windows 8 e 10 e servidores Windows.

O daemon do Windocks é iniciado automaticamente e a interface web é acessada com um navegador usando o endereço “localhost”. A interface web é apontada ou para o localhost (127.0.0.1) ou outros endereços IP do host WinDocks. Os usuários acessam a interface simplesmente direcionando o navegador para o endereço IP apropriado.

A interface do usuário lista as imagens e os containers disponíveis. Os DBAs podem criar imagens e os desenvolvedores, instâncias de autoatendimento do SQL Server com os dados em segundos. As equipes trabalham com containers isolados em um servidor compartilhado e usam apenas um único servidor em vez de até 10 VMs individuais. O Windocks usa uma instalação padrão do SQL Server para oferecer suporte à criação de containers. Essa abordagem funciona bem na medida em que o suporte a container é adicionado aos sistemas existentes e o suporte à licença Microsoft existente para instâncias nomeadas do SQL Server.

Um único clique do botão Imagem cria um container. Imagens personalizadas também podem ser criadas facilmente através da ferramenta “escolher arquivos”. Um container é construído com um Dockerfile, bancos de dados e scripts SQL. Mais sobre isso abaixo.

windocks-2-web-ui-image-1

SQL Server Container = Instância nomeada do SQL Server com comandos Docker


Um container do Windocks SQL Server é simplesmente uma instância SQL Server nomeada que é provisionada e gerenciada com os comandos Docker. Os containers incluem o isolamento do usuário e do processo, mas são compatíveis com todas as ferramentas e aplicativos padrão do SQL Server. Há um debate em andamento no ecossistema Docker sobre o suporte a container de dados persistentes e aplicativos stateful, mas essas preocupações não se aplicam aqui, uma vez que os containers do Windocks SQL Server são instâncias padrão do SQL Server. Certamente, o SQL Server provou-se bom ao suporte a dados persistentes e aplicativos stateful nas últimas duas décadas.

Os dados podem ser copiados para o sistema de arquivos do container, ou montado a partir de um host ou de um local baseado em rede. Os bancos de dados copiados para o sistema de arquivos do container são uma boa solução para bancos de dados de até alguns GB de tamanho e suportam a criação de uma imagem personalizada. Isso é particularmente adequado para desenvolvimento e testes, uma vez que os bancos de dados são removidos quando os containers são excluídos (não há nenhuma preocupação com a persistência de dados). Onde a persistência de dados é necessária, os bancos de dados podem ser montados no container. Uma forma especial de montagem de banco de dados inclui o uso de clones de banco de dados, que é descrito mais adiante neste post.

Os DBAs do SQL Server criam imagens usando a CLI do cliente Docker padrão ou usam a interface do usuário web. A ferramenta “Choose Files” é usada para selecionar um Dockerfile e bancos de dados associados e scripts para criar um container ou imagem. Os Dockerfiles definem a configuração de um container, começando com a imagem e seguindo por arquivos que são copiados e executados no container. Um exemplo Dockerfile é mostrado aqui da pasta de amostras do Windocks que constrói um container do SQL Server 2012 com três bancos de dados copiados para o sistema de arquivos do container (por meio do comando ADDDB) e um script cleanseData também. O WinDocks inclui algumas amostras em funcionamento de cada instalação, no diretório \\windocks\samples.

dockerfile-1150-x-250Para criar o container, navegue até a pasta, selecione os arquivos, clique com o botão direito em “new container”. O exemplo abaixo refere-se a uma compilação de um aplicativo .NET, na pasta “testdotnet”:

windocks-2-web-ui-image-3
Dentro de alguns segundos, o container é construído e pode ser iniciado e associado para formar uma nova imagem.

SQL Server com clonagem de banco de dados


A nova interface de usuário da Web é popular como ferramenta de autoatendimento para desenvolvedores e testadores, mas o feedback sobre a clonagem de banco de dados integrada do Windocks 2.0 é ainda mais entusiasmado. A clonagem alavanca os discos virtuais do Hyper-V para permitir que um banco de dados de classe Terabyte seja “clonado” e entregue aos desenvolvedores em segundos, e requer apenas 40 MB de armazenamento para cada clone. Os clones começam criando uma imagem Docker pai com base em arquivos de banco de dados (mdf, ndf e ldf) ou restaurando um backup, no host do Windocks ou em um compartilhamento de arquivo de rede. Cada imagem pai é uma cópia de byte completa do banco de dados, e pode incorporar mascaramento de dados implementado com scripts SQL.

clone-image-15As imagens clonáveis são construídas com um único comando e um Dockerfile, como mostrado. A criação da imagem pai inicial levará um espaço substancial de tempo, uma vez que o snapshot ou o banco de dados sejam restaurados com uma cópia de byte completa. Uma vez criados, entretanto, os ambientes clonados duram apenas alguns segundos. Um único clique na imagem do clone fornece um container com os dados clonados. Cada ambiente clonado também pode ser gravado. Um backup completo pode ser atualizado com backups diferenciais para apoiar equipes dev e de testes por uma semana ou mais por vez.

Ambientes terabyte em menos de um minuto com SQL Server Containers e Clones


A clonagem do Windocks 2 é baseada em discos virtuais do Windows (Windows Virtual Disks)e pode ser usada on-premise, em máquinas virtuais ou ainda em nuvens públicas. O design é extensível e estamos colaborando com outros fornecedores para oferecer suporte a uma ampla gama de soluções de clonagem. Vários clientes da Windocks contam hoje com NetApp, EqualLogic, Red Gate e outras soluções.

Uma vantagem do suporte de clonagem integrado é que o Windocks gerencia a criação da imagem, bem como dos clones, pontos de montagem e também efetua a montagem em uma instância de container. Quando um container é removido, o Windocks cuida de remover o clone e o ponto de montagem associados. A manutenção é tão simples como limpar containers não utilizados e imagens associadas.

Os containers do SQL Server se alinham com a estratégia da Microsoft de usar ferramentas baseadas em Docker e devem colocar qualquer organização no caminho certo para migrar para futuras ferramentas relacionadas ao Microsoft SQL Server e estratégias de integração contínuas. Acreditamos que a combinação de containers do SQL Server com a criação de imagem e clone integradas é a solução mais fácil, mais eficiente e mais acessível do mercado na entrega de grandes ambientes de dados para desenvolvimento e testes.

Fonte: DZone.com

21