Heroku é uma plataforma em nuvem baseada em sistemas de containers gerenciados, chamados de Dynos, possuidores de um ambiente de software plugável e configurável, preparados para rodar e depurar sistemas web em um número limitado de linguagens de programação. Uma característica atrativa dessa tecnologia é a facilidade de realizar deploy de sistemas, uma vez que o ambiente é preparado para as diversas linguagens suportadas. Por outro lado, a liberdade de configuração desses ambientes é limitada.
É uma metodologia para construção de software para facilitar a entrega e manutenção de sistemas, principalmente SaaS.
A seguir são listados cada item;
- I. Base de Código - Uma base de código com rastreamento utilizando controle de revisão, muitos deploys
- II. Dependências - Declare e isole as dependências
- III. Configurações - Armazene as configurações no ambiente
- IV. Serviços de Apoio - Trate os serviços de apoio, como recursos ligados
- V. Construa, lance, execute - Separe estritamente os builds e execute em estágios
- VI. Processos - Execute a aplicação como um ou mais processos que não armazenam estado
- VII. Vínculo de porta - Exporte serviços por ligação de porta
- VIII. Concorrência - Dimensione por um modelo de processo
- IX. Descartabilidade - Maximizar a robustez com inicialização e desligamento rápido
- X. Dev/prod semelhantes - Mantenha o desenvolvimento, teste, produção o mais semelhante possível
- XI. Logs - Trate logs como fluxo de eventos
- XII. Processos de Admin - Executar tarefas de administração/gerenciamento como processos pontuais
A seguir são listados alguns links relevantes: