Implantar aplicativos Java na Heroku
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever as diferentes opções de implantação com a Heroku.
- Explicar os prós e contras de cada opção.
A Heroku oferece várias opções de implantação. O método escolhido depende do seu processo de implantação, requisitos e aplicativos específicos.
Implantar com o Git
Esse método é o modo mais simples de implantação. Adicione seu aplicativo Heroku como um remoto de um repositório Git existente e, em seguida, use o git push
para enviar seu código para a Heroku. A Heroku cria automaticamente seu aplicativo e cria um release.
Implantar com a integração do GitHub
A integração do GitHub permite implantar alterações de um repositório do GitHub diretamente na Heroku. Essa integração tem mais recursos do que qualquer outra opção de implantação. Depois de vincular seu repositório, as alterações enviadas por push para ele serão implantadas automaticamente no aplicativo. Você pode configurar implantações automáticas para uma ramificação específica ou acionar implantações do GitHub manualmente. Se você usar a integração contínua (CI), como a Heroku CI, poderá impedir implantações na Heroku se os testes falharem.
A integração do GitHub também é útil para automatizar implantações em pipelines. Por exemplo, ao mesclar uma alteração com a ramificação principal, você pode implantá-la automaticamente na preparação para testes.
Implantar com aplicativos de revisão da Heroku
Os aplicativos de revisão permitem que você implante qualquer solicitação pull (PR) do GitHub como um aplicativo isolado e descartável. Você pode demonstrar e testar a PR sem substituir seu aplicativo de produção, uma ótima economia de tempo nos testes. Fechar a PR destrói o aplicativo de revisão.
Implantar com o botão 'Implantar na Heroku'
O botão Implantar na Heroku permite implantar um aplicativo na Heroku com cliques, a partir de um navegador da Web. Você pode parametrizar cada botão com configurações diferentes, como passar variáveis de ambiente personalizadas para a Heroku, usar uma ramificação Git específica ou fornecer chaves OAuth. Os aplicativos implantados com esse botão não são atualizados automaticamente quando você adiciona novas confirmações ao repositório do GitHub.
Implantar com o Docker
O Docker agrupa seus aplicativos em ambientes independentes. Esse isolamento garante que eles se comportem da mesma forma tanto no desenvolvimento quanto na produção. O Docker fornece mais controle sobre as linguagens, estruturas e bibliotecas usadas para executar seu aplicativo. Para implantar um contêiner na Heroku, envie uma imagem por push para o registro de contêiner da Heroku ou declare-a no arquivo heroku.yml
do seu aplicativo para criá-lo automaticamente.
Implantar com o Hashicorp Terraform
O Hashicorp Terraform é uma ferramenta de infraestrutura como código que ajuda a gerenciar infraestruturas complexas. Você pode definir seus aplicativos com HCL, uma linguagem de configuração declarativa, para automatizar o processo de implantação e gerenciamento de aplicativos Heroku. O Terraform v0.12+ permite armazenar o estado remoto, para que você possa executar o Terraform em um dyno Heroku e armazenar o estado do Terraform em um banco de dados Heroku Postgres.
Comparar opções de implantação
Use esta tabela para ajudar a escolher a melhor opção de implantação para seu caso de uso e fluxo de trabalho.
Método de implantação | Requisitos | Mais adequado para | Prós | Contras |
---|---|---|---|---|
Git | - Acesso total ao repositório Git e ao aplicativo Heroku para enviar o código por push manualmente para a produção. | - Projetos com equipes pequenas e confiáveis. | - Simples de adicionar a qualquer fluxo de trabalho baseado em Git - Compatível com submódulos Git | - Requer a implantação manual do código com git push |
Integração com o GitHub | - Acesso de administrador a um repositório do GitHub | - Implantações automatizadas | - Implanta aplicativos automaticamente e os mantém atualizados - Integra-se com Heroku Pipelines, Aplicativos de revisão e Heroku CI para um fluxo de trabalho contínuo | - Não tem compatibilidade com submódulos Git |
Aplicativos de revisão da Heroku | - Projetos no GitHub com aplicativos implantados em múltiplos ambientes. | - Opção para criar e atualizar automaticamente Aplicativos de revisão para cada PR - Compatível com imagens do Docker - Compatível com Heroku Private Spaces para testar alterações em um ambiente isolado | - Custos adicionais de recursos usados nos Aplicativos de revisão. Veja dicas sobre como otimizar custos no Centro de Desenvolvimento. | |
Botão “Implantar na Heroku” | - Um repositório GitHub - Um arquivo app.json válido no diretório raiz do projeto | - Aplicativos fornecidos aos seus usuários ou clientes, como projetos de código aberto - Integrar novos contratados | - Ótimo para compartilhar projetos de modelo - Fácil de adicionar ao arquivo README ou à página da Web de um projeto - Fornece um modelo com valores padrão pré-configurados, variáveis de ambiente e parâmetros | - Não tem compatibilidade com submódulos Git - Não tem atualizações automáticas quando o repositório muda. Você deve usar outro método de implantação para implantações subsequentes no mesmo aplicativo. |
Docker | - Uma imagem do Docker | - Aplicativos com pilhas personalizadas. | - Mais controle sobre a pilha do seu aplicativo - Gerar imagens automaticamente ou enviar uma imagem existente para o registro do contêiner - Consistência entre ambientes | - Você deve manter sua própria pilha - Sem compatibilidade com promoções de pipeline |
Hashicorp Terraform | - Terraform | - Aplicativos com componentes de infraestrutura complexos | - Automatiza as implantações de aplicativos Heroku - Permite que você implante aplicativos Heroku como código - Simplifica o gerenciamento de implantações grandes e complexas - Pode configurar aplicativos, Private Spaces ou recursos de outros provedores em uma arquitetura multi-provedor repetível | O Suporte da Heroku não pode fornecer ajuda para essas implantações mais complexas |
Resumo
Agora você sabe sobre as diferentes opções de implantação. Continue este módulo para saber mais sobre algumas das infraestruturas usadas para executar aplicativos na Heroku.
Recursos
- Centro de Desenvolvimento da Heroku: Implantar com o Git
- Centro de Desenvolvimento da Heroku: Integração com o GitHub
- Centro de Desenvolvimento da Heroku: Aplicativos de revisão
- Centro de Desenvolvimento da Heroku: Criar um botão “Implantar na Heroku”
- Centro de Desenvolvimento da Heroku: Registro e tempo de execução do contêiner (Implantações com o Docker)
- Centro de Desenvolvimento da Heroku: Usando o Terraform com a Heroku