Skip to content

EYLatamSouth/Azure_Synapse_CICD

Repository files navigation

Escolha o idioma / Choose the language

Implementação de esteira CI/CD (Integração contínua/Entrega contínua)

CI/CD é um termo abrangente que cobre várias fases do DevOps. CI (integração contínua) é a prática de integrar alterações de código em um repositório várias vezes ao dia. CD tem dois significados: a entrega contínua automatiza as integrações de código, enquanto a implementação contínua libera automaticamente as compilações finais para os usuários finais. Os testes frequentes de CI/CD reduzem erros e defeitos de código, tornando-os essenciais para todo fluxo de trabalho de fluxo de trabalho.

Conteúdos do documento

  • Autores
  • Visão Geral
  • Pré-requisitos
  • Configuração
  • Uso
  • Licença

Autores:

Bruno Andrade
Raphael Freixo
Vinícius Peters

Visão Geral

A implementação do pipeline CI/CD é necessária para agilizar e padronizar a estrutura do seu ambiente, garantindo a qualidade do código desde o ambiente de desenvolvimento até a sua implementação no ambiente de produção, o que é feito automaticamente após a aprovação dos artefatos. Este documento contém o procedimento para implementar essa estrutura de CI/CD usando o Github Actions e o ambiente Azure.

Pré-requisitos:

  • Ter um usuário de serviço com permissão de acesso ao Synapse.
  • Conta no GitHub com um repositório criado.
  • Permissão de LEITOR no grupo de recursos.
  • Permissão de CONTRIBUIDOR no Synapse-Production.
  • Conceder permissão do Service Principal.
  • Ter um ambiente Synapse de Desenvolvimento (DEV) e Produção (PROD).

Configuração

Arquivo readme.yml

Em seu repositório Github na aba Code, clique em creating a new file.

image


No caminho de pastas, crie um arquivo chamado readme.yml na seguinte estrutura ".github/workflows/readme.yml". Após feito isso, clique em Commit Changes...

image


Vincular o Synapse com o Github

Abra o Synapse DEV e nos ícones à esquerda selecione Manage e em seguida, clique em Git configuration. Feito isso, no meio da tela, selecione a opção de Configure.

image


Em Repository Type, selecione o GitHub e em Github repository owner coloque o nome do proprietário da conta.

image


Em Repository name, selecione o repositório desejado. Para os demais campos, deixe como está e em seguida clique em Apply.

image


Criando uma Branch

No canto superior esquerdo, clique em New Branch[Alt+N].

image


Coloque um nome para sua branch e crie baseada na main conforme o exemplo abaixo. Em seguida, clique em Create.

image


Workspace_publish

A branch workspace_publish será criada automaticamente após ser feito uma publicação no Synapse DEV. Para isso, vamos fazer uma publicação na mesma branch que você acabou de criar! Abra uma pipeline com uma atividade Set variable e crie uma variável. Após criado, clique em Commit all.

image


clique em OK.

image


Feito isso, precisará ser criado um Pull Request. Para isso, clique no nome da sua branch no canto superior esquerdo e procure por Create pull request[Alt+P].

image


OBS: Nos passos a seguir, só é possível aprovar um pull request caso você seja o aprovador. Caso contrário, faça uma requisição para o aprovador.

Abra seu repositório Github, clique em Create pull request ou Compare & pull request como mostra a imagem abaixo.

image


Vai abrir uma aba Open a pull request. Clique em Create pull request.

image


Merge pull request.

image


Confirm Merge. image


Publish.

image


Localizando Arquivo syn-deploy-yml

O conteúdo do arquivo syn-deploy.yml será usado para as atividades abaixo.

image

Configurações Repositório Github

Dentro do seu repositório do GitHub, selecione a aba Code e procure o arquivo syn-deploy.yml nas pastas ao lado, copie todo código e cole no arquivo que você acabou de criar seguindo o caminho mostrado na imagem acima.

image


E no final deve ser colocado o arquivo com os parâmetros de ambiente, no caso o arquivo syn-deploy.yml deve ser posto seguindo o path da imagem mostrada acima.

Configurando arquivo syn-deploy.yml

