O Azure DevOps faz tudo o que você precisa em qualquer estagio de um CI/CD, Gestão de Times, Gestão de Artefatos, Pirâmides de Testes e Wiki.

Seguindo esta linha de facilidades, vou mostrar para vocês como criar um pipeline de uma aplicação JAVA sem sofrer muito. se preocupe apenas em construir o software, deixa que o Azure Devops faça o resto pra você.

Abaixo eu tenho uma aplicação web JAVA, e vamos seguir os passos abaixo para criar seu pipeline:

Build pipeline

Geração dos artefatos da aplicação que serão transformadas em arquivos de Deployment

Passe o mouse em Release e clique em pipeline

Aqui você pode ver opções de como você quer o Plano de Build ou Build Definition. No meu cenário eu tenho um arquivo YAML dentro da minha aplicação, mas isso não é regra ele estar em qualquer estrutura dentro do seu repositório. vou escolher Azure Repos Git YAML

Ele vai listar todos os repos deste projeto, escolha o repositório da sua aplicação

Veja que o Azure DevOps já traz uma serie de modelos de “Templates” de build já completos para vários tipos de builds independente da linguagem de programação. Neste caso vou escolher o YAML existente, porque nele eu já tenho um “Template” customizado por mim.

Em seguida você seleciona o “branch” do “repositório” da sua aplicação e o arquivo YAML de build e clique em continue

Feito isso, o seu build já está pronto, conforme imagem abaixo ele já criou os “staps” necessários para executar a build da aplicação JAVA. Clique em “Run” para iniciar o processo de Build

Build executada com sucesso.

Essa build esta relacionada a uma entrega de software descrita dos cards do board de tarefas no Azure DevOps, e relação com o “commit” (alteração de código do desenvolvedor) e artefatos de deployment gerados e empacotados conforme imagem abaixo

Cards relacionados a demanda Executada

Criação do aplicativo da Web do Azure e banco de dados MySQL

Nesta demo do azure estou utilizando as credenciais do Azure DevOps Labs que tenho, para você só irá mudar nos nomes das aplicações e assinaturas. siga os passos abaixo para criação dos serviços no portal da Azure Cloud.

1- Inicie o Azure Cloud Shell a partir do portal. Para implantar em um grupo de recursos, digite o seguinte comando

az group create --name MyResourceGroup --location westus

2- Para criar um plano de serviço de aplicativo

az appservice plan create --resource-group MyResourceGroup --name MyPlan --sku S1

3- Crie o aplicativo da web com um nome de aplicativo exclusivo

az webapp create --resource-group MyResourceGroup --plan MyPlan --name MyUniqueAppName

4- Finalmente, crie o servidor MySQL com um nome de servidor exclusivo.

az mysql server create --resource-group MyResourceGroup --name mysqldbserver --admin-user mysqldbuser --admin-password P2ssw0rd@123 --sku-name GP_Gen5_2

Importante: Insira um nome de servidor SQL exclusivo. Como o nome do Azure SQL Server não oferece suporte a convenções de nomenclatura UPPER / Camel maiúsculas, use letras minúsculas para o valor do campo Nome do Servidor de Banco de Dados.

5- Navegue até o grupo de recursos que você criou. Você deve ver um Banco de Dados do Azure para servidor MySQL provisionado. Selecione o servidor de banco de dados.

6- Selecione Propriedades . Salve o nome do servidor e o nome de login do administrador do servidor em um bloco de notas.

Neste exemplo, o nome do servidor é myshuttle-1-mysqldbserver.mysql.database.azure.com e o nome de usuário admin é mysqldbuser @ myshuttle-1-mysqldbserver.

7- Selecione Segurança de conexão . Habilite a opção Permitir acesso aos serviços do Azure e salve as alterações. Isso fornece acesso aos serviços do Azure para todos os bancos de dados em seu servidor MySQL.

 Atualizando as configurações do aplicativo para o aplicativo da Web

Em seguida, navegue até o aplicativo da Web que você criou. Ao implementar um aplicativo Java, você precisa alterar o contêiner do aplicativo da web para Apache Tomcat

1- Selecione Configuração . Defina as configurações de pilha conforme mostrado na imagem abaixo e clique em Salvar.

2- Selecione Visão geral e clique em Procurar.

A página da web será semelhante à imagem abaixo.

