Escolher uma solução nativa do Azure

Concluído

A sua organização tem vários requisitos para mover as suas aplicações para máquinas virtuais do Azure. Você deseja revisar esses requisitos e selecionar a ferramenta apropriada com base nas necessidades da sua organização.

As ferramentas de aprovisionamento corretas dependem do seu problema, da dimensão da sua infraestrutura e do resultado que pretende atingir. Como estes critérios variam de rede para rede, eis algumas métricas fundamentais que podemos utilizar para determinar que ferramenta é a mais adequada para aprovisionar a computação:

  • Facilidade de configuração
  • Gestão
  • Interoperabilidade
  • Linguagem de configuração
  • Limitações e desvantagens

Vamos considerar as vantagens ou desvantagens de cada uma dessas ferramentas, usando essas métricas. Podemos examinar um cenário de negócios e ver como cada ferramenta pode nos ajudar a lidar com um cenário específico.

Script personalizado

  • Facilidade de configuração. A extensão do script personalizado está incorporada no portal do Azure, pelo que a configuração é fácil.
  • Gestão. A gestão de scripts personalizados pode ser complicada à medida que a sua infraestrutura cresce e acumula diferentes scripts personalizados para diferentes recursos.
  • Interoperabilidade. A extensão de script personalizado pode ser adicionada a um modelo do Azure Resource Manager. Também pode implementá-la através do Azure PowerShell ou da CLI do Azure.
  • Linguagem de configuração. Pode escrever scripts com vários tipos de comandos. Pode utilizar o PowerShell e o Bash.
  • Limitações e desvantagens. Os scripts personalizados não serão adequados se o seu script precisar de mais de uma hora e meia a aplicar a sua configuração. Evite utilizar scripts personalizados para qualquer configuração que necessite de reinícios.

Cenário

A organização para a qual trabalha recebeu um novo contrato para trabalhar para um novo cliente. Tem uma série de máquinas virtuais executadas no Azure. A equipa de programação decide que precisa de instalar uma pequena aplicação que escreveu para ajudar a aumentar a produtividade da equipa e garantir que consegue cumprir novos prazos. Esta aplicação não requer um reinício.

A equipa pede-lhe que implemente uma solução para garantir que a aplicação é instalada de forma correta, rápida e o mais simples possível nestas máquinas virtuais.

Decide que um script personalizado pode ajudar a garantir que esta aplicação é configurada em todas as máquinas com um esforço mínimo. Você configura as extensões nas máquinas virtuais com apenas algumas configurações no portal do Azure.

Resumo da solução

A extensão do script personalizado é uma boa solução para configurações pequenas após o aprovisionamento. Também é uma boa opção caso necessite de adicionar ou atualizar algumas aplicações rapidamente numa máquina de destino. É fundamental para scripts multiplataformas ad-hoc.

Extensões do Desired State Configuration do Azure

  • Facilidade de configuração. As configurações do DSC (Desired State Configurations) são fáceis de ler, atualizar e armazenar. As configurações definem qual o estado que pretende obter. O autor não precisa de saber como é que esse estado é atingido.
  • Gestão. O DSC democratiza a gestão de configuração entre servidores.
  • Interoperabilidade. As configurações do DSC são utilizadas com o State Configuration da Automatização do Azure. Podem ser configuradas através do portal do Azure, Azure PowerShell ou modelos do Azure Resource Manager.
  • Linguagem de configuração. Utilize o PowerShell para configurar o DSC.
  • Limitações e desvantagens. Só pode utilizar o PowerShell para definir as configurações. Se utilizar o DSC sem o State Configuration da Automatização do Azure, tem de tratar da sua própria orquestração e gestão.

Cenário

A organização para a qual trabalha está a testar uma nova aplicação, que exige que novas máquinas virtuais sejam idênticas para que a aplicação possa ser testada com precisão. A empresa quer garantir que as máquinas virtuais têm exatamente as mesmas definições de configuração. Observa que algumas destas definições exigem vários reinícios de cada máquina virtual. A sua empresa quer uma configuração de estado única para todas as máquinas no momento de aprovisionamento. Qualquer processamento de erros para obter o estado deve ser o mais abstraída possível da configuração de estado. As configurações devem ser fáceis de ler.

Decide utilizar o DSC. As configurações do DSC são fáceis de ler. Pode declarar um estado idêntico único para todas as máquinas virtuais. Pode abstrair qualquer lógica de processamento de erros das suas configurações de estado e manter configurações de estado simples e limpas. Também pode garantir que as configurações são efetuadas com êxito mesmo após um reinício.

Resumo da solução

O DSC é fácil de ler, atualizar e armazenar. As configurações DSC ajudam a declarar o estado em que suas máquinas devem estar no ponto em que são provisionadas, em vez de ter instruções que detalham como colocar as máquinas em um determinado estado. Sem o State Configuration da Automatização do Azure, tem de gerir as suas próprias configurações e orquestração do DSC. O DSC pode ser mais produtivo em conjugação com o State Configuration da Automatização do Azure.

