Este artigo foi traduzido por máquina.

Windows Azure Insider

Migrando cargas de trabalho de banco de dados para a nuvem

Bruno Terkaly
Ricardo Villalobos

Bruno Terkaly and Ricardo VillalobosUma das maiores tendências no hoje é mover cargas de trabalho de banco de dados para a nuvem.Freqüentemente temos dúvidas sobre as questões envolvidos quando migrando as cargas de trabalho de banco de dados relacional em Windows Azure, então decidimos falar com várias equipes de produto e profissionais no campo para obter algumas respostas concretas a esses desafios.Há um espectro de ofertas disponíveis que devem ser cuidadosamente considerados antes da migração e uma série de questões, incluindo o custo, compatibilidade, flexibilidade, manutenção, conformidade e escala, para citar alguns.

Na coluna deste mês é sobre a mudança de seu banco de dados do SQL Server para a nuvem pública.Isto significa que não vamos discutir a nuvem privada ou outro local opções.Naturalmente, para além de apenas os dados, há uma série de questões a considerar quando se deslocam de um aplicativo inteiro para a nuvem, tais como cache, identidade e legado do código.

Muitos clientes estão confusos sobre todas as opções na nuvem, especialmente quando se trata de Hospedagem de dados relacionais.Afinal, a história do banco de dados relacional Microsoft é grande e abrangente.Na coluna deste mês, queremos desmistificar as suas opções quando se trata de SQL Server e armazenamento de dados com a plataforma Windows Azure.

A maioria das decisões são baseadas em custo e valor.Uma boa regra para se lembrar é que você aumenta a abstração do hardware e começa a virtualização de suas tecnologias, as eficiências são ganhadas, resultando em menor provisionamento e custos de manutenção.No entanto, há um trade-off quando você virtualizar hardware — você pode reduzir os custos, mas ao mesmo tempo diminuir o nível de compatibilidade com bancos de dados locais existentes, porque você tem menos controle sobre a configuração do banco de dados em relação ao seu hardware subjacente.Um dos nossos objetivos aqui é descrever os trade-offs básicos para que você possa tomar melhores decisões.

Figura 1 destaca algumas das opções.Existem pelo menos quatro maneiras que você pode aproveitar o SQL Server, como os círculos numerados indicam.Observe que ambos baseados em nuvem e soluções são descritas no local.A metade superior da Figura 1 descreve a nuvem pública.Se você furar mais em nuvem pública, você verá que consiste em dois pilares principais: Infraestrutura como serviço (IaaS) e plataforma como serviço (PaaS).Parte inferior metade da figura ilustra as opções no que respeita ao SQL Serverno local.Você pode hospedar sua própria nuvem privada ou seguir o método tradicional e executar SQL Server em hardware bruto, físico, livre de qualquer tecnologia de virtualização.

SQL Server Hosting Options
Figura 1 SQL Server opções de hospedagem

O Windows Azure Portal

Nós vai aproveitar três componentes do Windows Azure para implantar o nosso banco de dados no local para a nuvem, ilustrando o IaaS e PaaS modelos: Máquinas virtuais, ou VMs (IaaS); Windows Azure SQL banco de dados (PaaS); e armazenamento.Eles podem ser acessados através do portal de gestão, como mostrado em Figura 2.Os dois primeiros são bastante óbvios, mas a seção de armazenamento pode ser uma surpresa.Windows Azure Storage é necessária para manter o arquivo BACPAC, que contém o esquema de banco de dados e os dados armazenados no banco de dados.Você pode criar este arquivo com o SQL Server Management Studio (SSMS); é o equivalente lógico de um backup de banco de dados.SSMS convenientemente colocará este arquivo BACPAC no Windows Azure Storage, que é um local ideal, porque ele pode ser importado diretamente das versões nuvem de SQL Server, como visto nas opções 3 e 4 em Figura 1.

The Windows Azure Management Portal
Figura 2 o Windows Azure Management Portal

