Como subir uma aplicação Docker para o Heroku e Amazon AWS
Com essa documentação o programador será capaz de configurar ambientes customizados rapidamente, com tudo que ele precisa, utilizando o Docker. Além disso, será capaz de fazer o deploy de uma aplicação em serviços de Cloud como o Heroku e AWS (Amazon Web Services).
Projeto já adicionado aos favoritos. Clique aqui para ver todos seus favoritos
Obrigado pela sua avaliação, deixe o seu feedback nos comentários :D
Introdução
O que é Docker?
O Docker é uma ferramenta que, através do uso de contêineres, facilita o desenvolvimento, deploy e execução de aplicações de forma isolada. Com ele é possível criar pacotes que contenham tudo que for necessário para o funcionamento da aplicação, como dependências e bibliotecas.
Essa documentação complementa o curso O que é Docker e muitos dos recursos que utilizaremos são explicados no curso.
Importância do Docker
Desde seu lançamento, em 2013, o Docker tem crescido em utilização entre desenvolvedores e administradores de infraestrutura. O Docker permitiu um processo de desenvolvimento mais fluído e menos suscetível a erros com o empacotamento de aplicações, ao mesmo tempo que otimizou o uso de recursos dos servidores.
O Docker se tornou uma parte importante nas práticas devops, que visam integrar diferentes profissionais de diferentes etapas do processo de desenvolvimento em uma única equipe e no processo de migração para a nuvem que vem acontecendo nos últimos anos.
Destaques do projeto
Nesse projeto veremos a utilização do Docker na prática, desde o desenvolvimento até a utilização em produção em servidores cloud como Heroku e AWS:
-
Dockerizando uma aplicação e atualizando a versão do PHP
Nesse primeiro exemplo criaremos, utilizando o Docker Compose, um contêiner para uma aplicação Laravel e outro contêiner para o banco de dados MySQL utilizado nessa aplicação.
-
Migrando o banco de dados de uma API de MySQL para PostgreSQL
Realizaremos a migração do banco de dados de uma API escrita em PHP com o Framework Lumen de MySQL para PostgreSQL. Para isso, criaremos contêineres tanto para a aplicação quanto para os bancos de dados utilizando o Docker Compose.
-
Realizando o deploy de uma API no Heroku
Nesse exemplo, utilizaremos o Heroku para realizar o deploy de uma API utilizando contêineres. Além disso, aprenderemos a criar e utilizar o banco de dados PostgreSQL gratuito disponibilizado pelo Heroku.
-
Realizando o deploy de uma API na AWS
Conheceremos todos os conceitos e palavras por trás da AWS. Utilizaremos o Elastic Contêiner Service, o serviço de contêineres da AWS, para realizar o deploy de uma API em NodeJS.
Glosário
Deploy
Disponibilizar a aplicação no ambiente de produção, pronta para ser utilizada pelo usuário final.
Contêiner
Contêineres são ambientes isolados no qual as aplicações irão funcionar. Toda a configuração do contêiner é feita a partir de uma imagem inicial, e é nela que estarão todos os recursos que o contêiner poderá utilizar.
Imagem
Imagens são templates utilizados na construção de contêineres. São nelas que encontraremos todas as dependências, bibliotecas, variáveis de ambiente e a aplicação em si. Por serem pacotes auto-contidos, podemos compartilhá-las com outras pessoas com a garantia de que a aplicação irá funcionar corretamente.
Volumes
Volumes representam diretórios que são comuns à máquina Host (o computador do desenvolvedor ou servidor) e o contêiner, facilitando o compartilhamento de arquivos entre esses dois ambientes. Se o contêiner for desativado ou destruído, os arquivos contidos nos volumes permanecem intactos no Host.
Networks
Networks são conexões virtuais entre contêineres. A partir delas somos capazes de fazer com que aplicações que funcionam isoladas em diferentes contêineres possam trocar informações entre si.
Docker Compose
O Docker Compose é uma ferramenta disponibilizada pelo Docker que permite criar, configurar e gerenciar múltiplos contêineres de uma forma extremamente fácil utilizando a linguagem de serialização YAML (Ain't Markup Language)
Saiba mais Veja a Série Desbravando o Docker