Overviewzão sobre Azure SQL

Anselmo Borges
Rescue Point
Published in
8 min readFeb 15, 2022

--

Olha eu falando de SQL Server, quem diria.

Algumas pessoas diriam que esse dia nunca iria chegar, mas chegou, olha eu falando de SQL Server! Mano a chance disso acontecer era nula, rs.

Mas como estou me especializando em todas as ferramentas de dados da Azure, eu não quero nem saber se o burro é manco, só quero é dar uma volta!

"Frases de efeito do meu pai seu Anselmão!"

Mas já adiantando é bom quebrar paradigmas, pois eu estudando sobre elas ví excelentes possibilidades e fica claro que o banco relacional não morreu e pode ser encaixado em qualquer cenário desse mundo moderno de dados em Cloud.

Nesse material vou dar um "Overviewzão" sobre os modelos, tipos, cobraças, tiers dos bancos de dados baseados em SQL Server que convenhamos é o carro chefe de bancos de dados da Microsoft (Quando era DBA sempre zuava que não tinha um cluster Ativo/Ativo mas hoje com cloud nem dá mais).

Vamos começar falando sobre os tipos de implementação desses bancos que são vários e vão desde o modelo mais conservador onde você tem o controle do S.O. até modelos mais modernos usando o conceito de serveless.

IaaS (Infra as a Service)

Nesse modelo que é o mais recomendado quando você leva seu SQL Server de um ambiente on-premisses para a cloud, consiste em criar uma maquina virtual na Azure customizada e otimizada para receber um banco de dados SQL, por exemplo, com discos premium, uma melhor opção de I/O e outras customizações. A Azure fica responsável pela infra que sustenta o VM como discos, rede, energia, internet. São serviços fornecidos pela Azure mas onde você não rela a mão, só configura mesmo, já as atualizações de sistema operacional, patchs, configuração do database é por sua conta (apesar de ter uma interface na Azure que monitora e gerencia isso pra você). Mas diferente do mundo on-premisses onde você teria que realizar toda a instalação a Azure te fornece imagens prontas customizadas e quase pronta para uso.

Vantagens do modelo IaaS: Vamos supor que você está trazendo seu ambiente do mundo On-premisses para o Cloud e tem várias amarrações no S.O., agendamentos, bibliotecas, customizações que você que é DBA SQL Server sabe que sempre tem, eu tinha em Oracle. Esse modelo pode ser uma alternativa de migração pra Cloud sem impacto e de forma rápida, após migrado você pode ir pensando em passar essas "amarrações" que você tinha no S.O para o Azure Automate, Functions e outras ferramentas do Stack Azure e se possível migrar novamente de IaaS para Paas, a qual falaremos a seguir.

PaaS (Databases)

Eu vou dividir os modelos PaaS em 2, a idéia é ficar mais fácil o entendimento dos modelos possíveis. Esses databases que vou falar são os que ficam em Database Servers, um pouco diferente do que você conhece como servidor on-premisses, trata-se de um servidor lógico onde você tem acesso a instancia sem necessáriamente ser uma VM, você já vai entender.

Single Databases

Esse database é uma opção de provisionamento que fica dentro de um database server, tem todas as funcionalidades de um database on premisses com acesso a instancia, é bem próximo ao modelo de VM e tem todos os recursos do server exclusivas para o funcionamento dela.

Elastic Pool

É um conjunto de vários Single databases que compartilham recursos entre eles, incluindo CPU, memória e etc. Esse modelo pode ser uma alternativa econômica pra quando por exemplo em um ambiente on-premisses você tem vários databases ou até vários servers e não consegue compartilhar os recursos quando você está precisando ou usando menos que o necessário. Esse tipo de database é gerenciado por um server database que falamos a pouco.

PaaS (Databases Gerenciados)

Esses não precisam de um server database, esse tipo de provisionamento abstrai essa parte e foca na entrega do banco de dados conforme a necessidade.

Single Instances

Usado para entrega de simples datasources com uma estrutura de schema e seus objetos, voltados para desenvolvimentos e deploys simples e pode ser uma opção bem bacana para uma base de dados em processo de criação, não tem acesso a instancia, é voltada bem para o dado e podem ter um tamanho máximo de 8TB.

Single Instances + Azure Arc

Esse é uma aposta bem legal da Microsoft levando o gerenciamento de banco de dados para outro nível, fazendo o gerenciamento desses databases em containers Kubernetes e permitindo o gerenciamento desses pods entre clouds. Isso traz o conceito de Multi-cloud para databases, não testei ainda mas logo vou fazer uns testes.

Serveless computing:

Esse modelo começou a ser usado recentemente na Azure e o modelo de cobrança é muito perto do Pay-as-use, eu defino um numero mínimo e máximo de cores e dentro desse espaço se no dia um momento do dia uso 2, pago 2 e se usei 4 pago os 4 e assim por diante. Em momentos de inatividade do database, ele pode ser pausado (economizando grana) e se acontecer alguma consulta nesse período parado ele sobe rapidinho e entrega a consulta pra você voltando a tarifação normal. Esse modelo é recomendado pra quem faz pouco uso do banco de dadose não tem uma necessidade de poder computacional enorme, pois em comparação com os outros bancos ele é bem menos performático, mas a grande vantagem dele em relação aos demais é que os outros são cobrados por hora e ele por segundo, sendo assim se seus processos são curtos e pontuais pode ser uma boa opção.

Provisionamento

O provisionamento desses ambiente pode ser realizado por:

  • Azure CLI
  • Azure Portal
  • PowerShell
  • Azure SDK
  • Azure Portal