Quatro cenários

Referindo-se a Figura 1, vê-se que SQL Server de mapas para quatro principais casos de uso.Como você se move através de quatro cenários em ordem, as eficiências são ganhadas, resultando em custos mais baixos.No entanto, as opções correspondentemente impactar seu controle sobre o hardware e configuração, afetando o nível de compatibilidade como você implantar bancos de dados no local para a nuvem.

Velha escola, ferro bruto cenário n. º1 é sobre a execução de SQL Server usando as abordagens tradicionais, que significa que não é virtualizado e pode ser altamente personalizado pelo pessoal de ti e DBAs.Naturalmente, porque isto coloca pessoal no controle total de exatamente como tudo está configurado e como ela funciona, é significativamente mais trabalho na configuração, manutenção e dimensionamento dos bancos de dados.Preparar o cluster de alta disponibilidade (HA) e executar o backup e a restauração são apenas duas das muitas responsabilidades uso intensivo de recursos que devem ser gerenciadas por um DBA.

No local, a nuvem privada cenário n. º2 retrata SQL Server implantado em uma nuvem privada, que aproveita a virtualização para otimizar o uso dos recursos de hardware.Esta tecnologia permite aos bancos de dados do SQL Server piscina usando Windows Server 2012 Hyper-V para uso eficiente de computação, rede e armazenamento.Permite-lhe suportar uma infra-estrutura elástica para seus bancos de dados, então você pode escalar para cima e para baixo mais eficazmente.Numa perspectiva de gestão, esta opção fornece recursos internos de self-service, assim você pode provisionar bancos de dados usando o Microsoft System Center 2012.No entanto, você é ainda responsável pela aquisição de hardware e de mantê-lo atualizado com os patches de software.

Windows Azure SQL Server de banco de dados VM no SQL Server Windows Azure para VMs (IaaS) torna possível para você hospedar seu cluster em um datacenter da Microsoft.A principal vantagem que desta opção hospedados em nuvem pública oferece é um alto nível de compatibilidade com as instalações existentes no local SQL Server .Porque essa opção oferece suporte a uma versão completo do SQL Server, você é capaz de alavancar HA, criptografia de dados transparente, auditoria, inteligência empresarial (BI) como o analysis services e o reporting services, transações distribuídas, suporte para active directory (serviços de Federação do Active Directory ou AD FS 2.0) e mais.Além disso, você pode construir sua própria VM ou alavancar um modelo a partir da Galeria de imagens do Windows Azure (descrito mais adiante).Finalmente, esta oferta permite que você construa suas própria redes virtuais privadas (VPNs) facilmente, bridging seus recursos da nuvem à sua rede local e proporcionando uma experiência integrada que borra os limites entre os maciços datacenters da Microsoft e os servidores internos.

SQL Server para VMs também suporta a nova sempre-na característica, que permite que você tenha até cinco cópias completas de um banco de dados mantido por cada uma das instâncias participantes.Cada SQL Server pode hospedar o banco de dados em seu armazenamento local, ou em algum outro local.Isto fornece uma alternativa hospedados em nuvem, de nível corporativo para espelhamento de banco de dados.

Outra vantagem do Windows Azure VMs é que eles permitem que você aproveite os recursos do Windows Azure Storage, que significa que o sistema operacional e unidades de disco são automaticamente persistidas no Windows Azure por padrão, proporcionando três cópias automáticas de seus dados dentro do datacenter e permitindo o uso opcional de geo-replicação.Em suma, aproveitando o Windows Azure SQL Server para VMs torna possível migrar seus aplicativos de banco de dados no local para o Windows Azure e minimizar, se não eliminar, a necessidade de modificar o aplicativo e o banco de dados.

Windows Azure SQL banco de dados para esclarecer qualquer confusão sobre terminologia, estar ciente de que o Windows Azure SQL banco de dados usado para ser chamado SQL Azure.Windows Azure SQL Database é um subconjunto e um superconjunto do tradicional SQL Servere está hospedado na nuvem como um serviço.

