Latest / M365.FM – Podcast de Microsoft 365, Copilot e IA em português / ALM do Power Platform com GitHub Actions: fonte, build, teste e implantação sem adivinhação (Dublagem IA)
Transcript
- 0:00Preparado para 10 dias de Microsoft 305, Copilot, IA, Azure e as pessoas moldando o futuro do trabalho?
- 0:07Em janeiro, a M365 com está de volta, estamos crescendo ainda mais.
- 0:12Junte-se a nós para sessões ao vivo, demonstrações reais e conhecimento prático de MVPs e especialistas do setor em todo mundo.
- 0:18Nada de slides genéricos, nada de jargões sem fim.
- 0:21Estamos enfrentando os desafios reais.
- 0:23Copilot Studio, agente de IA, fábrica, segurança, governança e automação, GAU.
- 0:28Seja você um profissional de TI, desenvolvedor ou líder de negócios, há sessões projetadas para você.
- 0:35Com 10 dias inteiros, você pode explorar múltiplas tecnologias e se conectar com uma comunidade global.
- 0:40Assista ao vivo e leve insights práticos de volta para sua organização.
- 0:45Janeiro de 2027, 10 dias, uma comunidade Microsoft.
- 0:49As inscrições já estão abertas.
- 0:52Garanta sua vaga hoje!
- 0:54É mm3105com.net
- 0:58Participe agora em m3105com.net e nos vemos ao vivo em janeiro!
- 1:05Você sente que suas implantações no Power Platform são uma caixa preta?
- 1:08Você envia uma atualização, prende a respiração e torce para que funcione em dev, teste e produção?
- 1:12E se você pudesse controlar e ver cada estágio do seu processo de ELM usando o GitHub Action sem mais palpites,
- 1:19ou remendos manuais, ou...
- 1:21Vamos revelar como cada componente, controle de versão, automação e variáveis seguras realmente se conectam?
- 1:28Este não é apenas mais um passo a passo.
- 1:30Este é o porquê que a maioria dos guias ignora para que sua próxima implantação não deixe você na dúvida.
- 1:35Então por que o ELM do Power Platform parece um labirinto?
- 1:37Se você já tentou implantar um Power App e sentiu aquela incerteza constante,
- 1:41como se algo importante tivesse escapado, você não está sozinho.
- 1:46No papel, o Power Platform promete um desenvolvimento de apps fácil,
- 1:49mas por trás da fachada amigável, o ELM é tudo menos simples.
- 1:53Um aplicativo web é implantado a partir do controle de versão,
- 1:56compilado em um pipeline e chega à produção com comportamento previsível.
- 2:00O Power Platform, por outro lado, esconde metade da lógica em interfaces de arrastar e soltar,
- 2:04telas de conectores e fórmulas que você não vê em nenhum repositório Git.
- 2:08Então mesmo que você siga a cada passo daqueles guias administrativos,
- 2:11você ainda encontra falhas estranhas e difíceis de diagnosticar
- 2:14quando os apps críticos deixam o desenvolvimento.
- 2:17Vamos analisar os guias de ELM por aí?
- 2:19A maioria deles vai te mostrar como exportar um arquivo zip de solução e importá-lo em outro lugar.
- 2:24Simples o bastante.
- 2:25Mas o como é apenas uma camada.
- 2:27O que eles ignoram é o porquê.
- 2:29Por que a implantação do Power Platform quebra de maneiras que o código comum nunca quebra?
- 2:33É isso que causa uma confusão sem fim.
- 2:35A raiz do problema é que a lógica, as conexões e a configuração no Power Apps não são armazenadas como código clássico.
- 2:42Você não está apenas clonando um repositório e observando os testes unitários.
- 2:45Então, quando você tenta mover seu aplicativo, todas aquelas dependências ocultas,
- 2:48conexões com Outlook, SharePoint e APIs personalizadas nem sempre viajam perfeitamente dentro daquele arquivo zip.
- 2:54Eis o cenário.
- 2:55Você tem um aplicativo novo e incrível funcionando no ambiente de desenvolvimento.
- 2:57Você exporta uma solução e importa para teste e, de repente, o fluxo para de funcionar.
- 3:02Raramente é apenas um problema de arquivo.
- 3:03Em vez disso, as conexões estão apontando para o lugar errado, as permissões não coincidem
- 3:07e as políticas de dados bloqueiam conexões que pareciam estar bem há alguns minutos.
- 3:12Agora, imagine fazer isso em três ambientes, Dev, Test e Prod, com cada um usando conexões,
- 3:17políticas de proteção de dados, aprovadores e guardas administrativos diferentes.
- 3:21Você não consegue resolver isso apenas com copia e colar.
- 3:23As pesquisas confirmam que administradores e criadores vêm toda semana.
- 3:27A maioria das implantações falhas na Power Platform decorre de referências de conector ausentes
- 3:31ou variáveis de ambiente mal gerenciadas.
- 3:34Uma referência de conector ausente significa apenas que o fluxo não consegue encontrar
- 3:37sua conexão com Outlook ou Dataverse.
- 3:40Portanto, no minuto em que você tenta executar seu aplicativo ou fluxo em outro ambiente,
- 3:44você recebe erros de tempo de execução.
- 3:47E como as variáveis de ambiente funcionam de forma diferente na Power Platform
- 3:50em comparação com outros produtos do Microsoft 365,
- 3:52elas confundem até desenvolvedores experientes.
- 3:55As variáveis devem lidar com pontos de extremidade-chave ou configurações específicas do locatário.
- 4:00Mas, se alguém esquecer de atualizá-las após exportar uma solução,
- 4:02até mesmo uma mudança aparentemente inofensiva pode quebrar um aplicativo ativo.
- 4:06Muitos de nós caímos na mesma armadilha no início.
- 4:09Você pode pensar que exportar um zip de solução agrupa tudo o que é necessário,
- 4:12mas na verdade ele ignora a referência de conector dinâmicas.
- 4:14Por exemplo, digamos que você tenha um aplicativo que usa um conector HTTP
- 4:17para um serviço de terceiros em Dev.
- 4:19Ao importar para teste ou produção, essa instância específica do conector não existirá.
- 4:24A referência do conector dentro do seu aplicativo aponta para um objeto ausente,
- 4:27e os fluxos dentro da solução param de funcionar silenciosamente
- 4:30até que um usuário ou administrador recrie e remapee as conexões manualmente.
- 4:34Se você tiver mais de um criador ou administrador, é ainda mais fácil perder o controle
- 4:39de qual referência vai para onde, e ninguém quer aquele post-mortem de funcionar em Dev.
- 4:44Outra complicação, entidades e serviço.
- 4:47A maioria das pessoas começa usando contas de usuário para exportar e importar soluções
- 4:51porque é mais rápido começar.
- 4:53Mas quando você tenta automatizar com GitHub Actions ou qualquer sistema de CI
- 4:56usando os credenciais de uma pessoa, você rapidamente chega a um beco sem saída.
- 4:59Você encontrará barreiras de permissão, às vezes sem mensagens de erro claras,
- 5:03ou até mesmo acionará auditorias de conformidade
- 5:05porque está executando implantações críticas sobre uma conta pessoal
- 5:08em vez de algo destinado à automação.
- 5:10Service Principles, essencialmente identidades de aplicativo criadas no Azure AD,
- 5:14cuidam de todas as permissões, registros e auditorias que seu pipeline precisa.
- 5:19Sem eles, sua cadeia de automação vira uma colcha de retalhos de transferências manuais,
- 5:23e você nunca sabe quem alterou o quê.
- 5:25P. Controle de versão também se torna um incógnito.
- 5:27Com um código comum, você tem histórico de commits e ferramentas de rastreamento.
- 5:32Arquivos de solução da Power Platform representam apenas instantâneos,
- 5:34o que significa que falta um rastreamento granular de mudança.
- 5:37A lógica escondida em fórmulas de tela de um Canvas App,
- 5:40ou em fluxos pouco documentados, não fica visível até que você exporte novamente.
- 5:44Alguém ajusta uma configuração de fluxo na interface,
- 5:46boa sorte tentando descobrir por que ambientes posteriores começam a se comportar de forma diferente.
- 5:50O resultado final, gerenciar a LM para a Power Platform,
- 5:52parece resolver um quebra-cabeça com metade das peças faltando,
- 5:55ou pelo menos escondidas sob a caixa.
- 5:57Dependências invisíveis, conectores específicos de ambiente,
- 6:01e variáveis que você não vê no código,
- 6:02alteram o fluxo de trabalho comum do desenvolvedor.
- 6:06E isso é antes de lidar com o fato de que ambientes de produção
- 6:09quase sempre têm permissões mais rígidas,
- 6:11políticas de dados diferentes e requisitos de auditoria
- 6:13que não são óbvios em dev ou teste.
- 6:17Mas aqui está o lado positivo.
- 6:18Essa complexidade não é aleatória.
- 6:20Existe uma razão prática para a Power Platform lidar com fonte,
- 6:24variáveis e conectores de uma forma tão única,
- 6:27ela tenta permitir que usuários de negócio criem aplicativos poderosos,
- 6:30sem se preocupar com o código.
- 6:32O efeito colateral é que você, como uma pessoa configurando automação,
- 6:35precisa monitorar o que está escondido sob o capô.
- 6:38Se você souber onde esses fios invisíveis passam,
- 6:40pode corrigir ou evitar a maioria das armadilhas que descarrilam o ILM da Power Platform.
- 6:45Agora, se tudo isso parece muita coisa para lidar, você não está errado.
- 6:50Mas existem quatro pilares de ILM que realmente ajudam antes a embaraçar essa bagunça.
- 6:54Fonte, build, teste e implantação.
- 6:56Cada um tem suas peculiaridades na Power Platform,
- 6:58mas juntos eles devolvem estrutura ao que, de outra forma, parece um caos.
- 7:02O sistema central de ILM, fonte, build, teste e implantação.
- 7:05Toda vez que alguém pede um pipeline da Power Platform que simplesmente funcione,
- 7:09a primeira coisa que vem à mente são aqueles quatro pilares de ILM, fonte, build, teste e implantação.
- 7:16No mundo de desenvolvimento tradicional, você quase poderia executar isso dormindo.
- 7:19A Power Platform não te deixa escapar tão fácil.
- 7:21De repente, fonte não significa código.
- 7:24Significa lidar com arquivos e solução,
- 7:26exportando pacotes compactados repletos de aplicativos, fluxos e, às vezes,
- 7:30conectores fingindo ser parte da fonte.
- 7:33Vamos começar pelo básico,
- 7:35depois analisar o que torna cada pilar um pouco estranho neste mundo.
- 7:37Você tem seu arquivo zip-solução.
- 7:40Não é código no sentido convencional.
- 7:42Abre e você será recebido por arquivos explicativos em XML e JSON,
- 7:45e não pela lógica que você veria em TypeScript ou C-Shack.
- 7:48Mas essa é a fonte da Power Platform.
- 7:50As equipes costumam tropeçar aqui.
- 7:52Parece portátil até que você percebe que a maioria das alterações,
- 7:55como atualizar uma fórmula em uma tela ou ajustar a lógica de um fluxo,
- 7:58não são óbvias até você exportar um novo arquivo zip da solução.
- 8:01Então sim, você pode versionar esses arquivos de solução no Git,
- 8:04mas a menos que seja disciplinado ou exportar após cada edição relevante,
- 8:07seu histórico terá lacunas gritantes,
- 8:09seu histórico terá lacunas gritantes.
- 8:10Agora vem a configuração.
- 8:12Para aplicativos comuns, você pode armazenar streams de conexão
- 8:14em um arquivo de configuração e dar o assunto para encerrado.
- 8:17Power Platform introduz dados específicos do ambiente dentro dessas soluções.
- 8:21Não se trata apenas de variáveis de ambiente,
- 8:23mas de referências de conectores, endpoints, dinâmicos, funções
- 8:26e permissões agrupadas junto com a lógica de negócios.
- 8:28Se você esquecer de atualizá-los antes de exportar do Devil o teste,
- 8:33estará travando ponteiros para o lugar errado.
- 8:36Já vi equipes confirmarem religiosamente seus arquivos zip de solução,
- 8:40apenas para implantar e perceber que metade do aplicativo
- 8:42ainda está se comunicando com o Dataverse de desenvolvimento
- 8:44em vez de produção porque ninguém remapeou as referências dos conectores.
- 8:48Então temos o Build Compilação.
- 8:50A palavra Build geralmente traz imagens de compilar código
- 8:52e vê marcações verdes em um trabalho de CI.
- 8:54Com a Power Platform, o processo de Build consiste em armazenar esses pacotes zip,
- 8:59verificar o esquema e validar dependências.
- 9:02Em um pipeline do GitHub Actions, um trabalho de Build pega o arquivo de solução
- 9:05que você confirmou e usa a CLI da Power Platform da Microsoft
- 9:09para descompactar, validar e recompactar a solução.
- 9:12A etapa de validação é de a mágica ou o caos acontece.
- 9:14Pode detectar referências quebradas ou ações não suportadas.
- 9:18Pior ainda, se uma alteração no seu fluxo depender de um conector personalizado
- 9:21que nunca entrou no controle de origem, seu Build,
- 9:23empacota silenciosamente algo incompleto.
- 9:26E onde as coisas ficam complicadas.
- 9:28Esses trabalhos de Build são menos sobre compilar
- 9:30e mais sobre orquestrar uma exportação confiável
- 9:32e garantir que o conteúdo seja passível de entrega.
- 9:36Equipes que pulam isso ou fazem compressa rapidamente
- 9:38e acabam em situações onde o Build tecnicamente tem sucesso.
- 9:41Mas o que chega ao AT ou produção está faltando metade dos recursos pretendidos.
- 9:45A Microsoft continua promovendo a mensagem de que arquivos de solução
- 9:47tornam o LM portátil, mas sempre há uma nota de rodapé.
- 9:50A portabilidade depende de conectores estarem mapeados corretamente
- 9:53e funções configuradas em todos os ambientes.
- 9:55Teste o próximo botão de fonte.
- 9:56Em um pipeline aplicativo web, testes automatizados
- 9:59podem executar testes unitários ou verificações de interface.
- 10:02Para a Power Platform, o que conta como teste está aberto a debate?
- 10:06Às vezes é a validação da solução.
- 10:08Em outras palavras, a solução abre e as dependências principais são resolvidas.
- 10:11Outras vezes, executar fluxos de teste ou verificar se os conectores respondem
- 10:16em um ambiente de teste a este.
- 10:18Muitas vezes, os testes são manuais porque a validação da lógica de negócios
- 10:21dentro de um aplicativo de tela ainda não está integrada a pipelines automatizados.
- 10:25Mas você pode automatizar verificações para detectar conectores ausentes,
- 10:28validar fluxos críticos ou até mesmo realizar um ping em um ambiente de teste
- 10:31apenas para provar que as credenciais estão funcionando.
- 10:34Implantação em um dia 12 e turno em VD.
- 10:35Ao implantar um aplicativo padrão, você pode apenas enviar um artefato da web para o Azure.
- 10:39Com o Power Platform, você precisa mapear conexões, atribuir permissões,
- 10:43atualizar segredos, trocar variáveis de ambiente
- 10:44e finalmente acionar uma importação usando uma entidade de serviço,
- 10:48nunca uma conta comum.
- 10:49Caso contrário, você ficará preso a auditorias e negações de permissão.
- 10:53GitHub Actions pode unir esse processo,
- 10:55mas apenas se cada trabalho souber qual ambiente direcionar e quais segredos usar.
- 11:00Já vi equipes tentarem atalhos usando o único conjunto de credenciais
- 11:03entre desenvolvimento e produção, o que é uma receita para o caos,
- 11:05vazamentos de dados, erros de permissão e recursos quebrados
- 11:08que aparecem apenas em um ambiente.
- 11:11Vejo uma equipe real com a qual trabalhei alguns meses.
- 11:13Eles faziam a maioria das coisas corretamente,
- 11:15repositórios de Git padrão, arquivos ZipSol são versionados e ramificações casas.
- 11:18Mas o pipeline deles sempre quebrava na implantação.
- 11:21Eles nunca se preocupavam em trocar variáveis de ambiente
- 11:23ou atualizar referências de conectores antes de importar para a produção.
- 11:26Isso deixava fluxos importantes apontando para os pontos de extremidade errados,
- 11:29com dados sendo enviados para os sistemas incorretos.
- 11:31Solução.
- 11:32Etapas roteirizadas no pipeline do GitHub que trocavam variáveis e remapeavam cada conector durante a importação.
- 11:38A própria orientação da Microsoft é direta sobre isso.
- 11:41Use arquivos de solução para mover itens entre ambientes,
- 11:43mas sempre trate as referências de conectores e mapeamento de funções como parte do seu pipeline.
- 11:48Eles destacam que pular essas etapas é a maneira número um de quebrar aplicativos,
- 11:51especialmente à medida que os ambientes se tornam mais restritos.
- 11:53Quando você trata origem, compilação, teste e implantação como peças móveis conectadas,
- 11:58e não apenas etapas isoladas, fica mais fácil entender porque tantas tentativas GLM falham,
- 12:02e como você pode solucionar problemas de fato em vez de apenas cruzar os dedos.
- 12:07A seguir, vamos entrar em como o GitHub Actions coordena essa dança,
- 12:10gatilhos, ramificações e a separação de trabalhos
- 12:13que mantém sua automação no Power Platform flexível e segura.
- 12:17GitHub Actions. Conectando os pontos com gatilhos e trabalho.
- 12:20Se você já esperou um pipeline do GitHub Actions terminar após atualizar seu Power App,
- 12:24já sabe que automação não significa instantâneo, e definitivamente não significa mágica.
- 12:29A maioria das equipes bate nessa parede logo após a empolgação de ver seu primeiro fluxo de trabalho rodar.
- 12:34Você configura um script, conecta ao seu repositório,
- 12:37e espera que cada novo commit seja implantado perfeitamente em todos os ambientes.
- 12:41Então a realidade aparece.
- 12:43Em vez de apenas iniciar um script, o GitHub Actions usa uma cadeia lógica
- 12:46construída em torno de gatilhos, tarefas e transferências entre ambientes.
- 12:51Essa ordem e estrutura é o que impede que as implantações se tornem um emaranhado de etapas,
- 12:55falhas e erros estranhos.
- 12:56O ponto de partida nesse sistema é o gatilho?
- 12:59A maioria dos iniciantes cria um fluxo de trabalho,
- 13:02que é acionado a cada push, ou sempre que um pull request chega na branch principal,
- 13:07a descer e descerá.
- 13:08À primeira vista, isso parece uma boa prática.
- 13:10Por que não executar seu pipeline sempre que o trabalho muda?
- 13:12Aqui está o problema.
- 13:13Quando você define um gatilho apenas na branch principal,
- 13:15tudo é canalizado através de um único caminho.
- 13:17E se as alterações precisarem para o ambiente de desenvolvimento,
- 13:19menor produto e teste ou produção?
- 13:20E se você estiver pronto para enviar para a produção, mas o teste ainda estiver em validação?
- 13:25Equipes que usam gatilhos genéricos tendem a ter problemas
- 13:27em que recursos destinados ao desenvolvimento acabam em produção ou implantações de teste,
- 13:32substituem configurações de produção.
- 13:35Você pode ramificar fluxos de trabalho para cada ambiente, dev, teste e prod,
- 13:39e definir gatilhos muito específicos para cada um.
- 13:42Por exemplo, configure um fluxo que só roda em pushes para branch dev,
- 13:45ou dispare um fluxo diferente,
- 13:47quando alguém fizer merge na branch de release de produção.
- 13:50Essa abordagem oferece mais controle,
- 13:52cria uma divisão clara entre trabalho em andamento e alterações reais,
- 13:55mas muitas equipes nunca revisam seus gatilhos após criá-los.
- 13:58É assim que segredos de um ambiente podem escapar para outro
- 14:01e configurações de desenvolvimento acabam em produção por acidente.
- 14:05Uma equipe com a qual trabalhei tentou executar todo o seu processo de LM
- 14:08a partir de um único fluxo de trabalho.
- 14:10Por um tempo, pareceu bem,
- 14:12até que alguém notou que a string de conexão do banco de dados de produção
- 14:15apareceu no ambiente de desenvolvimento.
- 14:18Eles não perceberam que seus segredos estavam sendo compartilhados entre as tarefas.
- 14:21E é assim que o código se movia entre os ambientes
- 14:23e os segredos vazavam junto com ele.
- 14:25Não foi uma falha ou erro óbvio.
- 14:26Foi silencioso?
- 14:28Esse tipo de vazamento de dados é mais comum do que se pensa,
- 14:30especialmente se você não configurar seus fluxos
- 14:32para separar segredos e variáveis de ambiente.
- 14:35Cada tarefa em um fluxo do GitHub Actions
- 14:37lida com uma parte clara do processo.
- 14:39Uma tarefa pode lidar com a exportação da solução de um ambiente de origem.
- 14:44Outra tarefa cuida da validação,
- 14:46descompactação, verificação de metadados,
- 14:48dependências e referências de conectores.
- 14:50Em seguida vem a tarefa que prepara as variáveis específicas do ambiente,
- 14:55adaptando a solução para que ela se encaixe no ambiente de destino.
- 14:59A última tarefa aciona o processo de importação usando o Service Principles
- 15:02para gravar as alterações no ambiente correto.
- 15:05Você pode pensar em variáveis de ambiente e segredos como espaços reservados básicos,
- 15:08mas na prática eles são a cola que mantém tudo unido, unido.
- 15:11Strings de conexão, chave de API, senhas compartilhadas,
- 15:15tudo precisa alternado entre tarefas, mas nunca pode vazar entre limites.
- 15:20No ILM do Power Platform você pode ter uma conexão dataverse diferente para cada ambiente,
- 15:25ou precisar alternar endpoints dependendo do fluxo ou powerapp que está usando.
- 15:30Se você reutilizar variáveis ou codificar segredos,
- 15:32acabará com um pipeline frágil ou pior, com riscos de segurança significativos.
- 15:35O processo de importação depende de extrair segredos apenas do cofre correto
- 15:40para que a produção não seja exposta por erros de teste ou desenvolvimento.
- 15:44Um bom modelo mental para segredos no GitHub Actions
- 15:46é imaginar cada ambiente como tendo seu próprio cofre digital,
- 15:49uma caixa trancada que só as tarefas certas podem ver.
- 15:53O GitHub oferece controles precisos.
- 15:55Você pode limitar segredos a ambientes para que uma tarefa sendo executada em dev
- 15:59não acesse credenciais de produção e vice-versa.
- 16:02Configure esses cofres, e mesmo que alguém ajustando o pipeline
- 16:05tente algo arriscado,
- 16:07as regras de proteção de ambiente impedem que um erro se espalhe.
- 16:10A documentação da Microsoft e do próprio GitHub enfatizam muito esse ponto.
- 16:13Eles recomendam regras de proteção de ambiente e definição rigorosa de escopo de segredos
- 16:17para impedir vazamentos entre ambientes antes mesmo de começarem.
- 16:20Sem esse tipo de proteção, até os fluxos de trabalho de LM mais bem projetados falham.
- 16:25Imagine um fluxo implantando em produção
- 16:26enquanto ainda mantém uma stringa de conexão de desenvolvimento
- 16:29ou um ambiente de teste acessando dados de produção.
- 16:32Nem sempre isso quebra as coisas de forma visível.
- 16:34Às vezes significa apenas que alertas de conformidade são disparados
- 16:37ou os logs se enchem de erros sutis que lentamente se acumulam em problemas maiores.
- 16:41É por isso que ramificar fluxo de trabalho e definir escopo de segredos
- 16:43não são apenas tópicos avançados.
- 16:45Eles são a rede de segurança que impede que sua automação se desfaça silenciosamente.
- 16:48Também há valor em dividir fluxos de trabalho.
- 16:51Não apenas por ambiente, mas por responsabilidade.
- 16:52O código exporta e valida soluções não deveria nem saber como implantar ou trocar segredos.
- 16:59Se cada tarefa cuida de uma peça do quebra-cabeça,
- 17:02fica muito mais fácil identificar onde as coisas quebram,
- 17:04reverter e auditar alterações posteriormente.
- 17:08Segredos permanecem em seus cofres, tarefas seguem permissões claramente definidas
- 17:12e falhos no pipeline apontam diretamente para a peça que precisa de correção.
- 17:15Entender como o GitHub Actions transfere o trabalho de uma tarefa para outra,
- 17:20mantendo os segredos com escopo restrito e gatilhos bem definidos,
- 17:23é o que transforma o ALM de um experimento otimista em uma prática confiável, segura e previsível.
- 17:29Essa segmentação de fluxo de trabalho não é apenas para seguir as melhores práticas.
- 17:32É o que bloqueia vazamentos de seguranças silenciosos e substituições acidentais,
- 17:37eliminando toda uma classe de erros invisíveis antes que comecem a assombrar seus ambientes.
- 17:41Agora, com as peças trabalhando juntas por meio de automação devidamente dimensionada,
- 17:46é hora de abordarmos outro ponto de atrito.
- 17:49Conectores, service principles e as pequenas, porém críticas e armadilhas
- 17:52que podem paralisar suas implantações justamente quando você ganha confiança.
- 17:57Segredos de service principles e os problemas com conectores.
- 17:59Se você já tentou mover um power app ou flow do desenvolvimento para a produção, conhece a história.
- 18:05As coisas funcionam perfeitamente em um ambiente, mas assim que você alterna tudo para
- 18:09ou apresenta aqueles erros de conexão misteriosos.
- 18:13Isso não é exclusivo de uma equipe específica.
- 18:15Todo administrador da Power Platform eventualmente esbarra nessa parede.
- 18:19A raiz do problema está em como os conectores e segredos se comportam nos bastidores.
- 18:24Você não pode simplesmente exportar um zip de solução do desenvolvimento e esperar que
- 18:28funcione em outro lugar, porque as conexões dependem do ambiente.
- 18:33Comecemos pelas referências de conector.
- 18:34Na Power Platform, um conector nunca é apenas uma informação estática incluída no seu
- 18:39aplicativo.
- 18:40Ele é dinâmico, mutável e muitas vezes exclusivo de cada ambiente.
- 18:44Ao exportar sua solução, as referências de conector funcionam quase como favoritos.
- 18:48Elas apontam para objetos de conexão que só existem no ambiente em que foram criados.
- 18:52Portanto, ao importar para teste ou produção, seu endpoint HTTP ou link do Dataverse não
- 18:57é necessariamente recriado da mesma forma ou nem chega a ser recriado.
- 19:01É aqui que as equipes são pegas de surpresa.
- 19:02Se o ambiente de desenvolvimento usa um conector para testar dados e essa configuração não
- 19:08é espelhada na produção, seu fluxo ou app falha silenciosamente ou trava na primeira
- 19:13tentativa de conexão.
- 19:16Muitas pessoas tentam contornar isso compartilhando credenciais de usuário entre ambientes.
- 19:21Elas pensam que se usarem a mesma conta ou senha que criou a conexão no desenvolvimento,
- 19:25talvez funcione na produção.
- 19:27A realidade é que isso traz uma série de problemas, desde negações de permissão até
- 19:30gatilhos de auditoria de conformidade.
- 19:32A própria orientação da Microsoft é clara dos agredenciais de usuário individuais
- 19:36para implantações automatizadas não é viável nem seguro.
- 19:39Isso deixa sua automação à mercê de redefinições de senha e pode deixar um rastro confuso nos
- 19:43logs de auditoria.
- 19:44Não há responsabilidade clara e, eventualmente, as permissões bloqueiam o pipeline quando o
- 19:49usuário original é sinalizado, removido ou perde o acesso.
- 19:53Apresentamos o Service Principle.
- 19:54Se você nunca trabalhou com eles, imagine um service principal como um par de mãos
- 19:58digital extra criado especificamente para automação.
- 20:01Diferente de um usuário comum, um service principal está vinculado a um registro de
- 20:05aplicativo no Azure AD, não a uma pessoa real, não a uma pessoa real.
- 20:09Você concede a ele as permissões mínimas necessárias para executar suas tarefas de
- 20:11implantação.
- 20:12Isso parece simples, mas o benefício é enorme.
- 20:15Em vez de depender de um usuário que pode sair da organização ou mudar de cargo, as
- 20:18implantações permanecem consistentes, auditáveis e rastreáveis.
- 20:20Cada ambiente obtém acesso apenas às conexões e recursos corretos, e quaisquer alterações
- 20:26são registradas sob esta conta de robô.
- 20:28Quando algo falha, você tem uma trilha de auditoria clara, e não acaba com fluxos órfãos
- 20:32que ninguém consegue corrigir.
- 20:35Sobre o problema de mapear conectores.
- 20:37Considere o que acontece quando os ambientes se distanciam.
- 20:40Talvez a equipe de desenvolvimento tenha omitido aprovação para um novo conector personalizado.
- 20:43Digamos que ele acesse uma API de sandbox.
- 20:46Quando chega a hora de mover para a produção, esse conector não apenas está faltando como pode
- 20:49nem ser permitido pelas políticas de dados da organização.
- 20:52Se você esquecer de remapear, o aplicativo chamará o endpoint errado ou quebrará completamente.
- 20:58Eu vi isso causar sérios problemas em um grupo de saúde recentemente.
- 21:01Um mapeamento de conector esquecido disparou o uso de dados de teste na produção e quase
- 21:05criou um incidente de conformidade.
- 21:07O pipeline automatizado deles exportou tudo como planejado, mas a referência do conector
- 21:11dentro da solução ainda apontava para um antigo banco de dados de teste que não foi
- 21:15sinalizado pela Power Platform até que dados reais começassem a fluir pelos caminhos
- 21:18errados.
- 21:20Variáveis de ambiente entram em cena para aliviar parte desse transtorno.
- 21:23Diferente de codificar endpoints ou chaves de API, as variáveis de ambiente permitem separar
- 21:27o que muda entre os ambientes do que permanece igual.
- 21:31Você pode trocar endpoint, chaves de API ou outros segredos a cada implantação sem precisar
- 21:35reescrever seu aplicativo ou fluxo.
- 21:38Por exemplo, um fluxo que funciona com uma tabela Dataverse de desenvolvimento pode ser reconfigurado
- 21:42na importação para usar a tabela de produção, simplesmente alterando a variável de ambiente
- 21:45dentro do seu processo de implantação.
- 21:48Os pipelines do GitHub Actions tornam-se... cada tarefa pode injetar o valor correto no
- 21:52momento certo.
- 21:53Mas mesmo aqui a disciplina é fundamental.
- 21:56Esqueça de atualizar uma variável ou deixe segredos vazarem entre ambientes e, de repente,
- 22:00seu fluxo de trabalho estará exposto.
- 22:03A Microsoft enfatiza a necessidade de definir o escopo de segredos com cuidado e mapear referências
- 22:07de conectores intencionalmente.
- 22:08Suas políticas de DLP, prevenção contra a perda de dados, existem por um motivo para
- 22:13evitar que informações confidenciais transitem entre ambientes ou apareçam no lugar errado.
- 22:18Se você tentar contorná-las compartilhando variáveis ou conexões, acabará tropeçando
- 22:23nos controles de segurança ou conformidade corporativos.
- 22:26Mais importante, você perde a previsibilidade porque não há mais uma linha separando o
- 22:30que é para desenvolvimento, teste ou produção.
- 22:33O benefício quando você faz tudo isso corretamente é difícil de mensurar.
- 22:36Service Principles combinados com variáveis de ambiente bem gerenciadas e conectores mapeados
- 22:40adequadamente transformam seu pipeline.
- 22:43Suas implantações tornam-se previsíveis.
- 22:45Quando as coisas quebram, você tem uma cadeia de custódia clara e sabe exatamente onde
- 22:48procurar.
- 22:49Foi um mapeamento de conector uma variável ou uma permissão esquecida?
- 22:52Auditores podem acompanhar as mudanças e não há suspense quando alguém deixa a organização
- 22:56ou altera as senhas.
- 22:57Tudo se resume a tratar segredos, conectores e Service Principles como se eles fossem importantes.