Dockerizando aplicações – Descartabilidade

Standard

Seguindo a lista do modelo 12factor, temos “Descartabilidade” como nona boa prática.

Quando falamos de aplicações web, espera-se que mais de um processo atenda a todo tráfego que é requisitado para esse serviço, porém tão importante quanto a habilidade de iniciar novos processos, é a capacidade de que um processo defeituoso termine na mesma velocidade que iniciou, pois um processo que demora para finalizar pode comprometer toda solução, uma vez que ela pode ainda estar atendemos requisições de forma defeituosa.

descartabilidade

Em resumo podemos dizer que aplicações web deveriam ser capazes de remover rapidamente processos defeituosos.

Continue lendo

Dockerizando aplicações – Concorrência

Standard

Seguindo a lista do modelo 12factor, temos “Concorrência” como oitava boa prática.

Durante o processo de desenvolvimento de uma aplicação é difícil imaginar o volume de requisição que ela terá no momento que for colocada em produção. Por outro lado, ter um serviço que suporte grandes volumes de uso é algo esperado nas soluções modernas, pois nada é mais frustante do que solicitar acesso a uma aplicação e ela não estar disponível. Demonstra falta de cuidado e de profissionalismo na maioria dos casos.

Quando uma aplicação é colocada em produção normalmente ela é dimensionada para uma determinada carga esperada, porém é importante que o serviço esteja pronto para escalar, ou seja, a solução deve ser capaz de iniciar novos processo da mesma aplicação caso necessário, sem que isso afete negativamente o produto. A figura abaixo apresenta um gráfico de escalabilidade de serviços.

Untitled Diagram (2)

Continue lendo

Dockerizando aplicações – Vínculo de portas

Standard

Seguindo a lista do modelo 12factor, temos “Vínculos de portas” como sétima boa prática.

É comum encontrar aplicações que são executadas dentro de contêineres de servidores web, tal como Tomcat, ou Jboss, por exemplo. Normalmente essas aplicações são implantadas dentro desses serviços para que possam ser acessadas pelos usuários externamente.

Ego_network

Continue lendo

Dockerizando aplicações – Processos

Standard

Seguindo a lista do modelo 12factor, temos “Processos” como sexta boa prática.

Com advento da automatização, e uma devida inteligência na manutenção das aplicações, hoje é esperado que a sua aplicação possa atender a picos de demandas com inicialização automática de novos processos, sem que isso afete negativamente o comportamento da mesma.

download (1)

Continue lendo

Dockerizando aplicações – Construa, lance, execute

Standard

Seguindo a lista do modelo 12factor, temos “Construa, lance, execute” como quinta boa prática.

Em um processo de automatização de infraestrutura de implantação de software, precisamos ter alguns cuidados para que o comportamento do processo esteja dentro das expectativas e que erros humanos causem baixo impacto no processo completo do desenvolvimento ao lançamento em produção.

release

Continue lendo

Dockerizando aplicações – Dependências

Standard

Seguindo a lista do modelo 12factor, logo após o base de código que tratamos nesse artigo, agora temos “Dependência” como segunda boa prática.
Na maioria das vezes que buscamos portar uma aplicação para modelo de contêiner uns dos retornos esperados é a portabilidade, ou seja, a ideia que você possa construir sua aplicação apenas uma vez e ela executar sem problemas em qualquer infraestrutura.

download

Continue lendo

Dockerizando aplicações – Base de código

Standard

Estamos evoluindo continuamente para entregar aplicações cada vez melhores, em menor tempo, replicáveis e escaláveis. Porém os esforços e aprendizados para atingir esse nível de maturidade muitas vezes não são simples de se alcançar.

Atualmente notamos o surgimento de várias opções de plataformas para facilitar a implantação, configuração e escalabilidade das aplicações que desenvolvemos. Porém, para aumentar nosso grau de maturidade não podemos apenas depender da plataforma, precisamos construir nossa aplicação seguindo boas práticas.

Visando sugerir uma série de boas práticas comuns a aplicações web modernas, alguns desenvolvedores do Heroku escreveram o 12Factor app, baseado em uma larga experiência em desenvolvimento desse tipo de aplicação.

12factor (1)

Continue lendo

Como não apagar a sua empresa em um comando

Standard

Circulou pela internet nos últimos dias uma notícia sobre um empresário que supostamente “apagou” sua empresa com aproximadamente 1500 clientes com apenas um comando. Isso teria sido feito através de um comando de automatização de infraestrutura que ao invés de apagar alguns arquivos indesejados acabou deletando todo sistema, motivado por um erro na criação dos parâmetros de automação. Um pequeno deslize que pela notícia teria causado grandes danos, pois até mesmo o backup se encontrava no mesmo servidor.

Já temos a confirmação que se tratou de um boato, mas acho que podemos aproveitar todo interesse com relação a possível desgraça de um desavisado, e atentar que um código de automação de infraestrutura mal feito pode de fato causar grandes danos no seu ambiente.

Continue lendo