State Configuration da Automatização do Azure

  • Facilidade de configuração. O State Configuration da Automatização não é difícil de configurar, mas requer que o utilizador esteja familiarizado com o portal do Azure.
  • Gestão. O serviço gere automaticamente todas as máquinas virtuais por si. Cada máquina virtual pode enviar-lhe relatórios detalhados sobre o seu estado, que pode utilizar para obter informações destes dados. O State Configuration da Automatização também o ajuda a gerir as suas configurações do DSC com mais facilidade.
  • Interoperabilidade. O State Configuration da Automatização requer configurações do DSC. Ele funciona com suas máquinas virtuais do Azure automaticamente e com quaisquer máquinas virtuais locais ou em outro provedor de nuvem.
  • Linguagem de configuração. Utilizar o PowerShell.
  • Limitações e desvantagens. Só pode utilizar o PowerShell para definir as configurações.

Cenário

A empresa para a qual trabalha quer conseguir ser capaz de criar centenas de máquinas virtuais com configurações idênticas. Quer comunicar sobre estas configurações. Quer conseguir identificar quais configurações aceites pelas máquinas sem problemas. Também quer conseguir identificar esses problemas quando uma máquina não atinge um estado pretendido. Além disso, quer conseguir fornecer todos estes dados para uma ferramenta de monitorização para poder analisar todos os dados e aprender com os mesmos.

Com base nos requisitos que lhe foram fornecidos pela sua organização, decide que a melhor solução a utilizar é o State Configuration da Automatização do Azure com configurações do DSC a declarar os estados. O State Configuration da Automatização do Azure pode configurar automaticamente as suas configurações de estado do DSC em todos os seus nós. Esta abordagem também garante que as máquinas comunicam o estado de cada nó. Também pode reencaminhar estes dados para os registos do Azure Monitor. Utilize o State Configuration da Automatização do Azure para melhorar a gestão das suas configurações de estado do DSC.

Resumo da solução

O serviço State Configuration da Automatização do Azure é uma boa opção para automatizar as suas configurações do DSC, juntamente com a gestão de máquinas que precisam dessas configurações, e para obter um relatório centralizado de cada máquina. Pode utilizar o DSC sem o State Configuration da Automatização do Azure, sobretudo se quiser administrar um número menor de máquinas. Para cenários maiores e mais complicados que necessitam de orquestração, o State Configuration da Automatização do Azure é a solução de que precisa. Todas as configurações e funcionalidades de que necessita podem ser enviados para todas as máquinas e aplicados de igual forma, com um esforço mínimo.

Modelos do Azure Resource Manager

  • Facilidade de configuração. Pode criar modelos do Azure Resource Manager com facilidade. A comunidade do GitHub disponibiliza vários modelos, que pode utilizar ou ter por base. Em alternativa, pode criar os seus próprios modelos a partir do portal do Azure.
  • Gestão. Gerir os modelos do Resource Manager é simples porque gere ficheiros JSON (JavaScript Object Notation).
  • Interoperabilidade. Pode utilizar outras ferramentas para aprovisionar modelos do Resource Manager, tais como a CLI do Azure, o portal do Azure, o PowerShell e o Terraform.
  • Linguagem de configuração. Utilize JSON.
  • Limitações e desvantagens. A linguagem JSON tem uma sintaxe e gramática rígidas e a existência de erros pode facilmente tornar um modelo inválido. A necessidade de conhecer todos os fornecedores de recursos no Azure e as respetivas opções pode ser onerosa.

Cenário

Cada programador deve ser capaz de aprovisionar automaticamente um grupo inteiro de máquinas virtuais que são idênticas ao que todos os outros utilizadores da equipa criam. Os programadores querem ter a certeza que estão todos a trabalhar no mesmo ambiente. Os programadores estão familiarizados com o JSON mas não sabem necessariamente como administrar a infraestrutura. Têm de conseguir aprovisionar todos os recursos de que necessitam para executar estas máquinas virtuais de forma fácil e rápida.

Decide apresentar modelos do Azure Resource Manager aos programadores. Dessa forma, você pode colaborar com os desenvolvedores para decidir quais recursos eles precisam no Azure. Também pode escolher um modelo que satisfaça os requisitos dos programadores. Como o modelo é baseado em JSON e facilmente implantável, os desenvolvedores podem aprender rapidamente como provisionar e implantar recursos do Azure.

Resumo da solução

Os modelos do Resource Manager podem ser utilizados para pequenas infraestruturas ad-hoc. São também ideais para implementar infraestruturas maiores com vários serviços, juntamente com as respetivas dependências. Os modelos de recursos podem ajustar-se bem aos fluxos de trabalho dos programadores. Pode utilizar o mesmo modelo para implementar repetidamente a sua aplicação durante cada fase do ciclo de vida da aplicação.