Porque Windows Azure SQL Database é um banco de dados como um serviço, existem algumas vantagens reais.Primeiro, pode ser fantasticamente econômico — algumas empresas reduziram seus custos de banco de dados por mais de 90 por cento, usando o Windows Azure SQL banco de dados.Em segundo lugar, fornece capacidades de autogerenciamento, permitindo que as organizações de prestação de serviços de dados para aplicações em toda a empresa sem adicionar o encargo de suporte do central-departamento.Em terceiro lugar, o serviço Replica três cópias de seus dados, e no caso de uma falha de hardware, ele fornece failover automático.

Mas existem limitações.O tamanho máximo do banco de dados é 150GB, que pode ser aumentada através de sharding (o particionamento horizontal de dados).Essa abordagem também é sujeito a mais problemas de latência, devido ao fato de que ele é executado em uma infra-estrutura compartilhada no datacenter da Microsoft.Outra desvantagem é que você deve esperar falhas transientes e programar seu código em conformidade.Finalmente, o Windows Azure SQL banco de dados representa um subconjunto de SQL Server, que significa que algumas características, tais como XML, procedimentos armazenados do sistema, transações distribuídas, sinônimos, procedimentos CLR, pesquisa de texto completo e a capacidade de ter servidores vinculados não são suportados.Devido a essas limitações, migrando para o Windows Azure SQL banco de dados pode não funcionar para alguns cenários.Como você pode ver, esta opção não é tão compatível com instâncias de SQL Server no local como a opção anterior, Windows Azure SQL Server de banco de dados VM.

Considerações

Ao migrar seu banco de dados de uma solução local para uma nuvem pública, há vários aspectos a considerar.Um fator importante é o desempenho, que leva em conta a utilização da CPU, disco i/o, restrições de memória e throughput da rede e latência.Você também precisa pensar sobre o disco quanto espaço é necessário, bem como o número de VMs.Topologia de rede é uma preocupação se dados­base aplicações exigem conectividade aos recursos locais, potencialmente, exigindo-lhe estabelecer uma VPN, que é outra oferta da plataforma Windows Azure.Conformidade e segurança também são extremamente importantes, especialmente quando se trata de dados do cliente — especificamente o local, transferência e manipulação de dados.Existem passivos significativos no que diz respeito a história clínica, resultados de teste e de laboratório e informações de seguros, para citar apenas alguns.

Migrar um banco de dados do SQL Server para um Windows Azure VM

Embora a Microsoft lançou uma versão de preview (CTP) de tecnologia de comunidade de um assistente de implantação, faremos uma abordagem mais manual que dá uma melhor idéia do que acontece durante o processo de implantação.Nós essencialmente criar um arquivo BACPAC de nosso banco de dados no local e em seguida, importá-lo para nosso Windows Azure SQL Server VM.

Antes de criar um arquivo BACPAC, recomendamos duas etapas preliminares.Primeiro, desconecte todos os usuários do banco de dados e executar um backup tradicional.Isso preserva a integridade do log de transações e garante que o banco de dados é implantado corretamente e na sua totalidade.Nós absolutamente desencorajar a criação de um arquivo BACPAC de um banco de dados de produção ao vivo.Arquivos BACPAC devem ser criados a partir de uma imagem de backup.Em seguida, crie um Windows Azure SQL Server VM.Você pode criar sua própria VM e enviá-lo, se quiser, mas um caminho mais fácil é utilizar a Galeria de imagens do Windows Azure que existe no Portal de gerenciamento do Windows Azure.Ele permite que você simplesmente escolher de uma lista de imagens disponíveis do VM.

Para começar, acesse o Portal de gerenciamento do Windows Azure.Na barra de comando, clique em novo | Máquina virtual | Da galeria.Figura 3lista os vários sabores de SQL Server e Windows Server que você pode escolher.

The Image Gallery for Windows Azure Virtual Machines
Figura 3 a Galeria de imagens para Windows Azure máquinas virtuais

