Saber mais sobre o Heroku Flow e seus recursos
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever um fluxo de trabalho de entrega contínua típico com o Heroku Flow.
- Nomear os recursos do Heroku Flow e descrever a finalidade deles.
O que é o Heroku Flow?
O Heroku Flow é um fluxo de trabalho estruturado e fácil de usar para entrega contínua na plataforma Heroku. Ele reúne o Heroku Pipelines, Aplicativos de revisão, Fase de release, Heroku CI e as integrações com GitHub e Slack para um fluxo de trabalho simples e visual da codificação até a produção.
O fluxo de trabalho de entrega contínua do Heroku funciona mais ou menos assim:
- Um desenvolvedor ou membro da equipe cria um pipeline do Heroku e começa a adicionar aplicativos.
- Um desenvolvedor cria uma solicitação pull para fazer alterações na base de código de um aplicativo.
- O Heroku cria automaticamente um aplicativo de revisão para a solicitação pull, permitindo que os desenvolvedores testem a alteração.
- Quando a alteração fica pronta, ela é mesclada com a ramificação
main
do código. - A ramificação
main
é implantada automaticamente a um aplicativo de preparação para outros testes. - Se a Heroku CI estiver configurada, testes serão executados para verificar se há algum problema com as alterações no código. Se a Fase de release estiver configurada, suas tarefas serão executadas antes de implantar o código. Um exemplo de uma tarefa da Fase de release é lidar com uma migração de banco de dados.
- Quando tudo estiver pronto, um desenvolvedor promove o aplicativo da preparação para a produção, onde as alterações estarão disponíveis para os usuários finais.
- Se o pipeline estiver integrado ao Slack, uma notificação será publicada em um canal específico quando uma solicitação pull for aberta e o código for mesclado de volta ao
main
. Essas publicações atualizam a equipe com o status e os resultados dos testes de CI e das tarefas da Fase de release. Os membros da equipe com as permissões corretas também podem implantar aplicativos na preparação ou promovê-los à produção a partir do canal do Slack.
Chegou a hora de conhecer os recursos do Heroku Flow e entender a finalidade deles.
Pipelines do Heroku
Pipeline é um grupo de aplicativos Heroku que compartilham a mesma base de código. Cada aplicativo em um pipeline representa uma destas etapas em um fluxo de trabalho de entrega contínuo: revisão, desenvolvimento, preparação e produção.
Integração com o GitHub
A conexão de um pipeline do Heroku com um repositório do GitHub possibilita a implantação manual ou automática de uma ramificação em cada push para o GitHub. Para cada implantação, você pode ver a diferença entre o release atual e a confirmação anterior na guia Atividade do aplicativo no painel da Heroku. Se você configurou seu repositório do GitHub para usar o Heroku CI ou um servidor de integração contínua (CI) externo, pode configurar o Heroku para implantar uma ramificação automaticamente somente depois que a CI for aprovada para determinada confirmação.
Aplicativos de revisão
Os aplicativos de revisão são uma nova maneira de propor, debater e decidir se as alterações devem ser mescladas em seu código base. No caso de aplicativos Heroku conectados ao GitHub, o Heroku pode gerar um aplicativo de teste temporário manual ou automaticamente em uma URL exclusiva para cada solicitação pull (PR) em aberto. O aplicativo temporário é atualizado automaticamente a cada confirmação e, portanto, em vez de adivinhar o que o código faz, os revisores podem efetivamente testar as alterações em um navegador.
Fase de release
A fase de release permite executar tarefas antes da implantação de uma versão na produção, eliminando períodos de manutenção e reduzindo riscos na implantação. Use a fase de release para migrar um banco de dados, carregar ativos em uma rede de entrega de conteúdo (CDN), invalidar um cache ou executar outras tarefas necessárias para seu aplicativo ficar pronto para produção. Se uma tarefa da Fase de release falhar, o novo release não será implantado e o release de produção atual não será afetado.
Heroku CI
O Heroku CI é um executor de teste com pouca configuração que se integra aos pipelines do Heroku. O Heroku CI executa seus scripts de teste sem tempo de enfileiramento para obter resultados mais rápidos, usando aplicativos descartáveis com paridade em relação a seus ambientes de preparação e produção. Acesse resultados de testes do Heroku ou do GitHub, automatize implantações dependentes dos resultados da CI e tire proveito de uma interface totalmente visual criada para apoiar a função de CI na entrega contínua baseada em equipe.
Heroku ChatOps
O Heroku ChatOps usa o poder dos pipelines do Heroku para levar um fluxo de trabalho de implantação colaborativo até o Slack. Ele permite que os desenvolvedores implantem na preparação ou promovam para produção no Slack. Com o Heroku ChatOps, as equipes podem controlar todas as alterações de código em seu canal do Slack. Notificações de solicitações pull, mesclagens e resultados de compilação de CI aparecem no Slack. Não há alternância de contexto para ver os resultados da compilação ou verificar se a promoção para a produção foi bem-sucedida.
Embora esta unidade forneça uma visão geral dos recursos do Heroku Flow, você aprenderá mais sobre alguns deles em nossa próxima unidade.
Recursos
- Centro de Desenvolvimento da Heroku: Pipelines
- Centro de Desenvolvimento da Heroku: Integração com o GitHub
- Centro de Desenvolvimento da Heroku: Aplicativos de revisão
- Centro de Desenvolvimento da Heroku: Fase de release
- Centro de Desenvolvimento da Heroku: Heroku CI
- Centro de Desenvolvimento da Heroku: Heroku ChatOps