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.