Depois que você selecionar uma imagem da galeria, você pode escolher de uma lista de opções de hardware.Figura 4 mostra que a alta de termina você pode escolher 8 núcleos e 56GB de RAM.

Available Virtual Machine Configurations
Figura 4 configurações de máquina Virtual disponível

Exportar um BACPAC da sua Database no local em primeiro lugar, tenha em mente que este processo é específico para SQL Server 2012.

  1. Para criar um arquivo BACPAC, inicie o SQL Server Management Studio e se conectar à instância local.
  2. Em seguida, no Object Explorer, expanda o nó para a instância do qual você deseja exportar o banco de dados e criar o BACPAC resultante.
  3. Botão direito do mouse o nome do banco de dados, clique em tarefas e, em seguida, selecione aplicativo de camada de dados de exportação.Um assistente irá aparecer e você será solicitado para o destino de armazenamento do arquivo BACPAC.

A vantagem aqui é que o assistente permitirá que você armazene o arquivo BACPAC no Windows Azure Storage em um datacenter da Microsoft, que drasticamente pode simplificar o processo de importação do Windows Azure SQL Server VM.Se você não tiver uma conta de armazenamento, você precisará de ir para o Portal de gerenciamento do Windows Azure e criar uma primeiro.Certifique-se de registrar a conta nome e gerenciamento de chave de armazenamento associada a ele, como lhes são exigido pelo assistente.Supondo que você encontrar sem erros, está agora terminado de criar o arquivo BACPAC.Note que este processo pode demorar de vários minutos a várias horas, dependendo do tamanho do seu banco de dados.Além disso, como mencionado anteriormente, você precisa estar ciente de que ela vai interromper o serviço para os usuários que estão conectados, então você deve primeiro fazer um backup tradicional antes de criar um arquivo BACPAC.

O arquivo BACPAC é uma bolha no Windows Azure Storage.Uma vez que é criada com êxito, você pode iniciar o Visual Studio e exibir o arquivo usando o Gerenciador de servidores (ou similar de ferramentas que permite que você navegue Windows Azure Storage).A URL para o arquivo BACPAC será parecido com isto: https://[Your-Storage-­-nome da conta]. blob.core.windows.NET / [seu -­recipiente-nome] / [seu-banco de dados-nome] .bacpac.

Arquitetura de comunicação remota para sua VM de banco de dados de SQL Server você agora precisa para remoto em VM SQL Server de banco de dados criado anteriormente.Observe que as credenciais de logon não serão suas credenciais de assinatura do Windows Azure, mas prefiro as credenciais que você especificou quando você criou o VM.No nosso caso, o nome de logon foi "msdn-vm\the-admin" e mais a senha que nós entramos.

Importar o arquivo BACPAC do Windows Azure Storage uma vez que você está conectado a VM, você pode importar o arquivo BACPAC para o VM hospedados em nuvem.

  1. Inicie o SQL Server Management Studio e, em seguida, conectar à instância local do SQL Server.
  2. No Object Explorer, botão direito do mouse em bancos de dados e selecione o item de menu do aplicativo de camada de dados de importação para iniciar o assistente.O assistente é semelhante àquela usada para criar o BACPAC para o banco de dados no local.Mais uma vez, digite os detalhes da conta de armazenamento, tais como o nome da conta de armazenamento e a chave de gestão.O assistente irá exibir o contêiner e o nome do arquivo BACPAC.
  3. Clique ao lado completa o processo de importação de banco de dados.Figura 5 ilustra uma importação bem sucedida do banco de dados em nuvem-hospedado em um datacenter da Microsoft VM.

Successful Import of MarketIndexData
Figura 5 importação bem-sucedida de MarketIndexData

Migrar um banco de dados do SQL Server para um banco de dados do SQL Azure Windows

