Automatizar o gerenciamento de soluções

Concluído

Neste módulo, você já aprendeu a as soluções podem ser muito úteis para controlar as partes do aplicativo e movê-las manualmente entre diferentes locais. Agora, vamos nos aprofundar em como a automação pode tornar o gerenciamento dos aplicativos ainda mais forte por meio de algo chamado ALM (Gerenciamento do Ciclo de Vida do Aplicativo). O ALM não se limita à criação do aplicativo; ele abrange tudo, desde definir regras (como requisitos), desenvolver e manter tudo funcionando perfeitamente. As soluções são como agentes-chave em sua estratégia de ALM, juntamente com outras ferramentas úteis, como Azure DevOps ou GitHub.

Normalmente, um arquiteto de soluções em seu projeto mapeará o plano de ALM, e alguém com experiência em DevOps configurará a automação. Como membro da equipe, seu trabalho é se manter envolvido no processo, usando a ferramenta escolhida para gerenciar suas tarefas e ficar atento ao aplicativo e às alterações de fluxo por meio de soluções. Assim que sua parte for concluída, a automação do ALM assumirá o controle. Ele inicia uma série de ações que movem automaticamente suas alterações do desenvolvimento para os testes e, depois, para a produção. Cada etapa pode precisar de algumas aprovações para garantir que tudo esteja no rumo certo. Imagine o ciclo de vida do aplicativo como um ciclo interminável de desenvolvimento de aplicativos que inclui planejamento, criação, teste, implantação, execução, monitoramento e aprendizado com o que você descobre ao longo do caminho.

Embora todas as ações possam ser realizadas manualmente, a automação garante que elas sejam realizadas de forma consistente sempre que executadas. Elas ainda poderão ser realizadas se, por exemplo, a pessoa que as executa manualmente estiver ausente por motivos de doença. Ferramentas concentradas em DevOps, como Azure DevOps ou GitHub, fornecem automação, mas também fornecem rastreamento de itens de trabalho e controle do código-fonte.

Controle do código-fonte e soluções

O controle do código-fonte, que você pode encontrar em ferramentas como Azure DevOps e GitHub, é como um rastreador de superversão para todas as partes do projeto. Imagine que você esteja trabalhando em um Power App e faça alterações. Sempre que você faz isso, é como criar uma nova versão do projeto. Você também pode usar 'itens de trabalho' para anotar quais alterações você fez, e essas notas podem ser vinculadas à versão. Isso ajuda sua equipe a manter um registro de quando os itens foram alteradas e permite desfazer quaisquer alterações que causaram problemas. Assim, enquanto sua equipe estiver ocupada criando uma versão mais recente de algo, a versão atual ainda poderá ser usada.

O controle de origem é muito importante no ALM (Gerenciamento do Ciclo de Vida de Aplicativo), pois é a melhor fonte de verdade para seu projeto. Mesmo que seu ambiente de desenvolvimento falhe, não se preocupe. Você pode recriá-lo usando as informações armazenadas no controle do código-fonte. De certa forma, o controle do código-fonte torna os ambientes de desenvolvimento substituíveis. Quando você envia itens para teste ou produção, na verdade, envia o que está no controle do código-fonte, não apenas algo aleatório do espaço de desenvolvimento.

Agora, aqui está o problema: quando você exporta uma solução do ambiente, é como empacotar tudo em um arquivo grande. Se você simplesmente colocar esse arquivo no controle do código-fonte, ele apenas informará que algo mudou, mas não dirá exatamente o que mudou em cada parte. Assim, para torná-lo mais útil, adicionamos uma etapa ao processo de automação. Essa etapa retira a solução do espaço de desenvolvimento, descompacta-a (como abrir uma mala pronta) e cria arquivos separados para cada parte. Os arquivos separados são então colocados no controle do código-fonte. Dessa forma, você pode acompanhar detalhadamente todas as alterações. Além disso, ele abre a possibilidade de ter vários ambientes de desenvolvimento que seguem as alterações no controle do código-fonte, reduzindo a chance de uma alteração prejudicar outra.

Automatizar com as ferramentas de DevOps

A automatização é importante porque promove a consistência em um processo que antes seria manual. Após a criação, as automações podem ser executadas sob demanda, de acordo com uma agenda ou com base em um evento de check-in. Embora existam muitas ferramentas que você pode usar para implementar a automação, o Azure Pipelines e o GitHub Actions têm tarefas predefinidas do Power Platform e suporte para ações da Microsoft.

O que você pode automatizar?

Há uma grande variedade de itens que podem ser automatizados, já que a automação apenas executa tarefas ou ações. Pense nisso como algo semelhante aos fluxos do Power Automate, porém mais específico para trabalhar com gerenciamento e implantações de aplicativos. Veja a seguir algumas das automações comuns que podem ser encontradas nos projetos do Power Platform:

  • Criar um novo ambiente de desenvolvimento e instalar soluções do controle do código-fonte

  • Mover as alterações do ambiente de desenvolvimento e atualizar o controle do código-fonte

  • Executar o verificador de solução para identificar problemas de qualidade

  • Provisionar e desprovisionar ambientes

  • Executar testes automatizados, incluindo os testes do Power Apps Test Studio

  • Criar soluções gerenciadas do controle do código-fonte para implantação em ambientes de downstream

  • Implantar em ambientes de downstream como de teste e produção

A automação é adaptada aos requisitos de cada projeto, mas normalmente tem automações iniciadas, de criação e de lançamento.

Ao trabalhar em um projeto que usa a automação, esteja ciente dos processos gerais que estão em vigor. No entanto, a criação da automação geralmente é feita por um recurso focado em DevOps.

Power Platform Build Tools

As Microsoft Power Platform Build Tools são como uma caixa de ferramentas projetada para gerenciar aplicativos no Microsoft Power Platform. Essas ferramentas são um conjunto de ações úteis que evitam que você procure ferramentas especiais e escreva scripts complicados para lidar com diferentes tarefas no ciclo de vida do aplicativo. Você pode usá-las uma a uma para ações específicas, como trazer um aplicativo para um novo ambiente, ou pode usá-las juntas em uma sequência para fazer as ações acontecerem automaticamente.

Dependendo de você estar usando o Azure DevOps ou o GitHub Actions para automatizar seu trabalho, as palavras complexas podem mudar um pouco. No Azure DevOps, chamamos essas ações de 'tarefas', enquanto no GitHub Actions, as chamamos de 'ações'.

Veja a seguir algumas das operações comuns:

  • Verificador do Power Platform: executa análises estáticas na sua solução e permite capturar problemas com antecedência ao adicioná-lo à sua automação.

  • Exportar Solução: exporta uma solução como não gerenciada, gerenciada ou ambas de um ambiente.

  • Importar Solução: importa uma solução para um ambiente.

  • Descompactar Solução: divide um arquivo da solução compactado em arquivos individuais para cada componente para permitir o check-in no controle do código-fonte.

  • Compactar Solução: compacta uma solução representada no controle do código-fonte em um arquivo solution.zip que pode ser importado para outro ambiente.

  • Definir Versão da Solução: permite que você atualize o número da versão na sua automação e implemente uma estratégia de controle de versão consistente.

  • Criar, Excluir e Copiar Ambientes: permite a automação do gerenciamento de ambientes como parte das automações.

Por que se preocupar com automação? Bem, é uma maneira inteligente de garantir que o processo de criação do aplicativo seja consistente e confiável. Se sua equipe ainda faz tudo manualmente, é uma boa ideia explorar algumas automações. Isso não apenas torna seu trabalho mais consistente, mas também ajuda a criar aplicativos melhores e a implantá-los com maior qualidade.