Dentro do arquivo syn-deploy.yml, você deve adequar as três linhas TemplateFile,ParametersFile e OverrideArmParameters com o nome do seu workspace, como mostra na imagem abaixo destacado em vermelho. Observe que, o arquivo contém linhas que serão valores herdados do Github Secrets(considere os que estão com "${{secrets.____}}). Esses serão os secrets que terão que ser atribuídos no Github.

image


Esses serão os parâmetros que serão herdados no Github:
  • WORKSPACENAME
  • RESOURCEGROUP
  • CLIENTID
  • CLIENTSECRET
  • SUBSCRIPTIONID
  • TENANTID

Configurando Secrets Github

Vá em Settings.

image


Ao lado esquerdo da tela, vá em Secrets and variables e Actions. Na aba Secrets, selecione New repository secret. Nesse repositório que será atribuído o valor das variáveis que serão herdadas no arquivo syn-deploy.yml.

image


Vale ressaltar que todos esses parâmetros devem ser preenchidos com os dados do ambiente de Produção.

Atribua o nome do secret e o valor. Nesse caso, será atribuído para cada um desses:

  • WORKSPACENAME
  • RESOURCEGROUP
  • CLIENTID
  • CLIENTSECRET
  • SUBSCRIPTIONID
  • TENANTID

Exemplo:
Name = WORKSPACENAME
Secret = nome do seu workspace

Em seguida, clique em Add secret.

image


Como encontrar cada um dos parâmetros

Para os parâmetros:

  • WORKSPACENAME
  • RESOURCEGROUP
  • SUBSCRIPTIONID

No portal Azure, procure pelo seu Synapse workspace de produção. Na aba da esquerda ao lado, vá em Overview e encontrará as informações dos três parâmetros listados acima.

image


Para os parâmetros :

CLIENTID
CLIENTSECRET
TENANTID

Deverá ser criado um Service Principal.Na barra de pesquisa digite App Registrations e selecione.

image


Feito isso, clique em +New registration. image


Após isso, atribua um nome qualquer e clique em Register. image


Após criado, você será levado para a página Overview do Service Principal. Aqui, você encontrará o CLIENTID e TENANTID.

image


Para o CLIENTSECRET, na barra de opções lateral esquerda selecione a opção Certificates & secrets. Após isso, clique em + New client secret.

image


Em Description coloque uma descrição qualquer ou um nome. Em seguida, clique em Add .

image


Após criado aparecerá na coluna Value o valor do CLIENTSECRET. Grave esse valor, pois ele só aparecerá uma vez e não será possível ver novamente!

image


Atribuindo permissões ao Service Principal

Com todos os parâmetros preenchidos dos passos anteriores, entre no seu workspace do Synapse de Produção e vá nas opções de Access Control(IAM) e clique em Role assignment. Procure mais acima a opção + Add.

image


Será atribuído a permissão de Reader do Service Principal ao resource group de produção. Para isso, selecione a primeira opção de Reader e em seguida em Next.

image


Na aba Members, clique na opção + Select members. Utilize a barra de pesquisa ao lado para escolher o usuário e clique em Select.

image


Feito isso, clique em Review + assign. image


Dado a permissão de Reader, repita o passo anterior, mas agora dê a permissão de Contributor ao workspace de produção. Clique novamente em Role Assigment e depois em +Add. Selecione a aba Privileged Admnistrator roles, e clique em Contributor. Em seguida, clique em Next.

image


Em Members, clique em em +Select members e selecione o usuário para aplicar a permissão de Contributor.

image


Clique em Review + assign. image


Por fim, abra o Synpase Studio do Synapse de Produção. image


Vá até a opção Manage na lateral esquerda e Access control. Clique em + Add.

image


Selecione a função Synapse Artifact Publisher. Na barra de baixo você deve selecionar o usuário Service Principal anteriormente criado e clicar em Apply.

image


Configurar Azure Key Vault

Deverá ser criado um Key vault para os dois ambientes DEV e PROD.

No portal Azure, vá até a barra de pesquisa e digite por Key Vaults.

image


Clique em +Create. image


Após isso, preencha as informações de criação do key vault atribuindo o resource group que foi criado no Synapse de Produção. Em seguida, vá até Review+Create.

image


No Key Vault de produção, clique na lateral esquerda em Access Control(IAM), clique em +Adde Add role assignment.

image


Em Role Assignments procure por Key Vault Secrets Officer. Em seguida, clique em Next. image


Feito isso, vá em Members e na opção Assign access to selecione Managed identity. Depois de selecionado, clique em +Select Members.

Em Managed Identity selecione Synapse workspace(). Depois disso, selecione seu ambiente Synapse de Produção.

image


Configurar Linked Service

Em seu Workspace de DEV, vá até Manage e Linked services. Clique em + New.

image


Na barra de pesquisa pesquise por Azure Key Vault e clique em Continue. image


Nome: Atribua um nome para o Key Vault.
Assinatura do Azure: Selecione sua assinatura.
Nome do Azure Key Vault: Selecione o Key Vault criado do ambiente de produção.

Para os demais, deixe padrão. Após isso, clique em Commit.

image


O próximo passo você precisará publicar algo novamente em DEV com o Linked Service devidamente criado( repita o passo do tópico Workspace_publish).

Após isso você deverá entrar em seu arquivo TemplateWorkspace.json e buscar o nome do KV que foi gerado automaticamente como mostra abaixo:

image


Copie o "LS_KV_DEV_properties_typeProperties_baseUrl" e o defaultValue. Eles serão utilizados no próximo passo para a criação do arquivo ParameterPRD.json.

Criando arquivo ParameterPRD.json

No seu repositório Github, crie um arquivo chamado ParameterPRD.json dentro da pasta do seu workspace de DEV e cole os parâmetros copiados anteriormente no seguinte formato:

image


O nome do arquivo ParameterPRD.json, certifique-se de que o seja exatamente igual ao nome que está no arquivo syn-deploy.yml em OverrideArmParameters.

image


Uso

Em sua branch no ambiente de Desenvolvimento caso haja mudanças, o processo para levar para produção irá seguir esses passos:

Realize um commit com suas mudanças. No exemplo abaixo, iremos utilizar a "Pipeline 2" na branch produto:

image


Crie um Pull request para branch principal. No exemplo é a main branch

image


Após ter seu Pull request aprovado, a main branch irá possuir todas as suas alterações. Portanto, o responsável pelo Pull Request, deverá clicar em Publish como mostra a imagem abaixo:

image


Aguarde até que a mensagem de sucesso apareça em sua tela:

image


Após isso, entre no ambiente de produção/ e você verá suas alterações no ambiente de produção:

image


Esteira CI/CD finalizada!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published