Como observado anteriormente, a Microsoft tem uma oferta de banco de dados de PaaS conhecida como Windows Azure SQL banco de dados.Para importar o arquivo BACPAC (o database embalados no local que você acabou de criar), acesse o Portal de gerenciamento do Windows Azure.Selecione os bancos de dados SQL e, em seguida, importar na janela de comando.Você será solicitado a digitar a URL para o arquivo BACPAC que reside no armazenamento do Windows Azure como um arquivo blob, como pode ser visto em Figura 6.Este é o mesmo URL usado anteriormente para o arquivo BACPAC.Esta é uma das grandes vantagens dos arquivos BACPAC: Eles podem ser usados para importar tanto Windows Azure SQL banco de dados e Windows Azure SQL Server de banco de dados VMs.

Importing the BACPAC File
Figura 6-importando o arquivo BACPAC

Quando a importação estiver concluída, você será capaz de abrir o banco de dados no SQL Server Management Studio, assim como fizemos com o Windows Azure SQL Server de banco de dados VMs.Na verdade, o SSMS funciona com todas as quatro opções apresentadas anteriormente.Você apenas precisará obter o nome do servidor do Portal de gerenciamento do Windows Azure para o banco de dados, e você precisará habilitar endereços IP de cliente específico no portal.Você encontrará mais informações no ferramentas e utilitários de suporte (Windows Azure SQL banco de dados) de cada bit.ly/Vh8jGg.

Encerramento

O Windows Azure platform tem evoluído rapidamente, especialmente na área de VMs e SQL Server de banco de tecnologia.Clientes são agressivamente migrar seus bancos de dados para a nuvem em um esforço para reduzir custos, bem como para mobilizar outros recursos, tais como armazenamento, armazenamento em cache, identidade, VPNs, mensagens e muito mais.Enquanto o Windows Azure SQL banco de dados pode oferecer vantagens de custo enorme, ele não fornece o nível de compatibilidade exigida por muitos clientes corporativos.Em versões futuras do SQL Server Management Studio (2014), assistentes de implantação são esperados para automatizar o processo manual ilustrado na coluna deste mês.Quando esses assistentes chegam, as lições aprendidas aqui irão garantir que você sabe como eles funcionam e o que eles fazem.

Bruno Terkaly é um divulgador de desenvolvedor da Microsoft. A profundidade do conhecimento vem de anos de experiência no campo, escrever código usando uma infinidade de plataformas, linguagens, frameworks, SDKs, bibliotecas e APIs. Ele passa o tempo escrevendo código, blogar e fazer apresentações ao vivo na construção de aplicativos baseados em nuvem, especificamente usando a plataforma Windows Azure. Você pode ler seu blog em blogs.msdn.com/b/brunoterkaly.

Ricardo Villalobos é arquiteto de software experiente com mais de 15 anos de experiência projetando e criando aplicativos para empresas do setor de gestão cadeia de abastecimento. Segurando diferentes certificações técnicas, bem como um mestrado em Administração pela Universidade de Dallas, ele trabalha como um evangelista de plataforma no grupo globalmente DPE de parceiros engajados para a Microsoft. Você pode ler seu blog em blog.ricardovillalobos.com.

Terkaly e Villalobos conjuntamente apresentar conferências da indústria em geral.Eles encorajam os leitores do Windows Azure Insider contatá-los para disponibilidade.Alcançá-los em bterkaly@microsoft.com ou Ricardo.Villalobos@microsoft.com.

Agradecemos ao seguinte especialista técnico pela revisão deste artigo: Robin Shahan
Robin Shahan é MVP da Microsoft Windows Azure com mais de 25 anos de experiência no desenvolvimento de aplicações complexas, críticos para os negócios.Como o VP de tecnologia, para GoldMail, ela migrou sua infra-estrutura inteira para Windows Azure em 2 meses, reduzindo seus custos de infra-estrutura em 90%.Ela agora é um consultor de Windows Azure.Você pode acompanhar os @RobinDotNet no twitter e leia seu blog em http://robindotnet.wordpress.com.