Em seguida, você precisa atualizar as strings de conexão para o aplicativo da web se conectar ao banco de dados corretamente. Existem várias maneiras de fazer isso – mas, para os fins deste laboratório, você fará uma abordagem simples, atualizando-o diretamente no portal do Azure.

3- No portal do Azure, selecione o aplicativo Web que você provisionou. Vá para Configuração | Configurações do aplicativo | Strings de conexão e clique em + Nova string de conexão.

4- Na janela Adicionar / Editar string de conexão , adicione uma nova string de conexão MySQL com MyShuttleDb como o nome, cole a seguinte string para o valor e substitua o Nome do servidor MySQL , seu nome de usuário e sua senha pelos valores apropriados. Clique em Atualizar.

jdbc:mysql://{MySQL Server Name}:3306/alm?useSSL=true&requireSSL=false&autoReconnect=true&user={your user name}&password={your password}

  • Nome do servidor MySQL: valor que você copiou anteriormente das propriedades do servidor MySQL.
  • seu nome de usuário: valor que você copiou anteriormente das propriedades do servidor MySQL.
  • sua senha: Valor que você forneceu durante a criação do servidor de banco de dados MySQL.

5- Clique em Salvar para salvar a string de conexão.

Observação: as strings de conexão configuradas aqui estarão disponíveis como variáveis ​​de ambiente, prefixadas com o tipo de conexão para aplicativos Java (também para aplicativos PHP, Python e Node). No arquivo DataAccess.java na pasta src / main / java / com / microsoft / example , recuperamos a string de conexão usando o seguinte código String conStr = System.getenv("MYSQLCONNSTR_MyShuttleDb");

Agora você configurou e configurou todos os recursos necessários para implantar e executar o aplicativo no meu exemplo é o MyShuttle.

Release Pipeline

É execução do processo de deployment da aplicação, ele fará todo o trabalho de publicar os artefatos do build pipeline no ambiente, disponibilizando o sistema para o usuário da aplicação.

Vamos adicionar as tarefas:

Azure Database for MySQL deployment (Para “deployment” das alterações de banco de dados).

Azure App Service deploy (Para o “deployment” da Aplicação Web).

6- Clique em Tarefas . Selecione Executar tarefa do Azure MySQL: SqlTaskFile e forneça os seguintes detalhes.

  • Detalhes da assinatura do Azure: selecione a assinatura apropriada. Clique em Autorizar e faça logon em sua assinatura do Azure na janela pop-up.
  • Nome do host: selecione o nome do host do servidor de banco de dados MySQL que foi criado.
  • Login de administrador do servidor: forneça o nome de login do administrador do servidor que você anotou anteriormente.
  • Senha: forneça a senha que você criou durante a criação do servidor MySQL no portal do Azure.

7- Selecione a tarefa Implantar Serviço de Aplicativo do Azure , escolha os detalhes da assinatura do Azure e selecione o nome do Serviço de Aplicativo no menu suspenso.

  • Observação: estamos usando a tarefa Implantar Serviço de Aplicativo do Azure . Esta tarefa é usada para atualizar o Serviço de Aplicativo do Azure para implantar Web Apps e WebJobs no Azure. A tarefa funciona em agentes de plataforma cruzada executando Windows, Linux ou Mac e usa as tecnologias de implantação subjacentes de Web Deploy e Kudu. A tarefa funciona para aplicativos da Web baseados em ASP.NET, ASP.NET Core 1 e Node.js. Observe que essa tarefa funciona apenas com APIs do Azure Resource Manager.

8- Clique em Salvar e em + Liberar | Crie uma versão para iniciar uma nova versão.

9- Aguarde até que a liberação seja concluída. Em seguida, navegue até o Web App e selecione o URL na folha de visão geral. Adicione o contexto / myshuttledev ao URL. Por exemplo – http://myshuttle1.azurewebsites.net/myshuttledev

10- Selecione Login e tente fazer login no site com qualquer uma das seguintes credenciais.

11- Se seu banco de dados foi configurado corretamente e os parâmetros de conexão são válidos, você deve conseguir fazer o login no portal.

  • Aviso: Se você encontrar um erro com O aplicativo CGI especificado encontrou um erro e o servidor encerrou a mensagem do processo , verifique se você inseriu as variáveis ​​e valores de configuração do aplicativo (para a conexão do banco de dados) corretamente.