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 Heroku Flow é um fluxo de trabalho estruturado e fácil de usar para entrega contínua na plataforma Heroku. Ele reúne os pipelines do Heroku, os aplicativos de revisão, a fase de release, o 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:

  1. Um desenvolvedor ou membro da equipe cria um pipeline do Heroku e começa a adicionar aplicativos.
  2. Um desenvolvedor cria uma solicitação pull para fazer alterações na base de código de um aplicativo.
  3. O Heroku cria automaticamente um aplicativo de revisão para a solicitação pull, permitindo que os desenvolvedores testem a alteração.
  4. Quando a alteração fica pronta, ela é mesclada com a ramificação mestre do código.
  5. A ramificação mestre é implantada automaticamente em um aplicativo de preparação para outros testes.
  6. Se a fase de release ou o Heroku CI estiver configurado, alguns testes e tarefas são feitos para ver se há problemas com as alterações no código ou com as tarefas que a fase de release deve realizar (como migração de banco de dados).
  7. Quando tudo estiver pronto, o aplicativo de preparação será promovido à produção, fase em que as alterações estarão disponíveis para os usuários finais.
  8. Se o pipeline estiver integrado ao Slack, uma notificação será publicada na sala quando uma solicitação pull for criada e o código for mesclado na ramificação mestre, atualizando a equipe em relação ao status e aos 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 para produção na própria sala do Slack.

Nota: não abordamos como configurar o Heroku ChatOps (integração com o Slack) neste módulo, mas você pode saber mais sobre isso em nossa documentação.

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ínua: revisão, desenvolvimento, preparação e produção. A página de visão geral dos pipelines ajuda a visualizar o progresso dos aplicativos e as metainformações sobre o status de cada estágio. Por exemplo, você pode ver se seu aplicativo de produção está executando código diferente do aplicativo de preparaçã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 a versão atual e a confirmação anterior na guia Atividade do aplicativo no painel da Heroku e, assim, não precisa ficar adivinhando o código que está no aplicativo. 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 sua base de código. 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 (SP) 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 ao seu aplicativo para estar pronto para produção. Se uma tarefa da fase de release falhar, a nova versão não será implantada e a versão de produção atual não será afetada.

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ção pull, mesclagens e resultados de build da CI aparecem no Slack e, portanto, não é necessário mudar o contexto para ver os resultados da build ou para verificar se a promoção para produção foi bem-sucedida.

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira