Nos bastidores da Heroku

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Explicar o que é um dyno.
  • Diferenciar entre linguagens, buildpacks e slugs.
  • Descrever a utilidade dos complementos e nomear um que pode ser provisionado do Heroku Elements Marketplace.
  • Identificar um comando da CLI Heroku.

Bastidores da Heroku

Até o momento, falamos sobre a Heroku em um nível mais geral: o que é e como você pode usá-la. Também percorremos as etapas para implantar seu primeiro aplicativo Heroku. Mas o que é exatamente a Heroku? O que está por trás dela? Vamos dar uma olhada!

Na sua essência, a Heroku é um conjunto de ferramentas que simplifica a implantação e a execução de aplicativos personalizados. Para entender estas ferramentas, precisamos aprofundar as coisas um pouco mais. Esta unidade ajuda você a entender as partes que compõem a Heroku.

Dynos

O código do seu aplicativo é executado na Heroku Platform dentro de estruturas que chamamos de dynos. Dynos não têm a ver com dinossauros, mas, se fosse o caso, o processo sem controle teria um novo significado! Os dynos da Heroku são apenas contêineres de tempo de execução gerenciado baseados no sistema operacional Linux. Estes contêineres executam os processos que fazem seu código de aplicativo personalizado ser executado.

Contêineres de tempo de execução??

Não se assuste com a terminologia! Contêinerização é apenas um mecanismo para manter os processos em execução isolados uns dos outros. Pense nisso desta forma: Os contêineres impedem que a geleia de morango se misture com a mostarda na geladeira para que seu café da manhã tenha sempre o gosto certo. Os contêineres de tempo de execução são a mesma coisa, exceto pelo fato de separarem seu código e configuração de outros códigos e configurações. Assim, seu aplicativo “tem sempre o gosto certo”.

Os contêineres também fazem a separação entre dois ou mais dynos que executam instâncias idênticas do seu aplicativo, aceitam solicitações de clientes e as atendem com respostas. Mesmo que uma solicitação seja atendida pelo dyno A e outra pelo dyno B, seus usuários não saberão a diferença. Tudo o que eles veem é o aplicativo que responde rapidamente. O dimensionamento de seu aplicativo para ser executado em vários dynos (ou até dezenas ou centenas) fará você ficar mais tranquilo. Se alguma coisa der errado com o código do aplicativo em um dyno, todos os outros poderão continuar a atender seus clientes.

Slugs e buildpacks

Slugs são cópias compactadas e pré-embaladas do seu aplicativo otimizadas para distribuição no gerenciador de dynos. Ao enviar seu código por push à Heroku, ele será recebido pelo compilador de slug e transformado em slug. No centro do compilador de slug está uma coleção de scripts chamados buildpack, que lidam com linguagens diferentes. Todos os aplicativos escritos em Ruby, Python, Java, Clojure, Node.js, Scala, Go e PHP são implantados e compilados usando buildpacks. O dimensionamento de um aplicativo baixará e expandirá o slug em um dyno para execução.

Buildpacks personalizados podem ser utilizados para dar suporte a linguagens ou estruturas que não estão incluídas nos buildpacks com suporte oficial da Heroku.

Controle do tráfego de aplicativos: o roteador da Heroku

O roteador da Heroku é a chave para toda essa mágica envolvendo vários dynos. Sempre que um novo dyno Web é iniciado, ele se registra no roteador e informa que aplicativo ele está executando. Depois que um dyno é registrado, o roteador da Heroku começa a distribuir solicitações de entrada entre todos os dynos disponíveis para um aplicativo, a “formação de dynos” do aplicativo; é assim que chamamos ao tamanho e quantidade de dynos em execução no seu aplicativo (por exemplo, uma formação de sete dynos Performance-L).

Você acha o roteador da Heroku tão fascinante quanto a gente? Para ler mais sobre como ele funciona e o que você pode esperar dele, confira a documentação sobre roteamento no Centro de Desenvolvimento da Heroku.

Complementos

Os complementos são outra parte essencial da plataforma Heroku. Estes elementos permitem a você adicionar funcionalidades complexas ao seu aplicativo sem ter que gerenciar o software ou a infraestrutura subjacente.

Um ótimo exemplo de complemento útil é o banco de dados Heroku Postgres. Postgres é um banco de dados de classe empresarial rápido, confiável e com vários recursos. E o melhor de tudo: quando você provisiona um banco de dados Postgres como complemento, a infraestrutura subjacente é completamente gerenciada pela Heroku.

Além de vários complementos gerenciados pela Heroku, existem dezenas de complementos oferecidos por terceiros: repositórios de dados, servidores de email, ferramentas de monitoramento e o que mais você puder imaginar. Os desenvolvedores podem ligar recursos de back-end, como a capacidade de enviar emails ou textos, com apenas um clique. Muitos têm opções gratuitas que você poderá experimentar e usar pelo tempo que quiser.

Confira a página de complementos do Heroku Elements Marketplace para explorar todos os complementos que podem ser incorporados aos aplicativos Heroku Enterprise.

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