Via portal é o meio mais fácil e conhecido, achei meio confuso a criação dos databases pelos tipos, por isso até refiz esse post pra que ficasse mais fácil de entender onde está cada um. Vamos ver no Azure portal onde está a criação de cada um deles.

Na segunda tela de criação de instancias aparece esse menu.

Nesse primeiro campo de SQL Databases aparecem as opções:

  • Single Database: Aquele que falamos lá em cima, a criação do server database e da instancia dentro dele.
  • Elastic Pool: O que falamos acima comum pool compartilhado. Lembrando o pool de databases é gerenciado por um server database também.
  • Database Server: Esse ponto é a instalação apenas do server que o gerencia. Com ele criado posso fazer a configuração de databases conforme a necessidade.
Managed instances

Nessa tela tenho a opção de criação dos seguintes bancos:

  • Single Instance: Instancia única de administração totalmente gerenciada pela Azure.
  • Single Instance + Azure Arc: A instancia citada acima gerenciada em Kubernetes com a possibilidade de um modelo multi-cloud.
Criação de databases do modelo IaaS

Nessa ultima tela consigo fazer a criação dos databases IaaS baseados em VMs com o SQL Server instalado. Existe uma variedade bem legal de opções, com sistemas operacionais (tem até SQL Server em Linux), versões diversas de SQL Server, após a mesma escolhida a VM pode ser customizada para melhor utilização de acordo com a utilização.

Billing Models

As bases SQL no Azure tem os 2 modelos de cobrança:

DTU (Data Transaction Units)

Nesse modelo que é o mais antigo de cobrança de databases da Azure, é focado no uso mínimo de CPU e memória, existe um calculo em que você mede basicamente a sua utilização de CPU e consumo de disco, o resultado dessa forma dá em DTU, ele facilita o modelo de implantação inicial pra você que não sabe qual vai ser o uso final desse database. O modelo DTU só está disponivel para Single Instances e Elastic Pool ambas managed instances.

vCore

Esse modelo um pouco mais recente foi criado devido a possibilidade de você reduzir custo do seu SQL Server trazendo a sua licença que era on premisses para o o cloud (economia que pode chegar até a 55% do valor), é super recomendado também para casos onde você precisa escalar o seu servidor, também recomendado quando você tem uma noção real de qual o uso de CPU, memória e I/O você consumia com a sua instancia no modelo on-premisses. Esse tipo de cobrança está disponível para os 3 modelos de databases Managed.

A Microsoft disponibiliza uma calculadora para que você tenha uma base do consumo em DTU, clique no link abaixo pra dar uma conferida.

Service Tiers

A Azure oferece para seus databases 3 service tiers de acordo com o que você precisa pro seu database, o Tier é uma modelo de otimização de acordo com o seu tipo de negócio ou uso, se liga:

General Purpose or Standard

Voltado para databases genéricos onde preciso de uma latência entre 5/10 ms, trabalha bem com Workloads e serve para os 3 tipos de databases gerenciados. Usa-se geralmente em ambientes de testes e desenvolvimento.

Business Critical ou Premium

Voltado para databases de baixa latência onde preciso de uma resposta rápida como 1ms para leitura e 2 ms para escrita, também disponível para os 3 tipos de databases gerenciados. Recomendado em ambientes produtivos.

Hypercale

Recomendado para databases gigantes com mais de 100TB, a diferença desse tier é que consigo provisiona-lo somente em databases contratados com vCore e não funciona com databases gerenciados, somente o modelo que falamos no inicio de IaaS.

Patchs e Updates

Essa é uma das partes boas de ter um SQL Server na Azure pois ele te fornece uma tela de monitoração todos os patchs e updates que você precisa aplicar , quais foram aplicados e quais databases precisam ser feitos caso seu ambiente seja IaaS. Eles podem ser aplicados de forma automática ou manual, você define, vai que um update impacte em sua aplicação. Mas mesmo que impacte o rollback também é executado de forma fácil e rápida pelo portal.

Em ambientes Managed a Microsoft é a responsável pela aplicação de patchs e updates e toda a responsabilidade sai do seu colo. Toda a aplicação de patchs em ambiente PaaS não traz nenhuma indisponibilidade e é feita de forma transparente.

Backup e restore

A vantagem da cloud quando falamos de database é backup e restore, quem viveu o mundo de ser DBA no on-premisses nem acredita na facilidade de restaurar um banco hoje, clonar, fazer um ambiente de homologação baseado no de produção, atividades de dias que exigiam várias pessoas dependem só de você e resolvida em poucas horas.

Tudo centralizado numa telinha bonita sem ferramentas terceiras.

Todo o gerenciamento dos backups, agendamento, catalogo, retenção é feita pelo portal Azure ou até pelas ferramentas Azure via código. O Backup é monitorado, te dá a possibilidade da alertas, tem redundância de regiões, sério, inacreditável ver isso hoje pra quem viveu o caos.

Sério, todo restore a barriga gelava.

Finalizando

Cara, acho que é o suficiente pra te dar um overview de como funcionam e os sabores das bases SQL Server na Azure. Escolha conforme a sua necessidade e divirta-se.

Peço desculpas se tropecei em algo ou esqueci de algo importante, sou um DBA que sempre fugiu de SQL Server rs.

Espero que te ajude e te dê uma luz no assunto!

Abraço!
Anselmo Borges.

--

--

Anselmo Borges
Rescue Point

Bigdata Engineer, Cloud Architect, Nerd, Alcoholic, Brazilian Jiujitsu Black belt and hide and seek World champion.